Commit Graph
100 Commits
Author SHA1 Message Date
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
paboyle aead94e9a7 View introduced 2018-03-04 16:39:29 +00:00
paboyle 3277bda130 View introduction to prepare for accelerator offload.
Probably same problem exists for stencil object
2018-03-04 16:38:08 +00:00
paboyle 442b0b406c View related changes 2018-03-04 16:34:14 +00:00
paboyle 8824a54269 View related changes 2018-03-04 16:33:33 +00:00
paboyle c03423250f Indexable changes 2018-03-04 16:31:35 +00:00
paboyle 317fd0da44 Views introduced. Need to accelerator offload these routines. 2018-03-04 16:30:45 +00:00
paboyle 783795a44a Views introduced 2018-03-04 16:12:49 +00:00
paboyle 0e6197fbed Introduce accelerator friendly expression template rewrite.
Must obtain and access lattice indexing through a view object that is safe
to copy construct in copy to GPU (without copying the lattice).
2018-03-04 16:03:19 +00:00
paboyle dad7862f91 Go through a view object that can be copied to GPU 2018-03-04 16:02:02 +00:00
paboyle c89a883448 where was deprecated and integrated to ET engine a long time ago. Remove dead old original code 2018-03-04 15:58:02 +00:00
paboyle c204288fbc Remove a couple of print statements 2018-03-04 15:57:15 +00:00
paboyle ad739f042a Introduce views for passing lattice indexing to accelerators. 2018-03-04 15:56:14 +00:00
paboyle db988301d0 Introduce view objects for indexing lattices. Used to pass the view to acccelerators 2018-03-04 15:55:16 +00:00
paboyle 9b1f29c4c2 Support a view for passing to accelerator 2018-03-04 15:54:35 +00:00
paboyle e5ea04ee0c Need to support precision change, and real replication in multiple simd lanes 2018-03-04 15:53:04 +00:00
paboyle c92a3c6068 Need to support any vector type template and run on accelerator 2018-03-04 15:52:14 +00:00
paboyle 03f8da8fbc enable-debug option for debug flags in compile 2018-03-04 15:51:47 +00:00
paboyle 78a9e31ff0 options more obvious 2018-02-24 22:26:32 +00:00
paboyle c1fc947bb8 Coordinate handling GPU friendly + some GPU merge/extract improvements 2018-02-24 22:26:10 +00:00
paboyle ff7b19a71b Coordinate handling GPU ready avoid malloc 2018-02-24 22:25:39 +00:00
paboyle 1c16ffa1c1 Coordinate GPU ready. No malloc 2018-02-24 22:25:09 +00:00
paboyle 4962f59477 Eliminate both GPU issue and threading bottle neck by avoiding malloc in coordinate handling 2018-02-24 22:24:37 +00:00
paboyle e158b60bce GPU friendly coords 2018-02-24 22:23:47 +00:00
paboyle 34820bec27 Coordinate handling GPU ready. No malloc 2018-02-24 22:23:18 +00:00
paboyle eed9aa9f0c Extract merge gpu ready 2018-02-24 22:23:01 +00:00
paboyle 8792ff6439 Coordinate handling gpu ready 2018-02-24 22:22:43 +00:00
paboyle 078901278c Coordinate handling gpu friendly 2018-02-24 22:22:02 +00:00
paboyle bf5fb89aff Coordinate handling GPU friendly 2018-02-24 22:21:36 +00:00
paboyle 7574c18cef Massive clean up extract merge.
Simpler and GPU friendly
2018-02-24 22:21:08 +00:00
paboyle 36ea5f6b77 gpu friendly coordinates ; no std::vector on GPU 2018-02-24 22:20:14 +00:00
paboyle 285deab432 Coordinate handling GPU friendly. Avoid std::vector 2018-02-24 22:19:28 +00:00
paboyle bb7d87d0a0 Coordinate handling gpu friendly 2018-02-24 22:18:33 +00:00
paboyle b9b5bdfc3a Proper offload (accelerator access) will require a mutable copy lambda. 2018-02-02 11:38:19 +00:00
paboyle 51eb2c5dfc Make referencign the stencil and all info required to evaluate the kernel
accelerator marked up
2018-02-02 11:37:13 +00:00
paboyle ede0dff794 Mark up as an accelerator function 2018-02-02 11:36:44 +00:00
paboyle aa6de818e2 Copy data needed by Kernels out of the grid object to avoid host reference 2018-02-02 11:36:11 +00:00
paboyle dcf6517a93 Accelerator offload and copy Opt into the kernel for GPU host var safety 2018-02-02 11:35:35 +00:00
paboyle a308dff410 accelerator loop, copy Opt into the GPU 2018-02-02 11:34:37 +00:00
paboyle 14ba20898a Accelerator loop the key kernel call 2018-02-02 11:30:07 +00:00
paboyle a53d3ee19a Add Opt to the lambda capture to get it into the GPU 2018-02-02 11:28:39 +00:00
paboyle 5df435319d Use constexpr 2018-02-02 11:27:56 +00:00
paboyle 0da2d3e222 accelerator off load some more stuff 2018-02-02 11:27:35 +00:00
paboyle 9c9dfbfa78 Force accelerator 2018-02-02 11:25:09 +00:00
paboyle e4df025d01 Accelerator related 2018-02-01 23:20:05 +00:00
paboyle cfeda9d536 constexpr on const ints 2018-02-01 22:59:12 +00:00
paboyle 4450b1993a Offload 2018-02-01 22:45:47 +00:00
paboyle d03ce5c2a4 Provide a way to get around std::vector for a known type on device.
Use template specialisation to access a private member in the Clang++ STL implementation
2018-02-01 22:44:25 +00:00
paboyle 7d6522c1ef Accelerator inline 2018-02-01 22:43:56 +00:00
paboyle b96832a922 Accelerator inline 2018-02-01 22:43:26 +00:00
paboyle 5d7af47b05 accelerator_inline 2018-02-01 22:42:54 +00:00
paboyle 053ef25c90 constexpr makes GPU happy 2018-02-01 22:42:29 +00:00
paboyle 8ae77d3706 Small simplification of FermionOperatorImpl towards GPU but not there yet 2018-02-01 22:41:54 +00:00