1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-09-20 09:15:38 +01:00
Commit Graph

215 Commits

Author SHA1 Message Date
Peter Boyle
0bc004de7c Domain wall fermions now invert ; have the basis set up for
Tanh/Zolo * (Cayley/PartFrac/ContFrac) * (Mobius/Shamir/Wilson)
Approx        Representation               Kernel.

All are done with space-time taking part in checkerboarding, Ls uncheckerboarded

Have only so far tested the Domain Wall limit of mobius, and at that only checked
that it
i)  Inverts
ii) 5dim DW == Ls copies of 4dim D2
iii) MeeInv Mee == 1
iv) Meo+Mee+Moe+Moo == M unprec.
v) MpcDagMpc is hermitan
vi) Mdag is the adjoint of M between stochastic vectors.

That said, the RB schur solve, RB MpcDagMpc solve, Unprec solve
all converge and the true residual becomes small; so pretty good tests.
2015-06-02 16:57:12 +01:00
Azusa Yamaguchi
8f87950dc1 FIx miistake 2015-06-01 12:26:20 +01:00
Azusa Yamaguchi
00bf7f4d42 Const safety 2015-06-01 12:25:59 +01:00
Azusa Yamaguchi
eb28a64c3c No compile fix on mpi target 2015-05-31 22:50:03 +01:00
azusayamaguchi
328aa9ae49 Bug in Makefile.am fixed 2015-05-31 18:50:08 +01:00
Peter Boyle
66d997e031 Large scale change to support 5d fermion formulations.
Have 5d replicated wilson with 4d gauge working and matrix regressing
to Ls copies of wilson.
2015-05-31 15:09:02 +01:00
neo
661c7e3e37 Merge remote-tracking branch 'upstream/master' 2015-05-29 11:41:39 +09:00
Peter Boyle
62dccb3247 Weak scale the benchmarks automatically. 2015-05-28 13:47:01 +01:00
Peter Boyle
c0c1ebe757 Works now with Clang-avx, Clang-sse and ICPC-avx, ICPC-sse 2015-05-28 11:35:43 +01:00
Peter Boyle
bd81ac0f17 Improving the reduction to go through our on permute.
Must also do this for avx512
2015-05-27 16:07:17 +01:00
neo
d8b05e001d Check at configure time if CPU supports the requested SIMD optimization 2015-05-27 18:30:11 +09:00
neo
9fd6506d1f Included Gpermute in the new Grid_simd.h file style.
Now tested for SSE4. OK
2015-05-27 12:11:44 +09:00
neo
75442e48ce Added a .gitignore file to eliminate autoconf files from commits 2015-05-27 11:10:51 +09:00
Guido Cossu
26ec41288d Corrected AVX regression error. Tested. 2015-05-27 10:49:33 +09:00
neo
13707e0808 Merge remote-tracking branch 'upstream/master'
Conflicts:
	Makefile.in
2015-05-27 10:41:33 +09:00
neo
12ae11ef62 Adding support for doxygen generation 2015-05-27 10:34:56 +09:00
Peter Boyle
22d073eb2b Simd revert to Guido's commit. I edited concurrently and things went bad. 2015-05-26 22:20:09 +01:00
Peter Boyle
ccf10a973a Merge branch 'master' of https://github.com/paboyle/Grid
Conflicts:
	lib/Grid_simd.h
2015-05-26 20:04:08 +01:00
Peter Boyle
6ef0096dc9 Strip out the dslash kernel implementation 2015-05-26 19:55:18 +01:00
Peter Boyle
20100d0a40 Hand unrolled version of dslash in a separate class.
Useful to compare; raises Intel compiler from 9GFlop/s to 17.5 Gflops.
                   on ivybridge core. Raises Clang form 14.5 to 17.5
2015-05-26 19:54:03 +01:00
neo
c04cad92ac More cleanup of Grid_simd.h 2015-05-26 13:54:34 +09:00
neo
aff978f60a Cleaning up simd files 2015-05-26 13:31:10 +09:00
neo
9ad6d0c65f Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/math/Grid_math_tensors.h
	lib/simd/Grid_vector_types.h
