Commit Graph
100 Commits
Author SHA1 Message Date
Peter Boyle dc4014668d Merging in
Merge branch 'master' of https://github.com/paboyle/Grid
2015-05-19 21:30:13 +01:00
Peter Boyle 3f57662cd0 Build a simple kernel to compare intel compiler and clang in simple environment 2015-05-19 21:29:40 +01:00
Peter Boyle b562b50196 Reworking to keep intel compiler happy 2015-05-19 21:29:07 +01:00
Peter Boyle 46ab8edf30 Optimisation... 2015-05-19 15:50:47 +01:00
Peter Boyle 5f0530b68a Merge branch 'coppolachan-master' 2015-05-19 15:05:32 +01:00
Peter Boyle 3d66d00313 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
Peter Boyle ffc00caea3 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
Peter Boyle c7314e526e Merge branch 'coppolachan-master' 2015-05-18 16:36:58 +01:00
Peter Boyle f9a8377fe6 lib/algorithms/approx/bigfloat.h 2015-05-18 16:35:48 +01:00
Peter Boyle cf9bbee256 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 a19deba26c Convience function 2015-05-18 16:28:29 +01:00
Peter Boyle 2843264bd8 Remez tested 2015-05-18 12:09:25 +01:00
Peter Boyle d0e4673a3f 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 8e99e4671f Working towards solvers 2015-05-17 00:19:03 +01:00
Peter Boyle dc6b6bdc96 Updating preparing for solvers etc.. 2015-05-16 23:35:08 +01:00
Peter Boyle 9b0aae665f Better build automation 2015-05-16 07:16:45 +01:00
Peter Boyle 4a0da933f0 Merge branch 'master' of https://github.com/paboyle/Grid 2015-05-16 06:42:03 +01:00
Peter Boyle e2f6745a0e Moved things around 2015-05-16 06:40:10 +01:00
Peter Boyle 39e7ef1243 Typoo xifed 2015-05-16 05:49:32 +01:00
Peter Boyle 9c38a52bad Update Grid_lattice_trace.h 2015-05-16 04:40:28 +01:00
Peter Boyle 1247d7aea8 Pretty syntax 2015-05-16 04:37:26 +01:00
Peter Boyle 9f0e990b40 Optimisation and syntax pretty 2015-05-16 04:36:22 +01:00
Peter Boyle 56667e9d32 more digits 2015-05-16 04:33:40 +01:00
Peter Boyle 49f56a25d1 strong inline 2015-05-16 04:33:10 +01:00
Peter Boyle c2ca396353 Extra compile targs 2015-05-15 14:41:59 +01:00
Peter Boyle 7a63bdbd72 Added su3 matrix benchmark. 2015-05-15 14:41:19 +01:00
Peter Boyle 516aac6518 Log the bug report code into the git repo. 2015-05-15 12:39:53 +01:00
Peter Boyle 675fd1a065 Compile options tweak 2015-05-15 12:33:18 +01:00
Peter Boyle a98f3e0f5e Out of source compile now working 2015-05-15 12:21:40 +01:00
Peter Boyle f92fda0cfd Convenience multi-compiler build with out of source compile 2015-05-15 12:21:10 +01:00
Peter Boyle 100323ab4d 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 6965a136a0 Remove debug masking 2015-05-15 11:51:15 +01:00
Peter Boyle 254dee6ac7 GCC and ICPC complained on more careful typeing 2015-05-15 11:50:44 +01:00
Peter Boyle 264850bc16 Move platform dependent out to Grid_simd.h 2015-05-15 11:50:00 +01:00
Peter Boyle 9a120cf5ec ngo store 2015-05-15 11:49:39 +01:00
Peter Boyle 8d77d758c3 Parallel for replace 2015-05-15 11:48:04 +01:00
Peter Boyle 0e7945fe54 Forces inlining upon icpc 2015-05-15 11:43:49 +01:00
Peter Boyle bd721ce1c8 Force inlining upon icpc 2015-05-15 11:43:20 +01:00
Peter Boyle a852d13f03 More elegant enable_if 2015-05-15 11:42:51 +01:00
Peter Boyle a26fdab719 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 af6e8f7829 Force inlining on ICPC because inline apparently is not enoguh 2015-05-15 11:41:31 +01:00
Peter Boyle cbfa4097b4 strong_inline forces ICPC to do it. 2015-05-15 11:40:59 +01:00
Peter Boyle 8c40dd9c4f Force strong_inline to force ipcc's hand 2015-05-15 11:40:31 +01:00
Peter Boyle b38bf82d48 Switch to strong_inline macro to force icpc's hand 2015-05-15 11:40:00 +01:00
Peter Boyle adc4f86020 Promote to strong inline to force ICPC's hand. Annoying. 2015-05-15 11:39:25 +01:00
Peter Boyle 5b46992a15 Formatting change 2015-05-15 11:38:54 +01:00
Peter Boyle e7d25647e6 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 c28551f40f Silly formatting change 2015-05-15 11:37:07 +01:00
Peter Boyle 6c7eb60d6f gcc doesn't like collapse(2) for some reason I can't figure 2015-05-15 11:36:22 +01:00
Peter Boyle 051b23fe10 ICPC and GCC5 fixes 2015-05-15 11:35:02 +01:00
Peter Boyle 4e462209c7 Using boolean logic inside enable_if is more elegant 2015-05-15 11:32:45 +01:00
Peter Boyle 8d1b26dd4b Key of mm_malloc.h 2015-05-15 11:32:11 +01:00
Peter Boyle cc6218a692 strong inline required to force icpc 2015-05-15 11:31:41 +01:00
Peter Boyle 5166888c0a Linear op added 2015-05-13 11:25:34 +01:00
Peter Boyle 0097b81778 OMP dslash working 2015-05-13 10:59:22 +01:00
Peter Boyle e6e72d23df RNG test 2015-05-13 09:24:30 +01:00
Peter Boyle add4495a4a cout IO for all types 2015-05-13 09:24:10 +01:00
Peter Boyle 541d52ab97 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 556befaaaa Enhanced SIMD interfacing 2015-05-12 20:41:44 +01:00
Peter Boyle c6baa3e657 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 6e6843ac69 Moving some things around for pretty 2015-05-11 19:09:49 +01:00
Peter Boyle c8dc8ff891 Adding a better controlled threading class, preparing to
force in deterministic reduction.
2015-05-11 18:59:03 +01:00
Peter Boyle b613ed0bb8 Got command line args working 2015-05-11 14:36:48 +01:00
paboyle 4eb08ac9de CML parse 2015-05-11 12:56:27 +01:00
paboyle b42453d1fd Command line args and a general clean up 2015-05-11 12:43:10 +01:00
Peter Boyle 52403d587c Wilson perf improvements with Gauge prefetching 2015-05-06 06:37:21 +01:00
Peter Boyle cb4b82b09f streaming store cases 2015-05-05 18:14:09 +01:00
Peter Boyle cd990ba13d Streaming store option 2015-05-05 18:13:06 +01:00
Peter Boyle 249165d1b2 Added streaming stores 2015-05-05 18:09:28 +01:00
Peter Boyle b720222d98 Updated bandwidth test 2015-05-05 18:08:53 +01:00
Peter Boyle 0e8415de1b Added a makefile 2015-05-05 17:56:42 +01:00
Peter Boyle 2b46ad38e2 Back to vector for now; cost of init loop is clear in the a*x + y
loop in memory benchmark and must move to better container class.
2015-05-03 09:48:13 +01:00
Peter Boyle 9d93d1e6d4 Comms and memory benchmarks added 2015-05-03 09:44:47 +01:00
Peter Boyle 253362f978 Added a comms benchmark 2015-05-02 23:51:43 +01:00
Peter Boyle ea52562527 Added a comms benchmark 2015-05-02 23:42:30 +01:00
Peter Boyle 6a39089a43 Starting a benchmarking sub dir 2015-05-02 17:52:36 +01:00
Peter Boyle bdf18941a2 Improving the byte swap support for portability 2015-05-01 10:57:33 +01:00
Peter Boyle d904e2b9ac Merge branch 'master' of https://github.com/paboyle/Grid 2015-04-30 16:40:13 +01:00
Peter Boyle c0ead94791 Integrated Lebesgue code and been playing with alternate implementations of the wilson dop without
any particular success in increasing the performance.
2015-04-30 16:39:06 +01:00
Peter Boyle 7ac997bd58 Merge pull request #1 from mspraggs/patch-1
Added <map> include to GridNerscIO.h
2015-04-30 09:46:48 +01:00
Peter Boyle d8ffa09e3b Benchmark wilson dhop now; 14.6GF on one core, not as fast as SU(3)xSU(3) [23GF] but still not too shabby.
Disassembling output shows ugly sequences in the permute sector. Could comparatively benchmark with and without
the if-else structure to see how much I'm losing.

