Skip to content

Commit

Permalink
Update README.md and temporarily disable SYCL runtime checks
Browse files Browse the repository at this point in the history
  • Loading branch information
j-stephan committed Aug 8, 2023
1 parent 78d436c commit 44d1109
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 34 deletions.
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,21 +65,24 @@ Supported Compilers

This library uses C++17 (or newer when available).

| Accelerator Back-end | gcc 9.5 <br/> (Linux) | gcc 10.4 / 11.1 <br/> (Linux) | gcc 12.3 <br/> (Linux) | gcc 13.1 <br/> (Linux) | clang 9 <br/> (Linux) | clang 10 / 11<br/> (Linux) | clang 12 <br/> (Linux) | clang 13 <br/> (Linux) | clang 14 <br/> (Linux) | clang 15 <br/> (Linux) | clang 16 <br/> (Linux) | icpx (latest) | Xcode 13.2.1 / 14.2 / 14.3.1 <br /> (macOS) | Visual Studio 2022 <br/> (Windows) |
|--------------------------------------------------------------------------------|-------------------------------------------------|-------------------------------------------------|---------------------------------------------|------------------------|------------------------------------------------------------|-------------------------------------------------------|-------------------------------------------------|---------------------------------------------|---------------------------------------------------|-------------------------------------------|-------------------------------------------|--------------------|-------------------------------------------------------|--------------------------------------|
| Serial | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| OpenMP 2.0+ blocks | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| OpenMP 2.0+ threads | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| std::thread | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| TBB | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| CUDA (nvcc) | :white_check_mark: <br/> (CUDA 11.0 - 12.2)[^2] | :white_check_mark: <br/> (CUDA 11.4 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 12.0 - 12.2) | :x: | :white_check_mark: <br/> (CUDA 11.0-11.2; 11.6 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 11.2, 11.6 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 11.6 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 11.7 - 12.0) | :white_check_mark: <br/> (CUDA 11.8 - 12.0) | :white_check_mark: <br/> (CUDA 12.2) | :x: | :x: | :x: | :x: |
| CUDA (clang) | - | - | - | :x: | :x: | :x: | :x: | :x: | :white_check_mark: (CUDA 11.0 - 11.5) | :white_check_mark: (CUDA 11.0 - 11.5)[^1] | :white_check_mark: (CUDA 11.0 - 11.5)[^1] | :x: | - | - |
| [HIP](https://alpaka.readthedocs.io/en/latest/install/HIP.html) (clang) | - | - | - | :x: | :x: | :x: | :x: | :x: | :white_check_mark: (HIP 5.0 - 5.2) | :white_check_mark: (HIP 5.3 - 5.4) | :white_check_mark: (HIP 5.5) | :x: | - | - |
| Accelerator Back-end | gcc 9.5 <br/> (Linux) | gcc 10.4 / 11.1 <br/> (Linux) | gcc 12.3 <br/> (Linux) | gcc 13.1 <br/> (Linux) | clang 9 <br/> (Linux) | clang 10 / 11<br/> (Linux) | clang 12 <br/> (Linux) | clang 13 <br/> (Linux) | clang 14 <br/> (Linux) | clang 15 <br/> (Linux) | clang 16 <br/> (Linux) | icpx 2023.1.0 / 2023.2.0 (Linux) | Xcode 13.2.1 / 14.2 / 14.3.1 <br /> (macOS) | Visual Studio 2022 <br/> (Windows) |
|--------------------------------------------------------------------------------|-------------------------------------------------|-------------------------------------------------|---------------------------------------------|------------------------|------------------------------------------------------------|-------------------------------------------------------|-------------------------------------------------|---------------------------------------------|---------------------------------------------------|-------------------------------------------|-------------------------------------------|----------------------------------|-------------------------------------------------------|--------------------------------------|
| Serial | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| OpenMP 2.0+ blocks | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark:[^3] | :white_check_mark: | :white_check_mark: |
| OpenMP 2.0+ threads | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark:[^3] | :white_check_mark: | :white_check_mark: |
| std::thread | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| TBB | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| CUDA (nvcc) | :white_check_mark: <br/> (CUDA 11.0 - 12.2)[^2] | :white_check_mark: <br/> (CUDA 11.4 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 12.0 - 12.2) | :x: | :white_check_mark: <br/> (CUDA 11.0-11.2; 11.6 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 11.2, 11.6 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 11.6 - 12.0)[^2] | :white_check_mark: <br/> (CUDA 11.7 - 12.0) | :white_check_mark: <br/> (CUDA 11.8 - 12.0) | :white_check_mark: <br/> (CUDA 12.2) | :x: | :x: | :x: | :x: |
| CUDA (clang) | - | - | - | :x: | :x: | :x: | :x: | :x: | :white_check_mark: (CUDA 11.0 - 11.5) | :white_check_mark: (CUDA 11.0 - 11.5)[^1] | :white_check_mark: (CUDA 11.0 - 11.5)[^1] | :x: | - | - |
| [HIP](https://alpaka.readthedocs.io/en/latest/install/HIP.html) (clang) | - | - | - | :x: | :x: | :x: | :x: | :x: | :white_check_mark: (HIP 5.0 - 5.2) | :white_check_mark: (HIP 5.3 - 5.4) | :white_check_mark: (HIP 5.5) | :x: | - | - |
| SYCL | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :white_check_mark:[^4] | :x: | :x: |

Other compilers or combinations marked with :x: in the table above may work but are not tested in CI and are therefore not explicitly supported.

[^1]: Due to an [LLVM bug](https://github.com/llvm/llvm-project/issues/58491) in debug mode only release builds are supported.
[^2]: Due to a [CUDA bug](https://github.com/alpaka-group/alpaka/issues/2035) debug builds are only supported for CUDA versions >= 11.7.
[^3]: Due to an [`icpx` bug](https://github.com/intel/llvm/issues/10711) the OpenMP back-ends cannot be used together with the SYCL back-end.
[^4]: Currently, the unit tests are compiled but not executed.

Dependencies
------------
Expand Down
12 changes: 1 addition & 11 deletions script/install_oneapi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,11 @@ then
sudo -E apt-cache pkgnames intel
echo "################################"

# Intel mixes different version numbers in releases. Make sure we install the versions that are compatible.
if [ "${ALPAKA_CI_ONEAPI_VERSION}" == "2023.1.0" ]
then
ALPAKA_CI_TBB_VERSION="2021.9.0"
elif [ "${ALPAKA_CI_ONEAPI_VERSION}" == "2023.2.0" ]
then
ALPAKA_CI_TBB_VERSION="2021.10.0"
fi

# The compiler will automatically pull in OpenMP and TBB as dependencies
components=(
intel-oneapi-common-vars # Contains /opt/intel/oneapi/setvars.sh - has no version number
intel-oneapi-compiler-dpcpp-cpp-"${ALPAKA_CI_ONEAPI_VERSION}" # Contains icpx compiler and SYCL runtime
intel-oneapi-openmp-"${ALPAKA_CI_ONEAPI_VERSION}" # For OpenMP back-ends
intel-oneapi-runtime-opencl # Required to run SYCL tests on the CPU - has no version number
intel-oneapi-tbb-devel-"${ALPAKA_CI_TBB_VERSION}" # For TBB back-end
)
travis_retry sudo apt-get install -y "${components[@]}"

Expand Down
4 changes: 1 addition & 3 deletions script/job_generator/generate_job_yaml.py
Original file line number Diff line number Diff line change
Expand Up @@ -476,9 +476,7 @@ def create_job(
job_name + "-" + job[HOST_COMPILER][NAME] + job[HOST_COMPILER][VERSION]
)
# if Clang-CUDA is the device compiler, add also the CUDA SDK version to the name
if (job[DEVICE_COMPILER][NAME] == CLANG_CUDA
and ALPAKA_ACC_GPU_CUDA_ENABLE in job
and job[ALPAKA_ACC_GPU_CUDA_ENABLE][VERSION] != OFF_VER):
if job[DEVICE_COMPILER][NAME] == CLANG_CUDA:
job_name = job_name + "-cuda" + job[ALPAKA_ACC_GPU_CUDA_ENABLE][VERSION]

if job[JOB_EXECUTION_TYPE][VERSION] == JOB_EXECUTION_COMPILE_ONLY:
Expand Down
19 changes: 10 additions & 9 deletions script/job_generator/job_modifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,16 @@ def add_job_parameters(job_matrix: List[Dict[str, Tuple[str, str]]]):
job[JOB_EXECUTION_TYPE] = (JOB_EXECUTION_TYPE, JOB_EXECUTION_RUNTIME)
break

for icpx_version in versions.sw_versions[ICPX]:
for job in job_matrix:
if(
job[DEVICE_COMPILER][NAME] == ICPX
and job[DEVICE_COMPILER][VERSION] == icpx_version
and job[BUILD_TYPE][VERSION] == CMAKE_DEBUG
):
job[JOB_EXECUTION_TYPE] = (JOB_EXECUTION_TYPE, JOB_EXECUTION_RUNTIME)
break
# Disabled until all runtime errors for the SYCL CPU back-end are fixed.
# for icpx_version in versions.sw_versions[ICPX]:
# for job in job_matrix:
# if(
# job[DEVICE_COMPILER][NAME] == ICPX
# and job[DEVICE_COMPILER][VERSION] == icpx_version
# and job[BUILD_TYPE][VERSION] == CMAKE_DEBUG
# ):
# job[JOB_EXECUTION_TYPE] = (JOB_EXECUTION_TYPE, JOB_EXECUTION_RUNTIME)
# break

##############################################
## Defining runtime test for the CUDA backend
Expand Down
2 changes: 1 addition & 1 deletion script/job_generator/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
alpaka-job-coverage == 1.5.1
alpaka-job-coverage == 1.5.2
allpairspy == 2.5.0
typeguard < 3.0.0
pyaml
Expand Down
1 change: 1 addition & 0 deletions script/job_generator/verify.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ def verify(combinations: List[Dict[str, Tuple[str, str]]]) -> bool:
Combination(
{DEVICE_COMPILER: (NVCC, "12.1"), CXX_STANDARD: (CXX_STANDARD, "20")}
),
Combination({HOST_COMPILER: (ICPX, "*"), DEVICE_COMPILER: (ICPX, "*")}),
]

for cs in combinations_to_search:
Expand Down

0 comments on commit 44d1109

Please sign in to comment.