2015-05-26 13:14:06 +09:00
neo
377083e6ae checked performance of new vector libaries.
Added check for c++11 support on the configure.ac
2015-05-26 12:02:54 +09:00
Peter Boyle
d7f5172860 Schur complement based red-black inversion working 2015-05-25 13:47:12 +01:00
Peter Boyle
201a110c51 Better EO support letting Schur solver work 2015-05-25 13:46:28 +01:00
Peter Boyle
1d4b1c48cc Most cosmetic 2015-05-25 13:45:32 +01:00
Peter Boyle
f6cade41b4 Better checkerboard tracking. 2015-05-25 13:45:08 +01:00
Peter Boyle
6e76f0c6cd move constants into red black 2015-05-25 13:44:35 +01:00
Peter Boyle
55ad54e0ff Updates now schur red black solver working 2015-05-25 13:43:58 +01:00
Peter Boyle
00ee531005 Herm op 2015-05-25 13:42:36 +01:00
Peter Boyle
ca30116144 red black fix 2015-05-25 13:42:12 +01:00
Peter Boyle
41ba13f951 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-23 09:36:08 +01:00
Peter Boyle
2d30e82dcb Improving even odd sector; lot of work and through required cleaning this 2015-05-23 09:34:16 +01:00
Peter Boyle
0b165afd9e Rely on default constructors 2015-05-23 09:33:42 +01:00
Peter Boyle
3954792f37 Better pragma use 2015-05-23 09:32:37 +01:00
Peter Boyle
8c7b5f5d3b Cosmetic 2015-05-23 09:31:15 +01:00
Peter Boyle
be8b4f89d6 Iterator required 2015-05-23 09:30:28 +01:00
neo
57feda4328 Completed implementation of new Grid_simd classes
Tested performance for SSE4, Ok.
AVX1/2, AVX512 yet untested
2015-05-22 17:33:15 +09:00
Peter Boyle
e0cc5ba920 Streaming store option ifdef 2015-05-21 06:47:05 +01:00
Peter Boyle
1b9ecbac3b Compile time select if we do the streaming store copy. Relies on Clang++ eliminating object copies,
and other compliers do not necessarily cope.
2015-05-21 06:39:00 +01:00
Peter Boyle
db786fac13 Didn't like a print statement 2015-05-21 06:36:15 +01:00
Peter Boyle
9058135da0 Unroll pragma abstraction 2015-05-21 06:34:33 +01:00
neo
f8d8958884 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/simd/Grid_vector_types.h
	tests/Makefile.am
2015-05-20 17:32:46 +09:00
neo
e529210f43 Implemented all SSE4 functions.
A test code Grid_simd_new.cc has been created to test the new class.
Tests are all OK.
2015-05-20 17:22:40 +09:00
Peter Boyle
8fdff33b3a Merging in
Merge branch 'master' of https://github.com/paboyle/Grid
2015-05-19 21:30:13 +01:00
Peter Boyle
efc0d1e0b9 Reworking to keep intel compiler happy 2015-05-19 21:29:07 +01:00
Peter Boyle
2d8b5a8191 Optimisation... 2015-05-19 15:50:47 +01:00
Peter Boyle
3fe7275332 Merged
Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master

Conflicts:
	lib/simd/Grid_vector_types.h
2015-05-19 15:05:07 +01:00
azusayamaguchi
ee8cf77071 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-19 14:55:26 +01:00
azusayamaguchi
c8c74e591f Add messages to get the number of threads for openmp 2015-05-19 14:54:42 +01:00
Peter Boyle
a6e1ea216d Got unpreconditioned conjugate gradient to run and converge on a random (uniform random,
not even SU(3) for now) gauge field. Convergence history is correctly indepdendent of decomposition
on 1,2,4,8,16 mpi tasks.
Found a couple of simd bugs which required fixed and enhanced the Grid_simd.cc test suite.
Implemented the Mdag, M, MdagM, Meooe Mooee schur type stuff in the wilson dop.
2015-05-19 13:57:35 +01:00
neo
7fb3221d47 Partial implementation of the vector types SIMD
Implementing SSE4 now
A systematic series of tests must be written.
2015-05-19 17:21:17 +09:00
neo
639fd05239 Added check of mpfr and gmp at configure time
It generates automatically the linker flags or complains if not found.
2015-05-19 13:54:55 +09:00
neo
d6887beead Merging with upstream 2015-05-19 13:36:03 +09:00
Peter Boyle
30494bd96d Merge branch 'master' of https://github.com/coppolachan/Grid into coppolachan-master
Conflicts:
	lib/algorithms/approx/bigfloat.h
2015-05-18 16:34:21 +01:00
Peter Boyle
193fd5532f Remez tested 2015-05-18 12:09:25 +01:00
neo
fa1dc5e448 Minor modification to the configure.ac
Enables silent rules (use make V=1 to override)
Prints a summary after configure is completed
2015-05-18 17:15:14 +09:00
neo
6d2accba7b Corrected some compilation errors (zolotarev.h) and SSE4 vsplat and conj to make cshift test pass. 2015-05-18 16:48:14 +09:00
Peter Boyle
1887c77498 Getting closer to having a wilson solver... introducing a first and untested
cut at Conjugate gradient. Also copied in Remez, Zolotarev, Chebyshev from
Mike Clark, Tony Kennedy and my BFM package respectively since we know we will
need these. I wanted the structure of

algorithms/approx
algorithms/iterative

