SYCL allows to write applications or accelerators that are functionally portable between FPGAs, CPUs and GPUs. For oneAPI, plugins by Codeplay allow to target NVIDIA and AMD GPUs and are installed on Noctua 2.
NVIDIA GPUs
For a simple SYCL application as described at https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedGuide.md, you can use the corresponding setup as follows. Notes:
The module oneapi-llvm is a slightly modified variant of the normal oneapi modules that also puts the llvm compiler executables into the path, i.e. it lets you invoke clang++ as demonstrated below.
The fitting GPU environment (here current CUDA modules) is required in conjunction with the oneapi tools.
ml fpga intel/oneapi-llvm system/CUDA clang++ -fsycl -fsycl-targets=nvptx64-nvidia-cuda simple-sycl-app.cpp -o simple-sycl-app-cuda ## execution requires a gpu node ./simple-sycl-app-cuda
Supported Version Combinations
oneAPI | CUDA |
---|---|
24.1.0, 24.0.0, 23.2.0, 23.1.0, 23.0.0 | >=12.0 |