From 4b50b39267d24d3a64e34b8acb1a150e699eb377 Mon Sep 17 00:00:00 2001 From: Jan Stephan Date: Tue, 12 Jul 2022 14:02:40 +0200 Subject: [PATCH] Add clang-14 to CI --- .github/workflows/ci.yml | 5 ++++- README.md | 22 +++++++++++----------- script/gitlabci/job_cuda10.0.yml | 14 ++++++++++++++ script/gitlabci/job_cuda10.1.yml | 13 +++++++++++++ script/gitlabci/job_cuda10.2.yml | 15 +++++++++++++++ script/gitlabci/job_cuda11.0.yml | 15 +++++++++++++++ script/gitlabci/job_cuda11.1.yml | 14 ++++++++++++++ script/gitlabci/job_cuda11.2.yml | 15 +++++++++++++++ script/gitlabci/job_cuda11.3.yml | 2 ++ script/gitlabci/job_cuda11.4.yml | 17 ++++++++++++++++- script/gitlabci/job_cuda11.5.yml | 30 +++++++++++++++++++++++++++++- 11 files changed, 148 insertions(+), 14 deletions(-) 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 +