From 809c4809c57166d44d0a6789bba3f51a6f344142 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Tue, 30 Nov 2021 08:29:37 +0100 Subject: [PATCH] add nvcc 11.5 to CI Fixes #1475 --- .github/workflows/ci.yml | 46 ++++++++++++++++++++++++++++++++++++++++ README.md | 26 +++++++++++------------ script/install_cuda.sh | 7 +++++- 3 files changed, 65 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 223da98aa922..abc0acae1ef9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -162,6 +162,15 @@ jobs: os: windows-2019 env: {CXX: cl.exe, CC: cl.exe, ALPAKA_CI_CL_VER: 2019, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.68.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.4", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_BT_OMP4_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, ALPAKA_CXX_STANDARD: 17} + ## CUDA 11.5 + # nvcc + MSVC + - name: windows_nvcc-11.5_cl-2019_release_cuda-only_c++17 + os: windows-2019 + env: {CXX: cl.exe, CC: cl.exe, ALPAKA_CI_CL_VER: 2019, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_ARCHITECTURES: "35;75", ALPAKA_ACC_GPU_CUDA_ONLY_MODE: ON, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF, ALPAKA_ACC_ANY_BT_OMP5_ENABLE: OFF, ALPAKA_CXX_STANDARD: 17} + - name: windows_nvcc-11.5_cl-2019_debug_c++17 + os: windows-2019 + env: {CXX: cl.exe, CC: cl.exe, ALPAKA_CI_CL_VER: 2019, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.68.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_BT_OMP4_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, ALPAKA_CXX_STANDARD: 17} + ### Ubuntu ## native # g++ @@ -406,6 +415,43 @@ jobs: os: ubuntu-latest env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 12, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.72.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.4", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + ## CUDA 11.5 + # nvcc + g++ + - name: linux_nvcc-11.5_gcc-7_debug + os: ubuntu-latest + env: { CXX: g++, CC: gcc, ALPAKA_CI_GCC_VER: 7, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.67.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "35;80", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF } + - name: linux_nvcc-11.5_gcc-8_release + os: ubuntu-latest + env: { CXX: g++, CC: gcc, ALPAKA_CI_GCC_VER: 8, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.69.0, ALPAKA_CI_CMAKE_VER: 3.18.6, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF } + - name: linux_nvcc-11.5_gcc-9_release + os: ubuntu-latest + env: { CXX: g++, CC: gcc, ALPAKA_CI_GCC_VER: 9, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.69.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF } + - name: linux_nvcc-11.5_gcc-10_debug + os: ubuntu-latest + env: { CXX: g++, CC: gcc, ALPAKA_CI_GCC_VER: 10, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.73.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF } + # nvcc + clang++ + - name: linux_nvcc-11.5_clang-6_release_cuda_only + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "6.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.69.0, ALPAKA_CI_CMAKE_VER: 3.18.6, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_GPU_CUDA_ONLY_MODE: ON, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF, ALPAKA_ACC_GPU_HIP_ENABLE: OFF} + - name: linux_nvcc-11.5_clang-7_debug + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 7, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.72.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "75", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + - name: linux_nvcc-11.5_clang-8_release + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 8, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + - name: linux_nvcc-11.5_clang-9_debug + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 9, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.73.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "70", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + - name: linux_nvcc-11.5_clang-10_release + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 10, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.72.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + - name: linux_nvcc-11.5_clang-11_release + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 11, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.72.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + - name: linux_nvcc-11.5_clang-12_release + os: ubuntu-latest + env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 12, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.72.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.5", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + ## NVHPC - name: linux_nvhpc-21.7_release_oacc_multicore # # gcc is used to compile the dependencies, NVHPC will be used to compile alpaka diff --git a/README.md b/README.md index 9da08111e55c..e2c196465d4e 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,8 @@ Accelerator Back-ends |||GPU|parallel (undefined)|parallel (lock-step within warps)| | std::thread | std::thread |Host CPU (multi core)|sequential|parallel (preemptive multitasking)| | Boost.Fiber | boost::fibers::fiber |Host CPU (single core)|sequential|parallel (cooperative multitasking)| -|TBB|TBB 2.2+|Host CPU (multi core)|parallel (preemptive multitasking)|sequential (only 1 thread per block)| -|CUDA|CUDA 9.0+|NVIDIA GPUs|parallel (undefined)|parallel (lock-step within warps)| +|TBB|oneTBB 2021.4.0+|Host CPU (multi core)|parallel (preemptive multitasking)|sequential (only 1 thread per block)| +|CUDA|CUDA 9.2+|NVIDIA GPUs|parallel (undefined)|parallel (lock-step within warps)| |HIP(clang)|[HIP 4.0+](https://github.com/ROCm-Developer-Tools/HIP)|AMD GPUs |parallel (undefined)|parallel (lock-step within warps)| @@ -70,18 +70,18 @@ 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)|clang 5-9
(Linux)|clang 10
(Linux)|clang 11
(Linux)|clang 12
(Linux)|Apple LLVM 11.3.1/12.4.0/12.5.1/13.0.0
(macOS)|MSVC 2019
(Windows)| +|Accelerator Back-end|gcc 7.5
(Linux)|gcc 8.5
(Linux)|gcc 9.4
(Linux)|gcc 10.3
(Linux)|gcc 11.1
(Linux)|clang 5
(Linux)|clang 6-9
(Linux)|clang 10
(Linux)|clang 11
(Linux)|clang 12
(Linux)|Apple LLVM 11.3.1/12.4.0/12.5.1/13.0.0
(macOS)|MSVC 2019
(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:| -|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:|:x:|: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:|:x:|:white_check_mark:| -|OpenMP 5.0 (CPU)|:x:|:x:|:x:|:x:|:x:|:x:|: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:| -| Boost.Fiber |: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:| -|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:|:x:| -|CUDA (nvcc)|:white_check_mark:
(CUDA 11.0-11.4) |:white_check_mark:
(CUDA 11.0-11.4) |:white_check_mark:
(CUDA 11.0-11.4)|:x:|:x:|:white_check_mark:
(CUDA 11.0-11.4)|:white_check_mark:
(CUDA 11.1-11.4)|:white_check_mark:
(CUDA 11.4)|:white_check_mark:
(CUDA 11.4)|:x:|:white_check_mark:
(CUDA 11.2-11.4)| -|CUDA (clang) | - | - | - | - | - | - | :x: | :white_check_mark:
(CUDA 9.2-10.1) | :white_check_mark:
(CUDA 10.0-10.2) | - | - | -|[HIP-4.0.1](https://alpaka.readthedocs.io/en/latest/install/HIP.html) (clang)|:x:|:x:|:x:|:x:|:x:|:x:|:x:|:x:|:white_check_mark:| - | - | +|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:| +|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:|:x:|: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:|:x:|:white_check_mark:| +|OpenMP 5.0 (CPU)|:x:|:x:|:x:|:x:|:x:|:x:|:x:|: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:| +| Boost.Fiber |: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:| +|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:|:x:| +|CUDA (nvcc)|:white_check_mark:
(CUDA 11.0-11.5) |:white_check_mark:
(CUDA 11.0-11.5) |:white_check_mark:
(CUDA 11.0-11.5)|:white_check_mark:
(CUDA 11.5)|:x:|:x:|:white_check_mark:
(CUDA 11.0-11.5)|:white_check_mark:
(CUDA 11.1-11.5)|:white_check_mark:
(CUDA 11.4-11.5)|:white_check_mark:
(CUDA 11.4-11.5)|:x:|:white_check_mark:
(CUDA 11.2-11.5)| +|CUDA (clang) | - | - | - | - | - | - | - | :x: | :white_check_mark:
(CUDA 9.2-10.1) | :white_check_mark:
(CUDA 10.0-10.2) | - | - | +|[HIP-4.0.1](https://alpaka.readthedocs.io/en/latest/install/HIP.html) (clang)|:x:|:x:|:x:|:x:|:x:|:x:|:x:|:x:|:x:|:white_check_mark:| - | - | 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/install_cuda.sh b/script/install_cuda.sh index 41d834ec327f..084444f78ed0 100755 --- a/script/install_cuda.sh +++ b/script/install_cuda.sh @@ -82,8 +82,13 @@ then ALPAKA_CUDA_PKG_DEB_NAME=cuda-repo-ubuntu2004-11-4-local ALPAKA_CUDA_PKG_FILE_NAME="${ALPAKA_CUDA_PKG_DEB_NAME}"_11.4.3-470.82.01-1_amd64.deb ALPAKA_CUDA_PKG_FILE_PATH=https://developer.download.nvidia.com/compute/cuda/11.4.3/local_installers/${ALPAKA_CUDA_PKG_FILE_NAME} + elif [ "${ALPAKA_CI_CUDA_VERSION}" == "11.5" ] + then + ALPAKA_CUDA_PKG_DEB_NAME=cuda-repo-ubuntu2004-11-5-local + ALPAKA_CUDA_PKG_FILE_NAME="${ALPAKA_CUDA_PKG_DEB_NAME}"_11.5.1-495.29.05-1_amd64.deb + ALPAKA_CUDA_PKG_FILE_PATH=https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/${ALPAKA_CUDA_PKG_FILE_NAME} else - echo CUDA versions other than 9.2, 10.0, 10.1, 10.2, 11.0, 11.1, 11.2, 11.3 and 11.4 are not currently supported on linux! + echo CUDA versions other than 9.2, 10.0, 10.1, 10.2, 11.0, 11.1, 11.2, 11.3, 11.4 and 11.5 are not currently supported on linux! fi if [ -z "$(ls -A ${ALPAKA_CI_CUDA_DIR})" ] then