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
Peter Boyle
b7416d79e3
Begginings of slice summation and subblocking
2015-04-23 11:04:59 +01:00
Peter Boyle
2f8431ab03
Consolidate index to coor in a single routine
2015-04-23 11:04:19 +01:00
Peter Boyle
a9e574dd27
Snippets from Guido to optimise Reduce
2015-04-23 08:31:40 +01:00
Peter Boyle
73c0db82d5
Better description of Intel's many ISA targets
2015-04-23 08:02:51 +01:00
Peter Boyle
eb58297a43
Fixing endian on linux I hope
2015-04-23 07:51:15 +01:00
Peter Boyle
1851327d19
Got the NERSC IO working and fixed a bug in cshift.
2015-04-22 22:46:48 +01:00
Peter Boyle
a5b0c492d7
Rework of RNG to use C++11 random. Should work correctly maintaining parallel RNG across
...
a machine. If a "fixedSeed" is used, randoms should be reproducible across different machine
decomposition since the generators are physically indexed and assigned in lexico ordering.
2015-04-19 14:55:58 +01:00
Peter Boyle
650410cb2f
Update to task list
2015-04-19 14:55:16 +01:00
Peter Boyle
f64d39ab57
Split all OMP directives into lattice subdir for easy maintainance of
...
parallelism and future OMP 4.0 offload.
2015-04-18 22:17:01 +01:00
Peter Boyle
4e1a3aee82
Update
2015-04-18 22:16:31 +01:00
Peter Boyle
1556c2ba3f
Finishing the reorg
2015-04-18 21:24:10 +01:00
Peter Boyle
62fec04419
Reorganisation
2015-04-18 21:23:32 +01:00