Drops to 9GF as it falls out of cache. Moving to Lebesgue ordering should help there. Substantive progress.
2015-04-29 06:50:18 +01:00
Peter Boyle dcc23faa4a Fixed the stencil sector and Wilson now agrees between stencil based implementation
and the cshift based implementation. Managed to reduce the volume of code in this
sector a little, but consolidation would be good, perhaps taking common
logic out into simple helper functions
2015-04-29 06:23:56 +01:00
Peter Boyle b0485894b3 Shaken out stencil to the point where I think wilson dslash is correct.
Need to audit code carefully, consolidate between stencil and cshift,
and then benchmark and optimise.
2015-04-28 08:11:59 +01:00
Peter Boyle 0b7d389258 Reworking CSHIFT and Stencil. Implementing Wilson and discovered rework is required 2015-04-27 13:45:07 +01:00
Peter Boyle 35cfef2129 Big updates with progress towards wilson matrix 2015-04-26 15:51:09 +01:00
Peter Boyle c678f2d255 Starting the implementation of wilson; incomplete and committing non-functional code which
is not yet included from elsewhere or linked to the build system.
2015-04-25 14:33:02 +01:00
Peter Boyle d5fd34b6e8 Update to TODO list 2015-04-25 13:04:26 +01:00
Peter Boyle 2d8cf9e456 Added two spinor functionality required to support the Wilson hopping term. 2015-04-25 12:54:06 +01:00
Peter Boyle dc970c6442 Dirac done ; remove from TODO 2015-04-24 22:56:37 +01:00
Peter Boyle fc32450360 Improved the gamma quite a bit.
Serial rng's which are set on node zero and broadcaste
2015-04-24 20:21:40 +01:00
Peter Boyle 2a67214f9d static names and enum list 2015-04-24 19:12:14 +01:00
Peter Boyle 71d5927a66 Vectors now too and right multiple of matrix with gamma 2015-04-24 19:08:29 +01:00
Peter Boyle f2ac20e7ab Removed summation 2015-04-24 18:42:44 +01:00
Peter Boyle 750dd5f5fd Cleared the code out from Grid_summation to lattice/Grid_lattice_transfer.h 2015-04-24 18:41:34 +01:00
Peter Boyle 74432432b6 Moved code from summation into transfer and reduction 2015-04-24 18:40:44 +01:00
Peter Boyle b8eef54fa7 First implementation of Dirac matrices as a Gamma class. 2015-04-24 18:20:03 +01:00
Peter Boyle e2e3ea5742 Reorganised the TODO. Really getting somewhere 2015-04-23 20:42:30 +01:00
Peter Boyle 4b4dcc4c13 Rename Grid_QCD 2015-04-23 20:42:09 +01:00
Peter Boyle afe6c4f64f move 2015-04-23 20:41:22 +01:00
Peter Boyle 62e8d2d127 Slice summation working. May move this into lattice/Grid_lattice_reduction however 2015-04-23 15:13:00 +01:00