GPU Updates, master branch (2020.03.27.)
This was a long time coming, but I finally spent a bit of time to pull in some of the changes that I made to the code a long time ago to run my CUDA tests properly. (Basically, just teaching AtlasCMake
to build .cu
files as regular C++ files when CUDA is not available.)
At the same time I decided to move in some SYCL code into the repository at the same time.
- Moved an upgraded version of
FindSYCL.cmake
from AthExSYCL/cmake/FindSYCL.cmake intoAtlasCMake
. (That seemed like the appropriate place for it.) - Created the
External/triSYCL
package for pulling in the triSYCL code when we build our software using a compiler that doesn't support SYCL itself.- While triSYCL is very far from being perfect, this at least should ease writing "all around functional" SYCL code for the offline repository.
The MR pulling these things into atlas/athena will have to update the example packages at the same time as well, I intend to do that when we get there. (I already have modifications locally, as I was testing these things locally already.)
What bugs me a lot about this is that once/if triSYCL becomes part of the normal AthenaExternals
builds, it will become very tricky to use the Intel compiler to build "proper" SYCL code against the nightly. Since I made some tests locally, once <CL/sycl.hpp>
appears as a "regular" header in the include path, DPCPP becomes very unhappy. I'll follow up with the Intel developers about that before this MR should go forward...