id | title | sidebar_label |
---|---|---|
platform-support |
Officially Supported Platforms |
Platform Support |
The most recent version of Celerity aims to support the following environments.
- AdaptiveCpp (formerly hipSYCL) ≥ revision
v24.06.0
, with- CUDA ≥ 11.0
- Clang ≥ 14.0 for CUDA < 12.0, Clang ≥ 16.0 for CUDA ≥ 12.0
- on NVIDIA hardware with compute capability ≥ 7.0 (
-DACPP_TARGETS=cuda:*
) - or on CPUs via OpenMP (
-DACPP_TARGETS=omp
, implicit) - any target with the
generic
SSCP compiler (experimental,-DACPP_TARGETS=generic
, which is the default)
- DPC++ ≥ revision
ad494e9d
- Intel Compute Runtime ≥ 24.13.29138.7
- oneAPI Level Zero ≥ 1.17.0
- on integrated and dedicated Intel GPUs
- SimSYCL HEAD
Other hardware or backend configurations might work, but have not been tested or verified.
ComputeCpp is no longer supported since its discontinuation.
Even though we primarily test with OpenMPI, Celerity should be compatible with any MPI 2 implementation.
Note that the latest version of Celerity breaks with OpenMPI < 4.0.2 due to a known bug around
mpi_assert_allow_overtaking
. Make sure to upgrade your version of OpenMPI if you're currently running 4.0.1 or older.
We automatically verify Celerity's build process and test suites against a select number of system configurations.
Those are (CRT = Intel Compute Runtime, L0 = oneAPI Level Zero):
SYCL | SYCL version | OS | GPU | Build type |
---|---|---|---|---|
DPC++ | ad494e9d (CRT 24.13.29138.7, L0 1.17.0) |
Ubuntu 22.04 | Intel Arc A770 | Debug, Release |
DPC++ | HEAD (CRT 24.13.29138.7, L0 1.17.0) |
Ubuntu 24.04 | Intel Arc A770 | Debug, Release |
AdaptiveCpp | v24.06.0 (Clang 14.0, CUDA 11.8.0) |
Ubuntu 22.04 | NVIDIA RTX 2070 | Debug, Release |
AdaptiveCpp | HEAD (Clang 18.0, CUDA 12.5.0)* |
Ubuntu 24.04 | NVIDIA RTX 2070 | Debug, Release |
SimSYCL | HEAD (GCC 13.2) |
Ubuntu 24.04 | (None) | Debug, Release |
* currently requires a patch for an illegal macro definition in CUDA:
--- a/include/crt/host_defines.h 2023-04-03 14:40:16.471254404 +0200
+++ b/include/crt/host_defines.h 2023-03-23 22:07:22.000000000 +0100
@@ -70,7 +70,7 @@
#define __no_return__ \
__attribute__((noreturn))
-#if defined(__CUDACC__) || defined(__CUDA_ARCH__) || defined(__CUDA_LIBDEVICE__)
+#if (defined(__CUDACC__) || defined(__CUDA_ARCH__) || defined(__CUDA_LIBDEVICE__)) && !defined(__clang__)
/* gcc allows users to define attributes with underscores,
e.g., __attribute__((__noinline__)).
Consider a non-CUDA source file (e.g. .cpp) that has the