From 4467954e79d5a9b700974f6f430d0f981abdba54 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Tue, 9 Nov 2021 17:16:46 +0100 Subject: [PATCH] switch to C++17 * Require C++17 in CMake * Remove nvcc version below 11 from GitHub CI * Remove CUDA SDK installer below 9.2 from install scripts * Update supported CUDA versions in README.md * Eliminate obsolete C++ version checks * Remove support for nvcc + clang-5 * Update documentation * Fix warnings * Merge GitLab CI CUDA job description files * Add a GitLab CI test with clang-12 as CUDA compiler and cuda11.0 * Add GitHub CI test with clang-12 + nvcc 11.4 * support passing CMAKE_CUDA_FLAGS variable through CI --- .github/workflows/ci.yml | 93 ++----------------- .gitlab-ci.yml | 3 +- .zenodo.json | 2 +- CMakeLists.txt | 2 +- README.md | 40 ++++---- cmake/alpakaCommon.cmake | 18 +--- docs/source/basic/library.rst | 2 +- docs/source/conf.py | 2 +- include/alpaka/core/UniformCudaHip.hpp | 6 +- .../kernel/TaskKernelGpuUniformCudaHipRt.hpp | 3 +- include/alpaka/pltf/PltfUniformCudaHipRt.hpp | 3 +- script/before_install.sh | 13 +-- script/docker_ci.sh | 4 + .../{job_cuda9.2.yml => job_cuda.yml} | 56 ++++++++--- script/gitlabci/job_cuda11.4.yml | 10 -- script/install_boost.sh | 2 +- script/install_cuda.sh | 14 +-- script/run_generate.sh | 2 +- test/catch_main/CMakeLists.txt | 4 +- 19 files changed, 98 insertions(+), 181 deletions(-) rename script/gitlabci/{job_cuda9.2.yml => job_cuda.yml} (61%) delete mode 100644 script/gitlabci/job_cuda11.4.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d21350e04e50..a178df999156 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,8 +16,8 @@ on: [push, pull_request] # NOTE: Testing the full matrix is not practical. # 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} -# [clang++] ALPAKA_CI_CLANG_VER : {5.0, 6.0, 7, 8, 9, 10, 11} +# [g++] ALPAKA_CI_GCC_VER : {7, 8, 9, 10, 11} +# [clang++] ALPAKA_CI_CLANG_VER : {5.0, 6.0, 7, 8, 9, 10, 11, 12} # [cl.exe] ALPAKA_CI_CL_VER : {2019} # ALPAKA_CI_STDLIB : {libstdc++, [CXX==clang++]:libc++} # CMAKE_BUILD_TYPE : {Debug, Release} @@ -41,7 +41,7 @@ on: [push, pull_request] # ALPAKA_ACC_ANY_BT_OMP5_ENABLE : {ON, OFF} # [ON] OMP_NUM_THREADS : {1, 2, 3, 4} # ALPAKA_ACC_GPU_CUDA_ENABLE : {ON, OFF} -# [ON] ALPAKA_CI_CUDA_VERSION : {9.2, 10.0, 10.1, 10.2, 11.0, 11.1, 11.2, 11.3, 11.4} +# [ON] ALPAKA_CI_CUDA_VERSION : {11.0, 11.1, 11.2, 11.3, 11.4} # [ON] CMAKE_CUDA_COMPILER : {nvcc, [CXX==clang++]:clang++} # ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE : {ON, OFF} # ALPAKA_ACC_GPU_HIP_ENABLE : {ON, OFF} @@ -130,24 +130,6 @@ 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.72.0, ALPAKA_CI_CMAKE_VER: 3.20.0, OMP_NUM_THREADS: 4, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF, ALPAKA_CXX_STANDARD: 17} - ## CUDA 10.1 - # nvcc + MSVC - - name: windows_nvcc-10.1_cl-2019_debug_cuda-only - 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.70.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", CMAKE_CUDA_ARCHITECTURES: "30;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} - - name: windows_nvcc-10.1_cl-2019_release - 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.65.1, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_ANY_BT_OMP5_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF} - - ## CUDA 10.2 - # nvcc + MSVC - - name: windows_nvcc-10.2_cl-2019_debug_cuda-only - 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.73.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", CMAKE_CUDA_ARCHITECTURES: "30;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} - - name: windows_nvcc-10.2_cl-2019_release - 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.68.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_ANY_BT_OMP5_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF} - ## CUDA 11.0 and CUDA 11.1 with nvcc + MSVC will not be tested because of C++17 workaround for the bug # https://github.com/alpaka-group/alpaka/issues/1331 is not working for both CUDA versions. @@ -234,17 +216,6 @@ jobs: env: {CXX: icpc, CC: icc, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.75.0, ALPAKA_CI_CMAKE_VER: 3.19.2, OMP_NUM_THREADS: 2, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF} ## CUDA 10.0 - # nvcc + g++ - - name: linux_nvcc-10.0_gcc-7_release - os: ubuntu-latest - env: {CXX: g++, CC: gcc, ALPAKA_CI_GCC_VER: 7, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, 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: "10.0", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "30;35", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - # nvcc + clang++ - - name: linux_nvcc-10.0_clang-5_release_separable_compilation - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.0", CMAKE_CUDA_COMPILER: nvcc, CUDA_SEPARABLE_COMPILATION: ON, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.0_clang-6_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "6.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.0", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "75", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} # clang++ - name: linux_clang-9_cuda-10.0_debug os: ubuntu-latest @@ -257,26 +228,6 @@ jobs: env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 11, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.74.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: "10.0", CMAKE_CUDA_COMPILER: clang++, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF} ## CUDA 10.1 - # nvcc + g++ - - name: linux_nvcc-10.1_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.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: "10.1", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.1_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.67.0, ALPAKA_CI_CMAKE_VER: 3.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "30;35", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - # nvcc + clang++ - - name: linux_nvcc-10.1_clang-5_release_cuda_only - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.69.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", 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-10.1_clang-6_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "6.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.71.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "60", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.1_clang-7_release - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 7, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.73.0, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "75", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.1_clang-8_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 8, 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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.1", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "70", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} # clang++ - name: linux_clang-9_cuda-10.1_debug os: ubuntu-latest @@ -289,26 +240,6 @@ jobs: env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 11, 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: "10.1", CMAKE_CUDA_COMPILER: clang++, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF} ## CUDA 10.2 - # nvcc + g++ - - name: linux_nvcc-10.2_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.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: "10.2", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.2_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.19.7, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - # nvcc + clang++ - - name: linux_nvcc-10.2_clang-5_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "75", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.2_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.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", 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-10.2_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.18.6, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "75", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - - name: linux_nvcc-10.2_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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "10.2", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "70", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} # clang++ - name: linux_clang-11_cuda-10.2_debug os: ubuntu-latest @@ -326,9 +257,6 @@ jobs: 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.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.0", CMAKE_CUDA_COMPILER: nvcc, ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} # nvcc + clang++ - - name: linux_nvcc-11.0_clang-5_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.0", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "80", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - name: linux_nvcc-11.0_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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.0", 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} @@ -358,9 +286,6 @@ jobs: # 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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.1", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} # nvcc + clang++ - - name: linux_nvcc-11.1_clang-5_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.1", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "80", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - name: linux_nvcc-11.1_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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.1", 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} @@ -393,9 +318,6 @@ jobs: # 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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.2", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} # nvcc + clang++ - - name: linux_nvcc-11.2_clang-5_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.2", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "80", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - name: linux_nvcc-11.2_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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.2", 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} @@ -428,9 +350,6 @@ jobs: # 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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.3", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF } # nvcc + clang++ - - name: linux_nvcc-11.3_clang-5_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.3", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "80", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - name: linux_nvcc-11.3_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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.3", 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} @@ -463,9 +382,6 @@ jobs: # 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:18.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 } # nvcc + clang++ - - name: linux_nvcc-11.4_clang-5_debug - os: ubuntu-latest - env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "5.0", ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.65.1, ALPAKA_CI_CMAKE_VER: 3.20.0, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.4", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "80", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} - name: linux_nvcc-11.4_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:18.04", ALPAKA_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.4", 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} @@ -484,6 +400,9 @@ jobs: - name: linux_nvcc-11.4_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.4", CMAKE_CUDA_COMPILER: nvcc, CMAKE_CUDA_ARCHITECTURES: "86", ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF} + - name: linux_nvcc-11.4_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.4", 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 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f88cfd142d01..e1161b236890 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,6 +28,5 @@ variables: include: - local: '/script/gitlabci/job_base.yml' - - local: '/script/gitlabci/job_cuda9.2.yml' - - local: '/script/gitlabci/job_cuda11.4.yml' + - local: '/script/gitlabci/job_cuda.yml' - local: '/script/gitlabci/job_hip4.2.yml' diff --git a/.zenodo.json b/.zenodo.json index b9475ee65fe0..01877b53a187 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,6 +1,6 @@ { "title": "alpaka: Abstraction Library for Parallel Kernel Acceleration", - "description": "The alpaka library is a header-only C++14 abstraction library for accelerator development. Its aim is to provide performance portability across accelerators through the abstraction (not hiding!) of the underlying levels of parallelism.", + "description": "The alpaka library is a header-only C++17 abstraction library for accelerator development. Its aim is to provide performance portability across accelerators through the abstraction (not hiding!) of the underlying levels of parallelism.", "creators": [ { "affiliation": "Helmholtz-Zentrum Dresden-Rossendorf, TU Dresden, LogMeIn Inc.", diff --git a/CMakeLists.txt b/CMakeLists.txt index cceb933548d6..b891fdaa311a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ string(REGEX MATCH "([0-9]+)" ALPAKA_VERSION_PATCH ${ALPAKA_VERSION_PATCH_HPP}) set(PACKAGE_VERSION "${ALPAKA_VERSION_MAJOR}.${ALPAKA_VERSION_MINOR}.${ALPAKA_VERSION_PATCH}") project(alpaka VERSION ${ALPAKA_VERSION_MAJOR}.${ALPAKA_VERSION_MINOR}.${ALPAKA_VERSION_PATCH} - DESCRIPTION "The alpaka library is a header-only C++14 abstraction library for accelerator development." + DESCRIPTION "The alpaka library is a header-only C++17 abstraction library for accelerator development." HOMEPAGE_URL "https://github.com/alpaka-group/alpaka" LANGUAGES CXX) diff --git a/README.md b/README.md index 1e15b03b4211..9da08111e55c 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,13 @@ [![Continuous Integration](https://github.com/alpaka-group/alpaka/workflows/Continuous%20Integration/badge.svg)](https://github.com/alpaka-group/alpaka/actions?query=workflow%3A%22Continuous+Integration%22) [![Documentation Status](https://readthedocs.org/projects/alpaka/badge/?version=latest)](https://alpaka.readthedocs.io) [![Doxygen](https://img.shields.io/badge/API-Doxygen-blue.svg)](https://alpaka-group.github.io/alpaka) -[![Language](https://img.shields.io/badge/language-C%2B%2B14-orange.svg)](https://isocpp.org/) +[![Language](https://img.shields.io/badge/language-C%2B%2B17-orange.svg)](https://isocpp.org/) [![Platforms](https://img.shields.io/badge/platform-linux%20%7C%20windows%20%7C%20mac-lightgrey.svg)](https://github.com/alpaka-group/alpaka) [![License](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](https://www.mozilla.org/en-US/MPL/2.0/) ![alpaka](docs/logo/alpaka_401x135.png) -The **alpaka** library is a header-only C++14 abstraction library for accelerator development. +The **alpaka** library is a header-only C++17 abstraction library for accelerator development. Its aim is to provide performance portability across accelerators through the abstraction (not hiding!) of the underlying levels of parallelism. @@ -68,20 +68,20 @@ Accelerator Back-ends Supported Compilers ------------------- -This library uses C++14 (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/6/7/8
(Linux)|clang 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:|: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 9.2-11.4) |:white_check_mark:
(CUDA 10.1-11.4) |:white_check_mark:
(CUDA 11.0-11.4)|:x:|:x:|:white_check_mark:
(CUDA 10.1-11.4)|:white_check_mark:
(CUDA 11.0-11.4)|:white_check_mark:
(CUDA 11.1-11.4)|:white_check_mark:
(CUDA 11.4)| - |:x:|:white_check_mark:
(CUDA 10.1,10.2,11.2,11.3, 11.4)| -|CUDA (clang) | - | - | - | - | - | - | :white_check_mark:
(CUDA 9.2-10.1) | :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:| - | - | +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)| +|---|---|---|---|---|---|---|---|---|---|---|---| +|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:| - | - | 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. @@ -92,10 +92,10 @@ Dependencies The **alpaka** library itself just requires header-only libraries. However some of the accelerator back-end implementations require different boost libraries to be built. -When an accelerator back-end using *Boost.Fiber* is enabled, `boost-fiber` and all of its dependencies are required to be built in C++14 mode `./b2 cxxflags="-std=c++14"`. -When *Boost.Fiber* is enabled and alpaka is built in C++17 mode with clang and libstc++, Boost >= 1.67.0 is required. +When an accelerator back-end using *Boost.Fiber* is enabled, `boost-fiber` and all of its dependencies are required to be built in C++17 mode `./b2 cxxflags="-std=c++17"`. +When *Boost.Fiber* is enabled and alpaka is built with clang and libstc++, Boost >= 1.67.0 is required. -When an accelerator back-end using *CUDA* is enabled, version *9.0* of the *CUDA SDK* is the minimum requirement. +When an accelerator back-end using *CUDA* is enabled, version *11.0* (with nvcc as CUDA compiler) or version *9.2* (with clang as CUDA compiler) of the *CUDA SDK* is the minimum requirement. *NOTE*: When using nvcc as *CUDA* compiler, the *CUDA accelerator back-end* can not be enabled together with the *Boost.Fiber accelerator back-end* due to bugs in the nvcc compiler. *NOTE*: When using clang as a native *CUDA* compiler, the *CUDA accelerator back-end* can not be enabled together with the *Boost.Fiber accelerator back-end* or any *OpenMP accelerator back-end* because this combination is currently unsupported. *NOTE*: Separable compilation is disabled by default and can be enabled via the CMake flag `CMAKE_CUDA_SEPARABLE_COMPILATION`. @@ -109,7 +109,7 @@ Usage ----- The library is header only so nothing has to be built. -CMake 3.15+ is required to provide the correct defines and include paths. +CMake 3.18+ is required to provide the correct defines and include paths. Just call `ALPAKA_ADD_EXECUTABLE` instead of `CUDA_ADD_EXECUTABLE` or `ADD_EXECUTABLE` and the difficulties of the CUDA nvcc compiler in handling `.cu` and `.cpp` files are automatically taken care of. Source files do not need any special file ending. Examples of how to utilize alpaka within CMake can be found in the `example` folder. diff --git a/cmake/alpakaCommon.cmake b/cmake/alpakaCommon.cmake index c56b0077da98..04a7a6b80443 100644 --- a/cmake/alpakaCommon.cmake +++ b/cmake/alpakaCommon.cmake @@ -125,14 +125,14 @@ endif() set(ALPAKA_DEBUG "0" CACHE STRING "Debug level") set_property(CACHE ALPAKA_DEBUG PROPERTY STRINGS "0;1;2") -set(ALPAKA_CXX_STANDARD_DEFAULT "14") +set(ALPAKA_CXX_STANDARD_DEFAULT "17") # Check whether ALPAKA_CXX_STANDARD has already been defined as a non-cached variable. if(DEFINED ALPAKA_CXX_STANDARD) set(ALPAKA_CXX_STANDARD_DEFAULT ${ALPAKA_CXX_STANDARD}) endif() set(ALPAKA_CXX_STANDARD ${ALPAKA_CXX_STANDARD_DEFAULT} CACHE STRING "C++ standard version") -set_property(CACHE ALPAKA_CXX_STANDARD PROPERTY STRINGS "14;17;20") +set_property(CACHE ALPAKA_CXX_STANDARD PROPERTY STRINGS "17;20") if(NOT TARGET alpaka) add_library(alpaka INTERFACE) @@ -415,11 +415,10 @@ if(ALPAKA_ACC_GPU_CUDA_ENABLE) endif() endif() - # NOTE: Since CUDA 10.2 this option is also alternatively called '--extended-lambda' if(ALPAKA_CUDA_EXPT_EXTENDED_LAMBDA STREQUAL ON) - alpaka_set_compiler_options(DEVICE target alpaka $<$:--expt-extended-lambda>) + alpaka_set_compiler_options(DEVICE target alpaka $<$:--extended-lambda>) endif() - # This is mandatory because with c++14 many standard library functions we rely on are constexpr (std::min, std::multiplies, ...) + # This is mandatory because with c++17 many standard library functions we rely on are constexpr (std::min, std::multiplies, ...) alpaka_set_compiler_options(DEVICE target alpaka $<$:--expt-relaxed-constexpr>) if((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")) @@ -455,15 +454,6 @@ if(ALPAKA_ACC_GPU_CUDA_ENABLE) # avoids warnings on host-device signatured, default constructors/destructors alpaka_set_compiler_options(DEVICE target alpaka $<$:-Xcudafe=--diag_suppress=esa_on_defaulted_function_ignored>) - # avoids warnings on host-device signature of 'std::__shared_count<>' - if(CUDAToolkit_VERSION VERSION_EQUAL 10.0) - alpaka_set_compiler_options(DEVICE target alpaka $<$:-Xcudafe=--diag_suppress=2905>) - elseif(CUDAToolkit_VERSION VERSION_EQUAL 10.1) - alpaka_set_compiler_options(DEVICE target alpaka $<$:-Xcudafe=--diag_suppress=2912>) - elseif(CUDAToolkit_VERSION VERSION_EQUAL 10.2) - alpaka_set_compiler_options(DEVICE target alpaka $<$:-Xcudafe=--diag_suppress=2976>) - endif() - if(ALPAKA_CUDA_KEEP_FILES STREQUAL ON) alpaka_set_compiler_options(DEVICE target alpaka $<$:--keep>) endif() diff --git a/docs/source/basic/library.rst b/docs/source/basic/library.rst index 3be4627965ca..f2658434d661 100644 --- a/docs/source/basic/library.rst +++ b/docs/source/basic/library.rst @@ -4,7 +4,7 @@ Library Interface As described in the chapter about the :doc:`Abstraction `, the general design of the library is very similar to *CUDA* and *OpenCL* but extends both by some points, while not requiring any language extensions. General interface design as well as interface implementation decisions differentiating *alpaka* from those libraries are described in the Rationale section. It uses C++ because it is one of the most performant languages available on nearly all systems. -Furthermore, C++14 allows to describe the concepts in a very abstract way that is not possible with many other languages. +Furthermore, C++17 allows to describe the concepts in a very abstract way that is not possible with many other languages. The *alpaka* library extensively makes use of advanced functional C++ template meta-programming techniques. The Implementation Details section discusses the C++ library and the way it provides extensibility and optimizability. diff --git a/docs/source/conf.py b/docs/source/conf.py index 6ea238c29d83..bcfc5ab1fb18 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -126,7 +126,7 @@ (master_doc, 'alpaka', u'alpaka Documentation', author, 'alpaka', 'Abstraction Library for Parallel Kernel Acceleration', """ - The alpaka library is a header-only C++14 abstraction library for + The alpaka library is a header-only C++17 abstraction library for accelerator development. Its aim is to provide performance portability across accelerators through the abstraction (not hiding!) of the underlying levels of parallelism. diff --git a/include/alpaka/core/UniformCudaHip.hpp b/include/alpaka/core/UniformCudaHip.hpp index 811093fa0aaa..8589fea2a992 100644 --- a/include/alpaka/core/UniformCudaHip.hpp +++ b/include/alpaka/core/UniformCudaHip.hpp @@ -12,7 +12,7 @@ #if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED) # include - +# include # if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) && !BOOST_LANG_CUDA # error If ALPAKA_ACC_GPU_CUDA_ENABLED is set, the compiler has to support CUDA! @@ -63,7 +63,7 @@ namespace alpaka # endif ALPAKA_DEBUG_BREAK; // reset the last error to allow user side error handling - ALPAKA_API_PREFIX(GetLastError)(); + ignore_unused(ALPAKA_API_PREFIX(GetLastError)()); throw std::runtime_error(sError); } } @@ -90,7 +90,7 @@ namespace alpaka else { // reset the last error to avoid propagation to the next CUDA/HIP API call - ALPAKA_API_PREFIX(GetLastError)(); + ignore_unused(ALPAKA_API_PREFIX(GetLastError)()); } } } diff --git a/include/alpaka/kernel/TaskKernelGpuUniformCudaHipRt.hpp b/include/alpaka/kernel/TaskKernelGpuUniformCudaHipRt.hpp index 6af0b62bfe5b..416bceacf429 100644 --- a/include/alpaka/kernel/TaskKernelGpuUniformCudaHipRt.hpp +++ b/include/alpaka/kernel/TaskKernelGpuUniformCudaHipRt.hpp @@ -39,6 +39,7 @@ // Implementation details. # include # include +# include # include # include # include @@ -423,7 +424,7 @@ namespace alpaka // Wait for the kernel execution to finish but do not check error return of this call. // Do not use the alpaka::wait method because it checks the error itself but we want to give a custom // error message. - ALPAKA_API_PREFIX(StreamSynchronize)(queue.m_spQueueImpl->m_UniformCudaHipQueue); + ignore_unused(ALPAKA_API_PREFIX(StreamSynchronize)(queue.m_spQueueImpl->m_UniformCudaHipQueue)); # if ALPAKA_DEBUG >= ALPAKA_DEBUG_MINIMAL std::string const msg( "'execution of kernel: '" + std::string(typeid(TKernelFnObj).name()) + "' failed with"); diff --git a/include/alpaka/pltf/PltfUniformCudaHipRt.hpp b/include/alpaka/pltf/PltfUniformCudaHipRt.hpp index 07774e51d633..1dc156918b81 100644 --- a/include/alpaka/pltf/PltfUniformCudaHipRt.hpp +++ b/include/alpaka/pltf/PltfUniformCudaHipRt.hpp @@ -12,6 +12,7 @@ #if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED) # include +# include # if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) && !BOOST_LANG_CUDA # error If ALPAKA_ACC_GPU_CUDA_ENABLED is set, the compiler has to support CUDA! @@ -148,7 +149,7 @@ namespace alpaka // Return the previous error from cudaStreamCreate. ALPAKA_UNIFORM_CUDA_HIP_RT_CHECK(rc); // Reset the Error state. - ALPAKA_API_PREFIX(GetLastError)(); + ignore_unused(ALPAKA_API_PREFIX(GetLastError)()); return false; } } diff --git a/script/before_install.sh b/script/before_install.sh index 02f6d7df0d78..92c8ca2942ae 100755 --- a/script/before_install.sh +++ b/script/before_install.sh @@ -119,16 +119,13 @@ then then if [ ! -z "${ALPAKA_CXX_STANDARD+x}" ] then - if (( "${ALPAKA_CXX_STANDARD}" >= 17 )) + if [ "${ALPAKA_CI_INSTALL_FIBERS}" == "ON" ] then - if [ "${ALPAKA_CI_INSTALL_FIBERS}" == "ON" ] + if (( ( ( "${ALPAKA_CI_BOOST_BRANCH_MAJOR}" == 1 ) && ( "${ALPAKA_CI_BOOST_BRANCH_MINOR}" < 67 ) ) || ( "${ALPAKA_CI_BOOST_BRANCH_MAJOR}" < 1 ) )) then - if (( ( ( "${ALPAKA_CI_BOOST_BRANCH_MAJOR}" == 1 ) && ( "${ALPAKA_CI_BOOST_BRANCH_MINOR}" < 67 ) ) || ( "${ALPAKA_CI_BOOST_BRANCH_MAJOR}" < 1 ) )) - then - # https://github.com/boostorg/coroutine2/issues/26 - echo "libstdc++ in c++17 mode is not compatible with boost.fibers in boost-1.66 and below." - exit 1 - fi + # https://github.com/boostorg/coroutine2/issues/26 + echo "libstdc++ in c++17 mode is not compatible with boost.fibers in boost-1.66 and below." + exit 1 fi fi fi diff --git a/script/docker_ci.sh b/script/docker_ci.sh index 0a6b2fa9624d..96c41c2240d7 100755 --- a/script/docker_ci.sh +++ b/script/docker_ci.sh @@ -119,6 +119,10 @@ then then ALPAKA_DOCKER_ENV_LIST+=("--env" "CMAKE_CUDA_ARCHITECTURES=${CMAKE_CUDA_ARCHITECTURES}") fi + if [ ! -z "${CMAKE_CUDA_FLAGS+x}" ] + then + ALPAKA_DOCKER_ENV_LIST+=("--env" "CMAKE_CUDA_FLAGS=${CMAKE_CUDA_FLAGS}") + fi fi ALPAKA_DOCKER_ENV_LIST+=("--env" "ALPAKA_CI_INSTALL_HIP=${ALPAKA_CI_INSTALL_HIP}") if [ "${ALPAKA_CI_INSTALL_HIP}" == "ON" ] diff --git a/script/gitlabci/job_cuda9.2.yml b/script/gitlabci/job_cuda.yml similarity index 61% rename from script/gitlabci/job_cuda9.2.yml rename to script/gitlabci/job_cuda.yml index 6909d902e908..f603e5179f22 100644 --- a/script/gitlabci/job_cuda9.2.yml +++ b/script/gitlabci/job_cuda.yml @@ -1,21 +1,21 @@ # nvcc + g++ -linux_nvcc-9.2_gcc-7_release: +linux_nvcc-11.0_gcc-7_release: extends: .base_cuda_gcc variables: - ALPAKA_CI_UBUNTU_VER: "18.04" - ALPAKA_CI_CUDA_VERSION: "9.2" + ALPAKA_CI_UBUNTU_VER: "20.04" + ALPAKA_CI_CUDA_VERSION: "11.0" ALPAKA_CI_GCC_VER: 7 ALPAKA_CI_STDLIB: libstdc++ CMAKE_BUILD_TYPE: Release ALPAKA_BOOST_VERSION: 1.68.0 ALPAKA_CI_CMAKE_VER: 3.20.0 - CMAKE_CUDA_ARCHITECTURES: "30;35" + CMAKE_CUDA_ARCHITECTURES: "50;60" -linux_nvcc-9.2_gcc-7_debug_separable_compilation: +linux_nvcc-11.0_gcc-7_debug_separable_compilation: extends: .base_cuda_gcc variables: - ALPAKA_CI_UBUNTU_VER: "18.04" - ALPAKA_CI_CUDA_VERSION: "9.2" + ALPAKA_CI_UBUNTU_VER: "20.04" + ALPAKA_CI_CUDA_VERSION: "11.0" ALPAKA_CI_GCC_VER: 7 ALPAKA_CI_STDLIB: libstdc++ CMAKE_BUILD_TYPE: Debug @@ -23,11 +23,11 @@ linux_nvcc-9.2_gcc-7_debug_separable_compilation: ALPAKA_CI_CMAKE_VER: 3.18.6 CUDA_SEPARABLE_COMPILATION: "ON" -linux_nvcc-9.2_gcc-7_release_extended_lambda_off: +linux_nvcc-11.0_gcc-7_release_extended_lambda_off: extends: .base_cuda_gcc variables: - ALPAKA_CI_UBUNTU_VER: "18.04" - ALPAKA_CI_CUDA_VERSION: "9.2" + ALPAKA_CI_UBUNTU_VER: "20.04" + ALPAKA_CI_CUDA_VERSION: "11.0" ALPAKA_CI_GCC_VER: 7 ALPAKA_CI_STDLIB: libstdc++ CMAKE_BUILD_TYPE: Release @@ -37,14 +37,14 @@ linux_nvcc-9.2_gcc-7_release_extended_lambda_off: ALPAKA_CUDA_EXPT_EXTENDED_LAMBDA: "OFF" # nvcc + clang++ -linux_nvcc-9.2_clang-5-nvcc_release: +linux_nvcc-11.0_clang-7-nvcc_release: extends: .base_cuda_clang variables: - ALPAKA_CI_UBUNTU_VER: "18.04" - ALPAKA_CI_CUDA_VERSION: "9.2" + ALPAKA_CI_UBUNTU_VER: "20.04" + ALPAKA_CI_CUDA_VERSION: "11.0" CMAKE_CUDA_COMPILER: nvcc - CMAKE_CUDA_ARCHITECTURES: "30;70" - ALPAKA_CI_CLANG_VER: "5.0" + CMAKE_CUDA_ARCHITECTURES: "50;70" + ALPAKA_CI_CLANG_VER: 7 ALPAKA_CI_STDLIB: libstdc++ CMAKE_BUILD_TYPE: Release ALPAKA_BOOST_VERSION: 1.65.1 @@ -89,3 +89,29 @@ linux_clang-11_cuda-9.2_release: ALPAKA_ACC_GPU_CUDA_ENABLE: "ON" CMAKE_CUDA_COMPILER: clang++ ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF" + +linux_clang-12_cuda-11.0_release: + extends: .base_cuda_clang + variables: + ALPAKA_CI_UBUNTU_VER: "20.04" + ALPAKA_CI_CUDA_VERSION: "11.0" + CMAKE_CUDA_ARCHITECTURES: "50;72" + ALPAKA_CI_CLANG_VER: 12 + ALPAKA_CI_STDLIB: libstdc++ + CMAKE_BUILD_TYPE: Release + ALPAKA_BOOST_VERSION: 1.74.0 + ALPAKA_CI_CMAKE_VER: 3.19.7 + ALPAKA_ACC_GPU_CUDA_ENABLE: "ON" + CMAKE_CUDA_COMPILER: clang++ + ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE: "OFF" + +# nvhpc +linux_nvhpc-21.9_cuda-11.4_oacc: + extends: .base_oacc_nvhpc + variables: + ALPAKA_CI_UBUNTU_VER: "20.04" + ALPAKA_CI_CUDA_VERSION: "11.4" + ALPAKA_CI_NVHPC_VER: "21.9" + CMAKE_BUILD_TYPE: "" + ALPAKA_BOOST_VERSION: 1.74.0 + ALPAKA_CI_CMAKE_VER: 3.19.7 diff --git a/script/gitlabci/job_cuda11.4.yml b/script/gitlabci/job_cuda11.4.yml deleted file mode 100644 index 4304cd167bed..000000000000 --- a/script/gitlabci/job_cuda11.4.yml +++ /dev/null @@ -1,10 +0,0 @@ -# nvhpc -linux_nvhpc-21.9_cuda-11.4_oacc: - extends: .base_oacc_nvhpc - variables: - ALPAKA_CI_UBUNTU_VER: "20.04" - ALPAKA_CI_CUDA_VERSION: "11.4" - ALPAKA_CI_NVHPC_VER: "21.9" - CMAKE_BUILD_TYPE: "" - ALPAKA_BOOST_VERSION: 1.74.0 - ALPAKA_CI_CMAKE_VER: 3.19.7 diff --git a/script/install_boost.sh b/script/install_boost.sh index a1de647d40fd..7fe2b5ecfce4 100755 --- a/script/install_boost.sh +++ b/script/install_boost.sh @@ -114,7 +114,7 @@ then then if [ "$ALPAKA_CI_OS_NAME" = "Linux" ] then - ALPAKA_BOOST_B2_CXXFLAGS+=" -std=c++14" + ALPAKA_BOOST_B2_CXXFLAGS+=" -std=c++17" fi ALPAKA_BOOST_B2+=" --with-fiber --with-context --with-thread --with-atomic --with-system --with-chrono --with-date_time" fi diff --git a/script/install_cuda.sh b/script/install_cuda.sh index 8210c8cedf1d..739a5ada4667 100755 --- a/script/install_cuda.sh +++ b/script/install_cuda.sh @@ -37,17 +37,7 @@ then fi # Set the correct CUDA downloads - if [ "${ALPAKA_CI_CUDA_VERSION}" == "9.0" ] - then - ALPAKA_CUDA_PKG_DEB_NAME=cuda-repo-ubuntu1604-9-0-local - ALPAKA_CUDA_PKG_FILE_NAME="${ALPAKA_CUDA_PKG_DEB_NAME}"_9.0.176-1_amd64-deb - ALPAKA_CUDA_PKG_FILE_PATH=https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/${ALPAKA_CUDA_PKG_FILE_NAME} - elif [ "${ALPAKA_CI_CUDA_VERSION}" == "9.1" ] - then - ALPAKA_CUDA_PKG_DEB_NAME=cuda-repo-ubuntu1604-9-1-local - ALPAKA_CUDA_PKG_FILE_NAME="${ALPAKA_CUDA_PKG_DEB_NAME}"_9.1.85-1_amd64 - ALPAKA_CUDA_PKG_FILE_PATH=https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/${ALPAKA_CUDA_PKG_FILE_NAME} - elif [ "${ALPAKA_CI_CUDA_VERSION}" == "9.2" ] + if [ "${ALPAKA_CI_CUDA_VERSION}" == "9.2" ] then ALPAKA_CUDA_PKG_DEB_NAME=cuda-repo-ubuntu1604-9-2-local ALPAKA_CUDA_PKG_FILE_NAME="${ALPAKA_CUDA_PKG_DEB_NAME}"_9.2.88-1_amd64 @@ -93,7 +83,7 @@ then ALPAKA_CUDA_PKG_FILE_NAME="${ALPAKA_CUDA_PKG_DEB_NAME}"_11.4.1-470.57.02-1_amd64.deb ALPAKA_CUDA_PKG_FILE_PATH=https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/${ALPAKA_CUDA_PKG_FILE_NAME} else - echo CUDA versions other than 9.0, 9.1, 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 and 11.4 are not currently supported on linux! fi if [ -z "$(ls -A ${ALPAKA_CI_CUDA_DIR})" ] then diff --git a/script/run_generate.sh b/script/run_generate.sh index 1baaefb54923..fa8ef634dcee 100755 --- a/script/run_generate.sh +++ b/script/run_generate.sh @@ -90,7 +90,7 @@ cd build/ "$(env2cmake ALPAKA_ACC_ANY_BT_OMP5_ENABLE)" "$(env2cmake ALPAKA_ACC_ANY_BT_OACC_ENABLE)" \ "$(env2cmake ALPAKA_OFFLOAD_MAX_BLOCK_SIZE)" "$(env2cmake ALPAKA_DEBUG_OFFLOAD_ASSUME_HOST)" \ "$(env2cmake TBB_ROOT)" \ - "$(env2cmake ALPAKA_ACC_GPU_CUDA_ENABLE)" "$(env2cmake ALPAKA_ACC_GPU_CUDA_ONLY_MODE)" "$(env2cmake CMAKE_CUDA_ARCHITECTURES)" "$(env2cmake CMAKE_CUDA_COMPILER)" \ + "$(env2cmake ALPAKA_ACC_GPU_CUDA_ENABLE)" "$(env2cmake ALPAKA_ACC_GPU_CUDA_ONLY_MODE)" "$(env2cmake CMAKE_CUDA_ARCHITECTURES)" "$(env2cmake CMAKE_CUDA_COMPILER)" "$(env2cmake CMAKE_CUDA_FLAGS)" \ "$(env2cmake ALPAKA_CUDA_FAST_MATH)" "$(env2cmake ALPAKA_CUDA_FTZ)" "$(env2cmake ALPAKA_CUDA_SHOW_REGISTER)" "$(env2cmake ALPAKA_CUDA_KEEP_FILES)" "$(env2cmake ALPAKA_CUDA_EXPT_EXTENDED_LAMBDA)" "$(env2cmake CMAKE_CUDA_SEPARABLE_COMPILATION)" \ "$(env2cmake GPU_TARGETS)" "$(env2cmake ALPAKA_ACC_GPU_HIP_ENABLE)" "$(env2cmake ALPAKA_ACC_GPU_HIP_ONLY_MODE)" \ "$(env2cmake ALPAKA_DEBUG)" "$(env2cmake ALPAKA_CI)" "$(env2cmake ALPAKA_CI_ANALYSIS)" "$(env2cmake ALPAKA_CXX_STANDARD)" \ diff --git a/test/catch_main/CMakeLists.txt b/test/catch_main/CMakeLists.txt index 3650c7b3bf07..63f9b08892e3 100644 --- a/test/catch_main/CMakeLists.txt +++ b/test/catch_main/CMakeLists.txt @@ -19,10 +19,10 @@ else() endif() add_library(CatchMain src/CatchMain.cpp) -# target_compile_features(CatchMain PUBLIC cxx_std_14) # min C++14 +# target_compile_features(CatchMain PUBLIC cxx_std_17) # min C++17 set_target_properties(CatchMain PROPERTIES FOLDER "test" - CXX_STANDARD 14 # exactly C++14 + CXX_STANDARD 17 CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON POSITION_INDEPENDENT_CODE ON