Skip to content

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 into AtlasCMake. (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...

Pinging @leggett, @fwinkl, @baines and @vpascuzz.

Merge request reports