Commit Graph
100 Commits
Author SHA1 Message Date
Peter Boyle 19b527e83f Better extract merge for GPU. Let the SIMD header files define the pointer type for
access. GPU redirects through builtin float2, double2 for complex
2018-07-05 07:05:13 -04:00
Peter Boyle 4730d4692a Fast lane extract, saturates bandwidth on Volta for SU3 benchmarks 2018-07-05 07:03:33 -04:00
Peter Boyle 1bb456c0c5 Minor GPU vector width change 2018-07-05 07:02:04 -04:00
Peter Boyle 4b04ae3611 Printing improvement 2018-07-05 06:59:38 -04:00
Peter Boyle 2f776d51c6 Gpu specific benchmark saturates memory. Can enhance Grid to do this for expressions,
but a bitof (known) work.
2018-07-05 06:58:37 -04:00
paboyle 3a50afe7e7 GPU dslash updates 2018-06-27 22:32:21 +01:00
paboyle f8e880b445 Loop for s and xyzt offlow 2018-06-27 21:49:57 +01:00
paboyle 3e947527cb Move looping over "s" and "site" into kernels for GPU optimisatoin 2018-06-27 21:29:43 +01:00
paboyle 31f65beac8 Move site and Ls looping into the kernels 2018-06-27 21:28:48 +01:00
paboyle 38e2a32ac9 Single SIMD lane operations for CUDA 2018-06-27 21:28:06 +01:00
paboyle efa84ca50a Keep Cuda 9.1 happy 2018-06-27 21:27:32 +01:00
paboyle 5e96d6d04c Keep CUDA happy 2018-06-27 21:27:11 +01:00
paboyle df30bdc599 CUDA happy 2018-06-27 21:26:49 +01:00
paboyle 7f45222924 Diagnostics on memory alloc fail 2018-06-27 21:26:20 +01:00
paboyle dd891f5e3b Use NVCC to suppress device Eigen 2018-06-27 21:25:17 +01:00
paboyle 6c97a6a071 Coalescing version of the kernel 2018-06-13 20:52:29 +01:00
paboyle 73bb2d5128 Ugly hack to speed up compile on GPU; we don't use the hand kernels on GPU anyway so why compile 2018-06-13 20:35:28 +01:00
paboyle b710fec6ea Gpu code first version of specialised kernel 2018-06-13 20:34:39 +01:00
paboyle b2a8cd60f5 Doubled gauge field is useful 2018-06-13 20:27:47 +01:00
paboyle 867ee364ab Explicit instantiation hooks 2018-06-13 20:27:12 +01:00
paboyle 25becc9324 GPU tweaks for benchmarking; really necessary? 2018-06-13 20:26:07 +01:00
paboyle 94d1ae4c82 Some prep work for GPU shared memory. Need to be careful, as will try GPU direct
RDMA and inter-GPU memory sharing on SUmmit later
2018-06-13 20:24:06 +01:00
paboyle 2075b177ef CUDA_ARCH more carefule treatment 2018-06-13 20:22:34 +01:00
paboyle 847c761ccc Move sfw IEEE fp16 into central location 2018-06-13 20:22:01 +01:00
paboyle 8287ed8383 New GPU vector targets 2018-06-13 20:21:35 +01:00
paboyle e6be7416f4 Use managed memory 2018-06-13 20:14:00 +01:00
paboyle 26863b6d95 User Managed memory 2018-06-13 20:13:42 +01:00
paboyle ebd730bd54 Adding 2D loops 2018-06-13 20:13:01 +01:00
paboyle 066be31a3b Optional GPU target SIMD types; work in progress and trying experiments 2018-06-13 20:07:55 +01:00
paboyle 7a4c142955 Add GPU specific simd targets 2018-06-13 19:55:30 +01:00
Peter Boyle eb7d34a4cc GPU version 2018-05-14 19:41:47 -04:00
Peter Boyle aab27a655a Start of GPU kernels 2018-05-14 19:41:17 -04:00
Peter Boyle 93280bae85 Gpu option 2018-05-14 19:40:58 -04:00
Peter Boyle c5f93abcd7 GPU clean up 2018-05-14 19:40:33 -04:00
Peter Boyle d5deef782d Useful debug comments 2018-05-14 19:39:52 -04:00
Peter Boyle 5f50473c0d Clean up 2018-05-14 19:39:11 -04:00
Peter Boyle 13f50406e3 Suppress print statement 2018-05-12 18:00:00 -04:00
Peter Boyle 09cd46d337 Lane by Lane operation 2018-05-12 17:59:35 -04:00
Peter Boyle d3f51065c2 Give command line control of blocks/threads split 2018-05-12 17:58:56 -04:00
Peter Boyle 925ac4173d Thread count control for warp scheduler thingy doodaa thing 2018-05-12 17:58:22 -04:00
Peter Boyle eb921041d0 Perf count control 2018-05-12 17:57:32 -04:00
Peter Boyle 87c5c0271b Ficxing eigen 2018-04-16 19:08:07 -04:00
Peter Boyle a3f5a13591 Better Eigen handling 2018-04-16 18:02:55 -04:00
Peter Boyle 9fe28f00eb Eigen sim link off head revision 2018-04-16 17:54:46 -04:00
Peter Boyle a8a0bb85cc Control scalar execution or vector under generic. Disable Eigen vectorisation on powerpc / SUmmit 2018-04-12 12:32:57 -04:00
Peter Boyle 6411caad67 work distribution 2018-04-12 11:41:41 -04:00
Peter Boyle 7533035a99 Control Eigen vectorisatoin 2018-04-12 11:40:56 -04:00
Peter Boyle b15db11c60 Kernels -> pure static object to enable device execution 2018-03-24 19:35:20 -04:00
Peter Boyle f6077f9d48 Kernels -> not instantiaed otherwise object ref on GPU 2018-03-24 19:33:44 -04:00
Peter Boyle 572954ef12 Kernels not an instantiated object, just static 2018-03-24 19:33:13 -04:00
Peter Boyle cedeaae7db Lebesge -> StencilView if necessary 2018-03-24 19:32:41 -04:00
Peter Boyle e6cf0b1e17 View typedefs go to OperatorImpl 2018-03-24 19:32:11 -04:00
Peter Boyle 5412628ea6 begin end lamda 2018-03-24 19:31:45 -04:00
Peter Boyle 1f70cedbab Have to make all kernel called routines static since object reference will be a host pointer on GPU 2018-03-24 19:29:26 -04:00
Peter Boyle b50f37cfb4 Remove overlap comms flag 2018-03-24 19:28:53 -04:00
Peter Boyle cb0d2a1b03 threaded rng init; I thought this was on 2018-03-24 19:28:17 -04:00
Peter Boyle 6fe9b28a82 Cosmetic 2018-03-24 19:27:14 -04:00
Peter Boyle b002587d7c Simplify 2018-03-24 19:26:44 -04:00
Peter Boyle 6c08385782 Simplify 2018-03-24 19:26:19 -04:00
Peter Boyle 4e1272fabf Kernels need to be static to work on GPU. No reference to host resident data 2018-03-22 18:44:53 -04:00
Peter Boyle 607dc2d3c6 Remove lebesgue order 2018-03-22 18:23:09 -04:00
Peter Boyle 23c880b009 Remove lebesgue order; stick in stencil if need 2018-03-22 18:13:41 -04:00
Peter Boyle 334bb6792f Lebesgue order removed. Stick in the stencil view 2018-03-22 18:12:12 -04:00
Peter Boyle a3690071b4 Warm up GPu 2018-03-22 18:05:20 -04:00
Peter Boyle 299d119013 GPU work allocation improved 2018-03-22 18:04:24 -04:00
Peter Boyle 55be842d23 Dont force l1p.h so early 2018-03-22 18:01:43 -04:00
Peter Boyle 9875c446c6 Clean up pragmas 2018-03-20 07:19:17 -04:00
Peter Boyle 9c25eb35ca Eigen develop branch for now 2018-03-20 07:18:56 -04:00
Peter Boyle 5ac96dbdc6 Warm behaviour in SU3 benchmark 2018-03-20 07:18:31 -04:00
Peter Boyle 5cc9aca85d Use 64bit index for looping 2018-03-20 06:34:52 -04:00
Peter Boyle ac29ebcb95 Clean up debug prints 2018-03-20 06:33:59 -04:00
Peter Boyle a5cfb89304 Update eigen process direct from develop on github. Dangerous, but needed from GPU 2018-03-19 07:20:48 -04:00
Peter Boyle f04a7251cc Gpu welcome message and device info 2018-03-19 07:12:12 -04:00
Peter Boyle d4ce7d9905 GPU friendly Stencil needs a view 2018-03-19 07:11:21 -04:00
Peter Boyle 8a1d303ab9 GPU friendly stencil improvements 2018-03-19 07:11:03 -04:00
Peter Boyle bf0a4de919 GPU friendly params object 2018-03-19 07:10:12 -04:00
Peter Boyle 6fe5885fe4 Warning suppress 2018-03-19 07:09:49 -04:00
Peter Boyle 17ac309e84 Fix the compile 2018-03-19 07:08:59 -04:00
Peter Boyle 7467a1c027 Latest eigen needed for GPU 2018-03-19 07:08:10 -04:00
Peter Boyle fdfb8a26a8 Disable eigen vectorisation on GPU because of Summit compile issues 2018-03-19 07:07:30 -04:00
paboyle 2df4e422ad Merge branch 'feature/gpu-port' of https://github.com/paboyle/Grid into feature/gpu-port 2018-03-18 14:45:41 +00:00
paboyle 3a3e3cac40 Pull the trigger on offload 2018-03-18 14:45:29 +00:00
paboyle b1c02ec310 MallocManaged in GPU 2018-03-18 14:44:46 +00:00
paboyle 38eadee2c9 Prettier code 2018-03-18 14:44:22 +00:00
paboyle 42c70437be Views 2018-03-18 14:43:47 +00:00
paboyle 65274b4d7f Tidy up 2018-03-18 14:43:16 +00:00
Peter Boyle 7e8be32755 Typo fix 2018-03-13 19:22:31 -04:00
paboyle ff761ea4e6 Bound check improvement 2018-03-09 20:00:46 +00:00
paboyle a31d3e60d8 Better bounds check 2018-03-09 18:10:21 +00:00
paboyle 4d60b92b7f Update oSites 2018-03-08 21:00:25 +00:00
paboyle c159c70c84 View introduced 2018-03-08 14:58:04 +00:00
paboyle 28b5572755 Merge branch 'feature/gpu-port' of https://github.com/paboyle/Grid into feature/gpu-port 2018-03-08 13:01:42 +00:00
paboyle 5fac7080bc Adding -fno-strict-aliasing by default 2018-03-08 13:01:24 +00:00
Peter Boyle 4548523ecc This modification eliminates what looks like a compiler bug
on Intel 2017.
2018-03-08 04:41:16 -08:00
paboyle 4154fc6f44 Revert a change 2018-03-07 16:54:11 +00:00
paboyle 4e3458516a Reverting after fixing issue with extract merge 2018-03-07 16:50:13 +00:00
Peter Boyle 90a2efb9b3 Hit an annoying strict alias optimisation in GCC 4.9 through 6.3
Chris K was correct. It appears that an additional memcpy (UGHHH) is enough
to suppress the compiler
2018-03-07 07:27:26 -08:00
paboyle 40699221e2 Dont alias lhs and rhs in a where statement 2018-03-06 04:14:13 -08:00
paboyle 3cb1b545d0 Don't alias the variables with a where statement. 2018-03-06 04:13:26 -08:00
paboyle e199ba7e88 Fix the Charge conjugate BC's 2018-03-05 13:59:02 +00:00