diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 08e63df2b779..935f0263cf60 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,7 +21,7 @@ concurrency:
# Therefore we aim to have each value been set in at lest one job.
# CXX : {g++, clang++}
# [g++] ALPAKA_CI_GCC_VER : {7, 8, 9, 10, 11, 12}
-# [clang++] ALPAKA_CI_CLANG_VER : {6.0, 7, 8, 9, 10, 11, 12}
+# [clang++] ALPAKA_CI_CLANG_VER : {6.0, 7, 8, 9, 10, 11, 12, 13, 14}
# [cl.exe] ALPAKA_CI_CL_VER : {2019, 2022}
# ALPAKA_CI_STDLIB : {libstdc++, [CXX==clang++]:libc++}
# CMAKE_BUILD_TYPE : {Debug, Release}
@@ -255,6 +255,9 @@ jobs:
- name: linux_clang-13_debug
os: ubuntu-22.04
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 13, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 3, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", CMAKE_CXX_EXTENSIONS: OFF}
+ - name: linux_clang-14_debug_omp5
+ os: ubuntu-latest
+ env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 14, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.77.0, ALPAKA_CI_CMAKE_VER: 3.19.8, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", CMAKE_CXX_FLAGS: "-fopenmp=libomp -fopenmp-targets=x86_64-pc-linux-gnu -Wno-openmp-mapping", alpaka_ACC_ANY_BT_OMP5_ENABLE: ON, alpaka_OFFLOAD_MAX_BLOCK_SIZE: 1, CMAKE_EXE_LINKER_FLAGS: "-fopenmp", alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF}
# icpx
- name: linux_icpx_release
diff --git a/README.md b/README.md
index 536a2e401ec2..3b116895d004 100644
--- a/README.md
+++ b/README.md
@@ -69,17 +69,17 @@ Supported Compilers
This library uses C++17 (or newer when available).
-| Accelerator Back-end | gcc 7.5
(Linux) | gcc 8.5
(Linux) | gcc 9.4
(Linux) | gcc 10.3
(Linux) | gcc 11.1
(Linux) | gcc 12.1
(Linux) | clang 6-7
(Linux) | clang 8-9
(Linux) | clang 10
(Linux) | clang 11
(Linux) | clang 12
(Linux) | clang 13
(Linux) | clang 14
(Linux) | icpx (latest) | Xcode 13.2.1/13.4.1
(macOS) | Visual Studio 2019
(Windows) | Visual Studio 2022
(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: | :x: | :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: | :x: | :white_check_mark: | :x: | :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: | :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: |
-| OpenMP 5.0 (CPU) | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: | - | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: |
-| 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: | :x: | :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: | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: |
-| CUDA (nvcc) | :white_check_mark:
(CUDA 11.0-11.6) | :white_check_mark:
(CUDA 11.0-11.6) | :white_check_mark:
(CUDA 11.0-11.6) | :white_check_mark:
(CUDA 11.6) | :x: | :x: | :x: | :white_check_mark:
(CUDA 11.0-11.2; 11.6) | :white_check_mark:
(CUDA 11.1, 11.2, 11.6) | :white_check_mark:
(CUDA 11.6) | :white_check_mark:
(CUDA 11.6) | :white_check_mark:
(CUDA 11.6) | :x: | :x: | :x: | :white_check_mark:
(CUDA 11.2-11.6) | :white_check_mark:
(CUDA 11.6) |
-| CUDA (clang) | - | - | - | - | - | - | - | - | :x: | :white_check_mark:
(CUDA 10.0-10.1) | :white_check_mark:
(CUDA 10.0-10.2) | - | :x: | :x: | - | - | - |
-| [HIP](https://alpaka.readthedocs.io/en/latest/install/HIP.html) (clang) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :white_check_mark: (HIP 4.2) | :white_check_mark: (HIP 4.3 - 4.5) | :white_check_mark: (HIP 5.0 - 5.2) | :x: | - | - | - |
+| Accelerator Back-end | gcc 7.5
(Linux) | gcc 8.5
(Linux) | gcc 9.4
(Linux) | gcc 10.3
(Linux) | gcc 11.1
(Linux) | gcc 12.1
(Linux) | clang 6-7
(Linux) | clang 8-9
(Linux) | clang 10
(Linux) | clang 11
(Linux) | clang 12
(Linux) | clang 13
(Linux) | clang 14
(Linux) | icpx (latest) | Xcode 13.2.1/13.4.1
(macOS) | Visual Studio 2019
(Windows) | Visual Studio 2022
(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: | :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: | :x: | :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: | :x: | :white_check_mark: | :white_check_mark: |
+| OpenMP 5.0 (CPU) | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
+| 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: | :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: | :white_check_mark: | :x: | :x: |
+| CUDA (nvcc) | :white_check_mark:
(CUDA 11.0-11.6) | :white_check_mark:
(CUDA 11.0-11.6) | :white_check_mark:
(CUDA 11.0-11.6) | :white_check_mark:
(CUDA 11.6) | :x: | :x: | :x: | :white_check_mark:
(CUDA 11.0-11.2; 11.6) | :white_check_mark:
(CUDA 11.1, 11.2, 11.6) | :white_check_mark:
(CUDA 11.6) | :white_check_mark:
(CUDA 11.6) | :white_check_mark:
(CUDA 11.6) | :x: | :x: | :x: | :white_check_mark:
(CUDA 11.2-11.6) | :white_check_mark:
(CUDA 11.6) |
+| CUDA (clang) | - | - | - | - | - | - | - | - | :x: | :white_check_mark:
(CUDA 10.0-10.1) | :white_check_mark:
(CUDA 10.0-10.2) | :x: | :white_check_mark: (CUDA 10.0 - 11.2, 11.4, 11.5) | :x: | - | - | - |
+| [HIP](https://alpaka.readthedocs.io/en/latest/install/HIP.html) (clang) | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :white_check_mark: (HIP 4.2) | :white_check_mark: (HIP 4.3 - 4.5) | :white_check_mark: (HIP 5.0 - 5.3) | :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.
diff --git a/script/gitlabci/job_cuda10.0.yml b/script/gitlabci/job_cuda10.0.yml
index 02e7b507a8e5..d973ae3f6e7a 100644
--- a/script/gitlabci/job_cuda10.0.yml
+++ b/script/gitlabci/job_cuda10.0.yml
@@ -37,3 +37,17 @@ linux_clang-11_cuda-10.0_release:
CMAKE_CUDA_COMPILER: clang++
alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
stage: stageRun0
+
+linux_clang-14_cuda-10.0_debug:
+ extends: .base_cuda_clang
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "10.0"
+ ALPAKA_CI_CLANG_VER: 14
+ CMAKE_BUILD_TYPE: Debug
+ ALPAKA_BOOST_VERSION: 1.74.0
+ ALPAKA_CI_CMAKE_VER: 3.19.8
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageRun1
\ No newline at end of file
diff --git a/script/gitlabci/job_cuda10.1.yml b/script/gitlabci/job_cuda10.1.yml
index 4a661c2c57d7..c475c61252fe 100644
--- a/script/gitlabci/job_cuda10.1.yml
+++ b/script/gitlabci/job_cuda10.1.yml
@@ -39,3 +39,16 @@ linux_clang-11_cuda-10.1_debug:
CMAKE_CUDA_COMPILER: clang++
alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
stage: stageRun1
+
+linux_clang-14_cuda-10.1_release:
+ extends: .base_cuda_clang
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "10.1"
+ ALPAKA_CI_CLANG_VER: 14
+ ALPAKA_BOOST_VERSION: 1.77.0
+ ALPAKA_CI_CMAKE_VER: 3.20.6
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageRun0
diff --git a/script/gitlabci/job_cuda10.2.yml b/script/gitlabci/job_cuda10.2.yml
index 896ce698b9b0..7c9ee5175697 100644
--- a/script/gitlabci/job_cuda10.2.yml
+++ b/script/gitlabci/job_cuda10.2.yml
@@ -11,3 +11,18 @@ linux_clang-11_cuda-10.2_release:
CMAKE_CUDA_COMPILER: clang++
alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
stage: stageRun0
+
+linux_clang-14_cuda-10.2_debug:
+ extends: .base_cuda_clang
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "10.2"
+ CMAKE_CUDA_ARCHITECTURES: "61;72"
+ ALPAKA_CI_CLANG_VER: 14
+ CMAKE_BUILD_TYPE: Debug
+ ALPAKA_BOOST_VERSION: 1.77.0
+ ALPAKA_CI_CMAKE_VER: 3.20.6
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageRun0
\ No newline at end of file
diff --git a/script/gitlabci/job_cuda11.0.yml b/script/gitlabci/job_cuda11.0.yml
index 83fc86af27f7..8ac3eaddc912 100644
--- a/script/gitlabci/job_cuda11.0.yml
+++ b/script/gitlabci/job_cuda11.0.yml
@@ -82,6 +82,7 @@ linux_nvcc-11.0_clang-9_debug:
CMAKE_CUDA_COMPILER: nvcc
stage: stageCompile1
+# clang++ as CUDA compiler
linux_clang-12_cuda-11.0_release:
extends: .base_cuda_clang
variables:
@@ -94,3 +95,17 @@ linux_clang-12_cuda-11.0_release:
CMAKE_CUDA_COMPILER: clang++
alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
stage: stageRun0
+
+linux_clang-14_cuda-11.0_debug:
+ extends: .base_cuda_clang
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "11.0"
+ ALPAKA_CI_CLANG_VER: 12
+ CMAKE_BUILD_TYPE: Debug
+ ALPAKA_BOOST_VERSION: 1.74.0
+ ALPAKA_CI_CMAKE_VER: 3.19.8
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageRun1
\ No newline at end of file
diff --git a/script/gitlabci/job_cuda11.1.yml b/script/gitlabci/job_cuda11.1.yml
index dce10cad9b9f..ef51028969cc 100644
--- a/script/gitlabci/job_cuda11.1.yml
+++ b/script/gitlabci/job_cuda11.1.yml
@@ -67,3 +67,17 @@ linux_nvcc-11.1_clang-10_release:
ALPAKA_CI_CMAKE_VER: 3.19.8
CMAKE_CUDA_COMPILER: nvcc
stage: stageRun1
+
+# clang++ as CUDA compiler
+linux_clang-14_cuda-11.1_release:
+ extends: .base_cuda_clang_compile_only
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "11.1"
+ ALPAKA_CI_CLANG_VER: 14
+ ALPAKA_BOOST_VERSION: 1.79.0
+ ALPAKA_CI_CMAKE_VER: 3.23.2
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageCompile0
\ No newline at end of file
diff --git a/script/gitlabci/job_cuda11.2.yml b/script/gitlabci/job_cuda11.2.yml
index c3b18cb1adb8..f21c0c201aa1 100644
--- a/script/gitlabci/job_cuda11.2.yml
+++ b/script/gitlabci/job_cuda11.2.yml
@@ -67,3 +67,18 @@ linux_nvcc-11.2_clang-10_release:
ALPAKA_CI_CMAKE_VER: 3.19.8
CMAKE_CUDA_COMPILER: nvcc
stage: stageRun1
+
+# clang++ as CUDA compiler
+linux_clang-14_cuda-11.2_debug:
+ extends: .base_cuda_clang_compile_only
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "11.2"
+ ALPAKA_CI_CLANG_VER: 14
+ CMAKE_BUILD_TYPE: Debug
+ ALPAKA_BOOST_VERSION: 1.79.0
+ ALPAKA_CI_CMAKE_VER: 3.23.2
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageCompile1
\ No newline at end of file
diff --git a/script/gitlabci/job_cuda11.3.yml b/script/gitlabci/job_cuda11.3.yml
index d6e4cbac6b4e..e6a4ff346396 100644
--- a/script/gitlabci/job_cuda11.3.yml
+++ b/script/gitlabci/job_cuda11.3.yml
@@ -34,3 +34,5 @@ linux_nvcc-11.3_gcc-9_release:
# gcc 10 not included because of an GCC 10.3 bug: https://github.com/alpaka-group/alpaka/issues/1297
# clang not included because of an CUDA 11.3 bug: https://github.com/alpaka-group/alpaka/issues/1625
+
+# clang++ as CUDA compiler not included because of an unknown bug: https://github.com/alpaka-group/alpaka/issues/1857
diff --git a/script/gitlabci/job_cuda11.4.yml b/script/gitlabci/job_cuda11.4.yml
index dc38e399ec63..34660de00c56 100644
--- a/script/gitlabci/job_cuda11.4.yml
+++ b/script/gitlabci/job_cuda11.4.yml
@@ -33,4 +33,19 @@ linux_nvcc-11.4_gcc-9_release:
# gcc 10 not included because of an GCC 10.3 bug: https://github.com/alpaka-group/alpaka/issues/1297
-# clang not included because of an CUDA 11.4 bug: https://github.com/alpaka-group/alpaka/issues/1625
\ No newline at end of file
+# clang not included because of an CUDA 11.4 bug: https://github.com/alpaka-group/alpaka/issues/1625
+
+# clang++ as CUDA compiler
+linux_clang-14_cuda-11.4_release:
+ extends: .base_cuda_clang
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "11.4"
+ ALPAKA_CI_CLANG_VER: 14
+ CMAKE_BUILD_TYPE: Release
+ ALPAKA_BOOST_VERSION: 1.79.0
+ ALPAKA_CI_CMAKE_VER: 3.23.2
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageRun1
\ No newline at end of file
diff --git a/script/gitlabci/job_cuda11.5.yml b/script/gitlabci/job_cuda11.5.yml
index c4a5596f2ae2..000e49f4d97e 100644
--- a/script/gitlabci/job_cuda11.5.yml
+++ b/script/gitlabci/job_cuda11.5.yml
@@ -43,4 +43,32 @@ linux_nvcc-11.5_gcc-10_debug:
ALPAKA_CI_CMAKE_VER: 3.19.8
stage: stageRun1
-# clang not included because of an CUDA 11.5 bug: https://github.com/alpaka-group/alpaka/issues/1625
+# nvcc + clang not included because of an CUDA 11.5 bug: https://github.com/alpaka-group/alpaka/issues/1625
+
+# clang++ as CUDA compiler
+linux_clang-14_cuda-11.5_release:
+ extends: .base_cuda_clang
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "11.5"
+ ALPAKA_CI_CLANG_VER: 14
+ ALPAKA_BOOST_VERSION: 1.79.0
+ ALPAKA_CI_CMAKE_VER: 3.23.2
+ alpaka_ACC_GPU_CUDA_ENABLE: "ON"
+ CMAKE_CUDA_COMPILER: clang++
+ alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF"
+ stage: stageRun1
+
+# nvhpc
+linux_nvhpc-21.11_cuda-11.5_oacc:
+ extends: .base_oacc_nvhpc
+ variables:
+ ALPAKA_CI_UBUNTU_VER: "20.04"
+ ALPAKA_CI_CUDA_VERSION: "11.5"
+ ALPAKA_CI_NVHPC_VER: "21.11"
+ CMAKE_BUILD_TYPE: ""
+ ALPAKA_BOOST_VERSION: 1.74.0
+ ALPAKA_CI_CMAKE_VER: 3.19.8
+ alpaka_CHECK_HEADERS: "ON"
+ stage: stageRun0
+