etc.. to start taking shape.
2015-05-18 07:47:05 +01:00
Peter Boyle
6eb8dfd902 Working towards solvers 2015-05-17 00:19:03 +01:00
Peter Boyle
e841395dfd Updating preparing for solvers etc.. 2015-05-16 23:35:08 +01:00
Peter Boyle
53260e7a39 Typoo xifed 2015-05-16 05:49:32 +01:00
Peter Boyle
a900790b44 Update Grid_lattice_trace.h 2015-05-16 04:40:28 +01:00
Peter Boyle
b731bf6976 Pretty syntax 2015-05-16 04:37:26 +01:00
Peter Boyle
5f8b82b90c Optimisation and syntax pretty 2015-05-16 04:36:22 +01:00
Peter Boyle
afda459886 strong inline 2015-05-16 04:33:10 +01:00
Peter Boyle
f43589369a Compile options tweak 2015-05-15 12:33:18 +01:00
Peter Boyle
c99922b591 Out of source compile now working 2015-05-15 12:21:40 +01:00
Peter Boyle
3ed30169ea clang++ 3.4/5/7 compile happy for AVX and SSE
icpc compiles happy on MacOSX both with -xCOMMON-AV512 and native AVX

gcc-5 does not compile happy; can work around by renaming lattice peek/poke/transpose/trace templates
relative to tensor ones, but gcc goes into a recursive template instantiation due to
matching error. I think this is a gcc bug and have filed a report https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:52:11 +01:00
Peter Boyle
180b06d7e3 GCC and ICPC complained on more careful typeing 2015-05-15 11:50:44 +01:00
Peter Boyle
3bd376853c Move platform dependent out to Grid_simd.h 2015-05-15 11:50:00 +01:00
Peter Boyle
6bba16ccf7 ngo store 2015-05-15 11:49:39 +01:00
Peter Boyle
e8efa6320e Parallel for replace 2015-05-15 11:48:04 +01:00
Peter Boyle
e3b61bdfce Forces inlining upon icpc 2015-05-15 11:43:49 +01:00
Peter Boyle
86b9d24b62 Force inlining upon icpc 2015-05-15 11:43:20 +01:00
Peter Boyle
3e3a8dc0c0 More elegant enable_if 2015-05-15 11:42:51 +01:00
Peter Boyle
4350c1e0f7 More elegant to do boolean logic inside the enable_if construct
Should have done that from the beginning and should move this into
a global edit
2015-05-15 11:42:03 +01:00
Peter Boyle
8c59605e05 Force inlining on ICPC because inline apparently is not enoguh 2015-05-15 11:41:31 +01:00
Peter Boyle
e59b6a805c strong_inline forces ICPC to do it. 2015-05-15 11:40:59 +01:00
Peter Boyle
5d8303e94d Force strong_inline to force ipcc's hand 2015-05-15 11:40:31 +01:00
Peter Boyle
1339a7f8b0 Switch to strong_inline macro to force icpc's hand 2015-05-15 11:40:00 +01:00
Peter Boyle
e58cc72fe5 Promote to strong inline to force ICPC's hand. Annoying. 2015-05-15 11:39:25 +01:00
Peter Boyle
074430af0d Formatting change 2015-05-15 11:38:54 +01:00
Peter Boyle
873110d482 Filed bug report Bug 66153 on GCC-5.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66153
2015-05-15 11:38:04 +01:00
Peter Boyle
4cee0e8653 Silly formatting change 2015-05-15 11:37:07 +01:00
Peter Boyle
6b2a786779 gcc doesn't like collapse(2) for some reason I can't figure 2015-05-15 11:36:22 +01:00
Peter Boyle
cf27f22dc0 ICPC and GCC5 fixes 2015-05-15 11:35:02 +01:00
Peter Boyle
40192841a4 Using boolean logic inside enable_if is more elegant 2015-05-15 11:32:45 +01:00
Peter Boyle
1771f97551 Key of mm_malloc.h 2015-05-15 11:32:11 +01:00
Peter Boyle
2eaf73e8b3 strong inline required to force icpc 2015-05-15 11:31:41 +01:00
Peter Boyle
43bdbb5080 Linear op added 2015-05-13 11:25:34 +01:00
Peter Boyle
7f3ae64a31 OMP dslash working 2015-05-13 10:59:22 +01:00
Peter Boyle
d388b831b4 cout IO for all types 2015-05-13 09:24:10 +01:00
Peter Boyle
b4a570477c I have made the Cshift work successfully with open mp threading in
every routine. Collapse(2) is now working under clang-omp++.
2015-05-13 00:31:00 +01:00
Peter Boyle
52174da232 Enhanced SIMD interfacing 2015-05-12 20:41:44 +01:00
Peter Boyle
65c91eae64 Threading support rework.
Placed parallel pragmas as macros; implemented deterministic thread reduction in style of
BFM.
2015-05-12 07:51:41 +01:00
Peter Boyle
8b765be2b1 Moving some things around for pretty 2015-05-11 19:09:49 +01:00
Peter Boyle
a411b48a91 Adding a better controlled threading class, preparing to
force in deterministic reduction.
2015-05-11 18:59:03 +01:00
Peter Boyle
ebcb87abe1 Got command line args working 2015-05-11 14:36:48 +01:00