Commit Graph
100 Commits
Author SHA1 Message Date
Peter Boyle 21a1710b43 Verbose vector length 2018-07-23 06:08:39 -04:00
Peter Boyle b2b5137d28 Finally starting to get decent performance on Volta 2018-07-13 12:06:18 -04:00
Peter Boyle 2cc07450f4 Fastest option for the dslash 2018-07-05 09:57:55 -04:00
Peter Boyle c0e8bc9da9 Current version gets 250 - 320 GF/s on Volta on the target 12^4 volume. 2018-07-05 07:10:25 -04:00
Peter Boyle b1265ae867 Prettify code 2018-07-05 07:08:06 -04:00
Peter Boyle 32bb85ea4c Standard extractLane is fast 2018-07-05 07:07:30 -04:00
Peter Boyle ca0607b6ef Clearer kernel call meaning 2018-07-05 07:06:15 -04:00
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