Commit Graph
100 Commits
Author SHA1 Message Date
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
paboyle 4d53703c67 Scalar type differeing allowed, eg. precisoin change 2018-03-05 11:39:52 +00:00
paboyle d506c59efa Warnings disabled 2018-03-05 11:39:20 +00:00
paboyle 44188a5c6f AVX512 fix 2018-03-05 00:32:24 +00:00
paboyle 2018077770 Make NVCC happy with the compile. This is warning free on 9.1 on my laptop (both make and make tests). 2018-03-05 00:28:24 +00:00
paboyle 984e06e2b5 Introduce view objects that can safely be copied to GPU for access 2018-03-04 16:40:11 +00:00