Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 3.58 KB

platform-support.md

File metadata and controls

64 lines (48 loc) · 3.58 KB
id title sidebar_label
platform-support
Officially Supported Platforms
Platform Support

The most recent version of Celerity aims to support the following environments.

SYCL Implementations

  • 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
  • SimSYCL HEAD

Other hardware or backend configurations might work, but have not been tested or verified.

ComputeCpp is no longer supported since its discontinuation.

MPI Implementations

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.

Continuously Tested Configurations

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