From 5aa5a3c22543b8ced520cedb5da0920e053e0375 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 12 Mar 2025 17:43:16 +0000 Subject: [PATCH 01/16] Update rapids-cmake to 25.04. --- cmake/NVBenchRapidsCMake.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/NVBenchRapidsCMake.cmake b/cmake/NVBenchRapidsCMake.cmake index b110ccc..150e6b9 100644 --- a/cmake/NVBenchRapidsCMake.cmake +++ b/cmake/NVBenchRapidsCMake.cmake @@ -2,7 +2,7 @@ macro(nvbench_load_rapids_cmake) if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/NVBENCH_RAPIDS.cmake") file(DOWNLOAD - https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.12/RAPIDS.cmake + https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-25.04/RAPIDS.cmake "${CMAKE_CURRENT_BINARY_DIR}/NVBENCH_RAPIDS.cmake" ) endif() From e6705e3114685a29982cac261d13f5852fb855e9 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 12 Mar 2025 17:46:05 +0000 Subject: [PATCH 02/16] Update fmtlib/fmt to 11.1.4. Switched away from the rapids-cmake provided version and manually CPM'd it. rapids-cmake will stop providing fmtlib later this year, and the version currently supported is rather old. Included the same logic that rapids-cmake currently uses to hopefully provide a smooth transition for edge cases (external fmt, etc). Added `FMT_SYSTEM_HEADERS=ON` to mark fmt headers as system includes, suppressing any internal warnings. --- cmake/NVBenchDependencies.cmake | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/cmake/NVBenchDependencies.cmake b/cmake/NVBenchDependencies.cmake index 8ba07fe..e5226ae 100644 --- a/cmake/NVBenchDependencies.cmake +++ b/cmake/NVBenchDependencies.cmake @@ -1,17 +1,26 @@ ################################################################################ # fmtlib/fmt -include("${rapids-cmake-dir}/cpm/fmt.cmake") - +set(export_set_details) +set(install_fmt OFF) if(NOT BUILD_SHARED_LIBS AND NVBench_ENABLE_INSTALL_RULES) -set(export_set_details BUILD_EXPORT_SET nvbench-targets - INSTALL_EXPORT_SET nvbench-targets) + set(export_set_details BUILD_EXPORT_SET nvbench-targets + INSTALL_EXPORT_SET nvbench-targets) + set(install_fmt ON) endif() -rapids_cpm_fmt(${export_set_details} +rapids_cpm_find(fmt 11.1.4 ${export_set_details} + GLOBAL_TARGETS fmt::fmt fmt::fmt-header-only CPM_ARGS + GIT_REPOSITORY "https://github.com/fmtlib/fmt.git" + GIT_TAG "11.1.4" OPTIONS # Force static to keep fmt internal. "BUILD_SHARED_LIBS OFF" + # Suppress warnings from fmt headers by marking them as system. + "FMT_SYSTEM_HEADERS ON" + # Disable install rules since we're linking statically. + "FMT_INSTALL ${install_fmt}" + "CMAKE_POSITION_INDEPENDENT_CODE ON" ) if(NOT fmt_ADDED) From 0e8089a246165dcc687374b1d6494b97a344041c Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 12 Mar 2025 14:17:03 -0400 Subject: [PATCH 03/16] Disable fmtlib's use of llvm _BitInt, as it is not supported when using nvcc. --- cmake/NVBenchConfigTarget.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index bef95fc..ea917eb 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -63,6 +63,9 @@ else() endif() endif() +# fmtlib uses llvm's _BitInt internally, which is not available when compiling through nvcc: +target_compile_definitions(nvbench.build_interface INTERFACE "FMT_USE_BITINT=0") + # Experimental filesystem library if (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) target_link_libraries(nvbench.build_interface INTERFACE stdc++fs) From 4d7b3e81009f2562b2ed4ad47ae70ae9f4198913 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 12 Mar 2025 15:00:10 -0400 Subject: [PATCH 04/16] Add missing header to test. --- testing/stdrel_criterion.cu | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/testing/stdrel_criterion.cu b/testing/stdrel_criterion.cu index f0affea..b8bfc4e 100644 --- a/testing/stdrel_criterion.cu +++ b/testing/stdrel_criterion.cu @@ -22,9 +22,10 @@ #include "test_asserts.cuh" -#include -#include +#include #include +#include +#include void test_const() { From a1acb3e8b2c864d66c3fe70e8f6848da0cb9e681 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 12 Mar 2025 14:32:45 -0400 Subject: [PATCH 05/16] Update CI matrix and devcontainers. --- .devcontainer/cuda11.1-gcc7/devcontainer.json | 2 +- .devcontainer/cuda11.1-gcc8/devcontainer.json | 2 +- .devcontainer/cuda11.1-gcc9/devcontainer.json | 2 +- .../cuda11.1-llvm9/devcontainer.json | 46 ------------------- .../cuda11.8-gcc11/devcontainer.json | 2 +- .../cuda12.0-gcc10/devcontainer.json | 2 +- .../cuda12.0-gcc11/devcontainer.json | 2 +- .../cuda12.0-gcc12/devcontainer.json | 2 +- .devcontainer/cuda12.0-gcc7/devcontainer.json | 2 +- .devcontainer/cuda12.0-gcc8/devcontainer.json | 2 +- .devcontainer/cuda12.0-gcc9/devcontainer.json | 2 +- .../cuda12.0-llvm10/devcontainer.json | 46 ------------------- .../cuda12.0-llvm11/devcontainer.json | 46 ------------------- .../cuda12.0-llvm12/devcontainer.json | 46 ------------------- .../cuda12.0-llvm14/devcontainer.json | 2 +- .../cuda12.0-llvm9/devcontainer.json | 46 ------------------- .../cuda12.6-llvm10/devcontainer.json | 46 ------------------- .../cuda12.6-llvm11/devcontainer.json | 46 ------------------- .../cuda12.6-llvm12/devcontainer.json | 46 ------------------- .../cuda12.6-llvm13/devcontainer.json | 46 ------------------- .../cuda12.6-llvm9/devcontainer.json | 46 ------------------- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 12 ++--- .../cuda12.8-gcc14/devcontainer.json | 46 +++++++++++++++++++ .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../devcontainer.json | 10 ++-- .../cuda12.8-llvm19/devcontainer.json | 46 +++++++++++++++++++ .devcontainer/devcontainer.json | 12 ++--- ci/matrix.yaml | 37 +++++---------- 37 files changed, 181 insertions(+), 564 deletions(-) delete mode 100644 .devcontainer/cuda11.1-llvm9/devcontainer.json delete mode 100644 .devcontainer/cuda12.0-llvm10/devcontainer.json delete mode 100644 .devcontainer/cuda12.0-llvm11/devcontainer.json delete mode 100644 .devcontainer/cuda12.0-llvm12/devcontainer.json delete mode 100644 .devcontainer/cuda12.0-llvm9/devcontainer.json delete mode 100644 .devcontainer/cuda12.6-llvm10/devcontainer.json delete mode 100644 .devcontainer/cuda12.6-llvm11/devcontainer.json delete mode 100644 .devcontainer/cuda12.6-llvm12/devcontainer.json delete mode 100644 .devcontainer/cuda12.6-llvm13/devcontainer.json delete mode 100644 .devcontainer/cuda12.6-llvm9/devcontainer.json rename .devcontainer/{cuda12.6-gcc10 => cuda12.8-gcc10}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-gcc11 => cuda12.8-gcc11}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-gcc12 => cuda12.8-gcc12}/devcontainer.json (87%) rename .devcontainer/{cuda12.0-llvm13 => cuda12.8-gcc13}/devcontainer.json (84%) create mode 100644 .devcontainer/cuda12.8-gcc14/devcontainer.json rename .devcontainer/{cuda12.6-gcc7 => cuda12.8-gcc7}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-gcc8 => cuda12.8-gcc8}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-gcc9 => cuda12.8-gcc9}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-llvm14 => cuda12.8-llvm14}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-llvm15 => cuda12.8-llvm15}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-llvm16 => cuda12.8-llvm16}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-llvm17 => cuda12.8-llvm17}/devcontainer.json (87%) rename .devcontainer/{cuda12.6-llvm18 => cuda12.8-llvm18}/devcontainer.json (87%) create mode 100644 .devcontainer/cuda12.8-llvm19/devcontainer.json diff --git a/.devcontainer/cuda11.1-gcc7/devcontainer.json b/.devcontainer/cuda11.1-gcc7/devcontainer.json index 9cffeda..63f1729 100644 --- a/.devcontainer/cuda11.1-gcc7/devcontainer.json +++ b/.devcontainer/cuda11.1-gcc7/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc7-cuda11.1-ubuntu18.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc7-cuda11.1-ubuntu18.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda11.1-gcc8/devcontainer.json b/.devcontainer/cuda11.1-gcc8/devcontainer.json index de33649..0794c1a 100644 --- a/.devcontainer/cuda11.1-gcc8/devcontainer.json +++ b/.devcontainer/cuda11.1-gcc8/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc8-cuda11.1-ubuntu18.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc8-cuda11.1-ubuntu18.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda11.1-gcc9/devcontainer.json b/.devcontainer/cuda11.1-gcc9/devcontainer.json index 559bb50..90b4683 100644 --- a/.devcontainer/cuda11.1-gcc9/devcontainer.json +++ b/.devcontainer/cuda11.1-gcc9/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc9-cuda11.1-ubuntu18.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc9-cuda11.1-ubuntu18.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda11.1-llvm9/devcontainer.json b/.devcontainer/cuda11.1-llvm9/devcontainer.json deleted file mode 100644 index 602753c..0000000 --- a/.devcontainer/cuda11.1-llvm9/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm9-cuda11.1-ubuntu18.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda11.1-llvm9", - "CCCL_CUDA_VERSION": "11.1", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "9", - "CCCL_BUILD_INFIX": "cuda11.1-llvm9" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda11.1-llvm9" -} diff --git a/.devcontainer/cuda11.8-gcc11/devcontainer.json b/.devcontainer/cuda11.8-gcc11/devcontainer.json index 5e48024..53fdae0 100644 --- a/.devcontainer/cuda11.8-gcc11/devcontainer.json +++ b/.devcontainer/cuda11.8-gcc11/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc11-cuda11.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc11-cuda11.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc10/devcontainer.json b/.devcontainer/cuda12.0-gcc10/devcontainer.json index 68d5f8c..b5edb03 100644 --- a/.devcontainer/cuda12.0-gcc10/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc10/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc10-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc10-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc11/devcontainer.json b/.devcontainer/cuda12.0-gcc11/devcontainer.json index f811a4a..3d1ca68 100644 --- a/.devcontainer/cuda12.0-gcc11/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc11/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc11-cuda12.0-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc11-cuda12.0-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc12/devcontainer.json b/.devcontainer/cuda12.0-gcc12/devcontainer.json index 6f702f4..972ba37 100644 --- a/.devcontainer/cuda12.0-gcc12/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc12/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc12-cuda12.0-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc12-cuda12.0-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc7/devcontainer.json b/.devcontainer/cuda12.0-gcc7/devcontainer.json index ca9ab6c..8458d0e 100644 --- a/.devcontainer/cuda12.0-gcc7/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc7/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc7-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc7-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc8/devcontainer.json b/.devcontainer/cuda12.0-gcc8/devcontainer.json index 387b53d..0faa349 100644 --- a/.devcontainer/cuda12.0-gcc8/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc8/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc8-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc8-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc9/devcontainer.json b/.devcontainer/cuda12.0-gcc9/devcontainer.json index d2e01ba..a4b383b 100644 --- a/.devcontainer/cuda12.0-gcc9/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc9/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc9-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc9-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-llvm10/devcontainer.json b/.devcontainer/cuda12.0-llvm10/devcontainer.json deleted file mode 100644 index c227e9a..0000000 --- a/.devcontainer/cuda12.0-llvm10/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm10-cuda12.0-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.0-llvm10", - "CCCL_CUDA_VERSION": "12.0", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "10", - "CCCL_BUILD_INFIX": "cuda12.0-llvm10" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.0-llvm10" -} diff --git a/.devcontainer/cuda12.0-llvm11/devcontainer.json b/.devcontainer/cuda12.0-llvm11/devcontainer.json deleted file mode 100644 index a61ae4b..0000000 --- a/.devcontainer/cuda12.0-llvm11/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm11-cuda12.0-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.0-llvm11", - "CCCL_CUDA_VERSION": "12.0", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "11", - "CCCL_BUILD_INFIX": "cuda12.0-llvm11" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.0-llvm11" -} diff --git a/.devcontainer/cuda12.0-llvm12/devcontainer.json b/.devcontainer/cuda12.0-llvm12/devcontainer.json deleted file mode 100644 index c63e405..0000000 --- a/.devcontainer/cuda12.0-llvm12/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm12-cuda12.0-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.0-llvm12", - "CCCL_CUDA_VERSION": "12.0", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "12", - "CCCL_BUILD_INFIX": "cuda12.0-llvm12" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.0-llvm12" -} diff --git a/.devcontainer/cuda12.0-llvm14/devcontainer.json b/.devcontainer/cuda12.0-llvm14/devcontainer.json index 0fcae84..7016899 100644 --- a/.devcontainer/cuda12.0-llvm14/devcontainer.json +++ b/.devcontainer/cuda12.0-llvm14/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm14-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-llvm14-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-llvm9/devcontainer.json b/.devcontainer/cuda12.0-llvm9/devcontainer.json deleted file mode 100644 index 6b9530e..0000000 --- a/.devcontainer/cuda12.0-llvm9/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm9-cuda12.0-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.0-llvm9", - "CCCL_CUDA_VERSION": "12.0", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "9", - "CCCL_BUILD_INFIX": "cuda12.0-llvm9" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.0-llvm9" -} diff --git a/.devcontainer/cuda12.6-llvm10/devcontainer.json b/.devcontainer/cuda12.6-llvm10/devcontainer.json deleted file mode 100644 index 01e2d4a..0000000 --- a/.devcontainer/cuda12.6-llvm10/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm10-cuda12.6-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm10", - "CCCL_CUDA_VERSION": "12.6", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "10", - "CCCL_BUILD_INFIX": "cuda12.6-llvm10" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.6-llvm10" -} diff --git a/.devcontainer/cuda12.6-llvm11/devcontainer.json b/.devcontainer/cuda12.6-llvm11/devcontainer.json deleted file mode 100644 index 3ea9167..0000000 --- a/.devcontainer/cuda12.6-llvm11/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm11-cuda12.6-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm11", - "CCCL_CUDA_VERSION": "12.6", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "11", - "CCCL_BUILD_INFIX": "cuda12.6-llvm11" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.6-llvm11" -} diff --git a/.devcontainer/cuda12.6-llvm12/devcontainer.json b/.devcontainer/cuda12.6-llvm12/devcontainer.json deleted file mode 100644 index 6a8fd24..0000000 --- a/.devcontainer/cuda12.6-llvm12/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm12-cuda12.6-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm12", - "CCCL_CUDA_VERSION": "12.6", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "12", - "CCCL_BUILD_INFIX": "cuda12.6-llvm12" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.6-llvm12" -} diff --git a/.devcontainer/cuda12.6-llvm13/devcontainer.json b/.devcontainer/cuda12.6-llvm13/devcontainer.json deleted file mode 100644 index 722b8a1..0000000 --- a/.devcontainer/cuda12.6-llvm13/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm13-cuda12.6-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm13", - "CCCL_CUDA_VERSION": "12.6", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "13", - "CCCL_BUILD_INFIX": "cuda12.6-llvm13" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.6-llvm13" -} diff --git a/.devcontainer/cuda12.6-llvm9/devcontainer.json b/.devcontainer/cuda12.6-llvm9/devcontainer.json deleted file mode 100644 index 9f97f1c..0000000 --- a/.devcontainer/cuda12.6-llvm9/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm9-cuda12.6-ubuntu20.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm9", - "CCCL_CUDA_VERSION": "12.6", - "CCCL_HOST_COMPILER": "llvm", - "CCCL_HOST_COMPILER_VERSION": "9", - "CCCL_BUILD_INFIX": "cuda12.6-llvm9" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda12.6-llvm9" -} diff --git a/.devcontainer/cuda12.6-gcc10/devcontainer.json b/.devcontainer/cuda12.8-gcc10/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-gcc10/devcontainer.json rename to .devcontainer/cuda12.8-gcc10/devcontainer.json index 2da4470..858a86d 100644 --- a/.devcontainer/cuda12.6-gcc10/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc10/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc10-cuda12.6-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc10-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc10", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc10", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "10", - "CCCL_BUILD_INFIX": "cuda12.6-gcc10" + "CCCL_BUILD_INFIX": "cuda12.8-gcc10" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc10" + "name": "cuda12.8-gcc10" } diff --git a/.devcontainer/cuda12.6-gcc11/devcontainer.json b/.devcontainer/cuda12.8-gcc11/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-gcc11/devcontainer.json rename to .devcontainer/cuda12.8-gcc11/devcontainer.json index 2930279..c28b1d9 100644 --- a/.devcontainer/cuda12.6-gcc11/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc11/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc11-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc11-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc11", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc11", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "11", - "CCCL_BUILD_INFIX": "cuda12.6-gcc11" + "CCCL_BUILD_INFIX": "cuda12.8-gcc11" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc11" + "name": "cuda12.8-gcc11" } diff --git a/.devcontainer/cuda12.6-gcc12/devcontainer.json b/.devcontainer/cuda12.8-gcc12/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-gcc12/devcontainer.json rename to .devcontainer/cuda12.8-gcc12/devcontainer.json index c4774db..7d16df5 100644 --- a/.devcontainer/cuda12.6-gcc12/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc12/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc12-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc12-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc12", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc12", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "12", - "CCCL_BUILD_INFIX": "cuda12.6-gcc12" + "CCCL_BUILD_INFIX": "cuda12.8-gcc12" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc12" + "name": "cuda12.8-gcc12" } diff --git a/.devcontainer/cuda12.0-llvm13/devcontainer.json b/.devcontainer/cuda12.8-gcc13/devcontainer.json similarity index 84% rename from .devcontainer/cuda12.0-llvm13/devcontainer.json rename to .devcontainer/cuda12.8-gcc13/devcontainer.json index 5cd6163..77a16f6 100644 --- a/.devcontainer/cuda12.0-llvm13/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc13/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm13-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc13-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.0-llvm13", - "CCCL_CUDA_VERSION": "12.0", - "CCCL_HOST_COMPILER": "llvm", + "DEVCONTAINER_NAME": "cuda12.8-gcc13", + "CCCL_CUDA_VERSION": "12.8", + "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "13", - "CCCL_BUILD_INFIX": "cuda12.0-llvm13" + "CCCL_BUILD_INFIX": "cuda12.8-gcc13" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.0-llvm13" + "name": "cuda12.8-gcc13" } diff --git a/.devcontainer/cuda12.8-gcc14/devcontainer.json b/.devcontainer/cuda12.8-gcc14/devcontainer.json new file mode 100644 index 0000000..ebcc74b --- /dev/null +++ b/.devcontainer/cuda12.8-gcc14/devcontainer.json @@ -0,0 +1,46 @@ +{ + "shutdownAction": "stopContainer", + "image": "rapidsai/devcontainers:25.04-cpp-gcc14-cuda12.8-ubuntu24.04", + "hostRequirements": { + "gpu": "optional" + }, + "initializeCommand": [ + "/bin/bash", + "-c", + "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" + ], + "containerEnv": { + "SCCACHE_REGION": "us-east-2", + "SCCACHE_BUCKET": "rapids-sccache-devs", + "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", + "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", + "DEVCONTAINER_NAME": "cuda12.8-gcc14", + "CCCL_CUDA_VERSION": "12.8", + "CCCL_HOST_COMPILER": "gcc", + "CCCL_HOST_COMPILER_VERSION": "14", + "CCCL_BUILD_INFIX": "cuda12.8-gcc14" + }, + "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" + ], + "customizations": { + "vscode": { + "extensions": [ + "llvm-vs-code-extensions.vscode-clangd", + "xaver.clang-format" + ], + "settings": { + "editor.defaultFormatter": "xaver.clang-format", + "clang-format.executable": "/usr/local/bin/clang-format", + "clangd.arguments": [ + "--compile-commands-dir=${workspaceFolder}" + ] + } + } + }, + "name": "cuda12.8-gcc14" +} diff --git a/.devcontainer/cuda12.6-gcc7/devcontainer.json b/.devcontainer/cuda12.8-gcc7/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-gcc7/devcontainer.json rename to .devcontainer/cuda12.8-gcc7/devcontainer.json index 1e73141..bf5ed5b 100644 --- a/.devcontainer/cuda12.6-gcc7/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc7/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc7-cuda12.6-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc7-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc7", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc7", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "7", - "CCCL_BUILD_INFIX": "cuda12.6-gcc7" + "CCCL_BUILD_INFIX": "cuda12.8-gcc7" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc7" + "name": "cuda12.8-gcc7" } diff --git a/.devcontainer/cuda12.6-gcc8/devcontainer.json b/.devcontainer/cuda12.8-gcc8/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-gcc8/devcontainer.json rename to .devcontainer/cuda12.8-gcc8/devcontainer.json index 92922c2..11ab0f8 100644 --- a/.devcontainer/cuda12.6-gcc8/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc8/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc8-cuda12.6-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc8-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc8", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc8", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "8", - "CCCL_BUILD_INFIX": "cuda12.6-gcc8" + "CCCL_BUILD_INFIX": "cuda12.8-gcc8" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc8" + "name": "cuda12.8-gcc8" } diff --git a/.devcontainer/cuda12.6-gcc9/devcontainer.json b/.devcontainer/cuda12.8-gcc9/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-gcc9/devcontainer.json rename to .devcontainer/cuda12.8-gcc9/devcontainer.json index f3f5223..d84951a 100644 --- a/.devcontainer/cuda12.6-gcc9/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc9/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc9-cuda12.6-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc9-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc9", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc9", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", "CCCL_HOST_COMPILER_VERSION": "9", - "CCCL_BUILD_INFIX": "cuda12.6-gcc9" + "CCCL_BUILD_INFIX": "cuda12.8-gcc9" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc9" + "name": "cuda12.8-gcc9" } diff --git a/.devcontainer/cuda12.6-llvm14/devcontainer.json b/.devcontainer/cuda12.8-llvm14/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-llvm14/devcontainer.json rename to .devcontainer/cuda12.8-llvm14/devcontainer.json index ca7ec34..939d6fa 100644 --- a/.devcontainer/cuda12.6-llvm14/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm14/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm14-cuda12.6-ubuntu20.04", + "image": "rapidsai/devcontainers:25.04-cpp-llvm14-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm14", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-llvm14", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "llvm", "CCCL_HOST_COMPILER_VERSION": "14", - "CCCL_BUILD_INFIX": "cuda12.6-llvm14" + "CCCL_BUILD_INFIX": "cuda12.8-llvm14" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-llvm14" + "name": "cuda12.8-llvm14" } diff --git a/.devcontainer/cuda12.6-llvm15/devcontainer.json b/.devcontainer/cuda12.8-llvm15/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-llvm15/devcontainer.json rename to .devcontainer/cuda12.8-llvm15/devcontainer.json index 889c71a..a355c13 100644 --- a/.devcontainer/cuda12.6-llvm15/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm15/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm15-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-llvm15-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm15", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-llvm15", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "llvm", "CCCL_HOST_COMPILER_VERSION": "15", - "CCCL_BUILD_INFIX": "cuda12.6-llvm15" + "CCCL_BUILD_INFIX": "cuda12.8-llvm15" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-llvm15" + "name": "cuda12.8-llvm15" } diff --git a/.devcontainer/cuda12.6-llvm16/devcontainer.json b/.devcontainer/cuda12.8-llvm16/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-llvm16/devcontainer.json rename to .devcontainer/cuda12.8-llvm16/devcontainer.json index e93737d..676a7bc 100644 --- a/.devcontainer/cuda12.6-llvm16/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm16/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm16-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-llvm16-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm16", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-llvm16", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "llvm", "CCCL_HOST_COMPILER_VERSION": "16", - "CCCL_BUILD_INFIX": "cuda12.6-llvm16" + "CCCL_BUILD_INFIX": "cuda12.8-llvm16" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-llvm16" + "name": "cuda12.8-llvm16" } diff --git a/.devcontainer/cuda12.6-llvm17/devcontainer.json b/.devcontainer/cuda12.8-llvm17/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-llvm17/devcontainer.json rename to .devcontainer/cuda12.8-llvm17/devcontainer.json index 1f5e05d..34ece28 100644 --- a/.devcontainer/cuda12.6-llvm17/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm17/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm17-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-llvm17-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm17", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-llvm17", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "llvm", "CCCL_HOST_COMPILER_VERSION": "17", - "CCCL_BUILD_INFIX": "cuda12.6-llvm17" + "CCCL_BUILD_INFIX": "cuda12.8-llvm17" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-llvm17" + "name": "cuda12.8-llvm17" } diff --git a/.devcontainer/cuda12.6-llvm18/devcontainer.json b/.devcontainer/cuda12.8-llvm18/devcontainer.json similarity index 87% rename from .devcontainer/cuda12.6-llvm18/devcontainer.json rename to .devcontainer/cuda12.8-llvm18/devcontainer.json index 6cbe548..ff74172 100644 --- a/.devcontainer/cuda12.6-llvm18/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm18/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-llvm18-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-llvm18-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-llvm18", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-llvm18", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "llvm", "CCCL_HOST_COMPILER_VERSION": "18", - "CCCL_BUILD_INFIX": "cuda12.6-llvm18" + "CCCL_BUILD_INFIX": "cuda12.8-llvm18" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-llvm18" + "name": "cuda12.8-llvm18" } diff --git a/.devcontainer/cuda12.8-llvm19/devcontainer.json b/.devcontainer/cuda12.8-llvm19/devcontainer.json new file mode 100644 index 0000000..37943af --- /dev/null +++ b/.devcontainer/cuda12.8-llvm19/devcontainer.json @@ -0,0 +1,46 @@ +{ + "shutdownAction": "stopContainer", + "image": "rapidsai/devcontainers:25.04-cpp-llvm19-cuda12.8-ubuntu22.04", + "hostRequirements": { + "gpu": "optional" + }, + "initializeCommand": [ + "/bin/bash", + "-c", + "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" + ], + "containerEnv": { + "SCCACHE_REGION": "us-east-2", + "SCCACHE_BUCKET": "rapids-sccache-devs", + "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", + "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", + "DEVCONTAINER_NAME": "cuda12.8-llvm19", + "CCCL_CUDA_VERSION": "12.8", + "CCCL_HOST_COMPILER": "llvm", + "CCCL_HOST_COMPILER_VERSION": "19", + "CCCL_BUILD_INFIX": "cuda12.8-llvm19" + }, + "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" + ], + "customizations": { + "vscode": { + "extensions": [ + "llvm-vs-code-extensions.vscode-clangd", + "xaver.clang-format" + ], + "settings": { + "editor.defaultFormatter": "xaver.clang-format", + "clang-format.executable": "/usr/local/bin/clang-format", + "clangd.arguments": [ + "--compile-commands-dir=${workspaceFolder}" + ] + } + } + }, + "name": "cuda12.8-llvm19" +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c4774db..ebcc74b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:24.12-cpp-gcc12-cuda12.6-ubuntu22.04", + "image": "rapidsai/devcontainers:25.04-cpp-gcc14-cuda12.8-ubuntu24.04", "hostRequirements": { "gpu": "optional" }, @@ -14,11 +14,11 @@ "SCCACHE_BUCKET": "rapids-sccache-devs", "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda12.6-gcc12", - "CCCL_CUDA_VERSION": "12.6", + "DEVCONTAINER_NAME": "cuda12.8-gcc14", + "CCCL_CUDA_VERSION": "12.8", "CCCL_HOST_COMPILER": "gcc", - "CCCL_HOST_COMPILER_VERSION": "12", - "CCCL_BUILD_INFIX": "cuda12.6-gcc12" + "CCCL_HOST_COMPILER_VERSION": "14", + "CCCL_BUILD_INFIX": "cuda12.8-gcc14" }, "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", @@ -42,5 +42,5 @@ } } }, - "name": "cuda12.6-gcc12" + "name": "cuda12.8-gcc14" } diff --git a/ci/matrix.yaml b/ci/matrix.yaml index 6da2d33..2d1b9d9 100644 --- a/ci/matrix.yaml +++ b/ci/matrix.yaml @@ -2,10 +2,10 @@ cuda_prev_min: &cuda_prev_min '11.1' # Does not support the CUPTI APIs we use (added in 11.3) cuda_prev_max: &cuda_prev_max '11.8' cuda_curr_min: &cuda_curr_min '12.0' -cuda_curr_max: &cuda_curr_max '12.6' +cuda_curr_max: &cuda_curr_max '12.8' # The version of the devcontainer images to use from https://hub.docker.com/r/rapidsai/devcontainers -devcontainer_version: '24.12' +devcontainer_version: '25.04' # gcc compiler configurations gcc7: &gcc7 { name: 'gcc', version: '7', exe: 'g++' } @@ -14,19 +14,16 @@ gcc9: &gcc9 { name: 'gcc', version: '9', exe: 'g++' } gcc10: &gcc10 { name: 'gcc', version: '10', exe: 'g++' } gcc11: &gcc11 { name: 'gcc', version: '11', exe: 'g++' } gcc12: &gcc12 { name: 'gcc', version: '12', exe: 'g++' } -gcc12: &gcc13 { name: 'gcc', version: '13', exe: 'g++' } +gcc13: &gcc13 { name: 'gcc', version: '13', exe: 'g++' } +gcc14: &gcc14 { name: 'gcc', version: '14', exe: 'g++' } # LLVM Compiler configurations -llvm9: &llvm9 { name: 'llvm', version: '9', exe: 'clang++' } -llvm10: &llvm10 { name: 'llvm', version: '10', exe: 'clang++' } -llvm11: &llvm11 { name: 'llvm', version: '11', exe: 'clang++' } -llvm12: &llvm12 { name: 'llvm', version: '12', exe: 'clang++' } -llvm13: &llvm13 { name: 'llvm', version: '13', exe: 'clang++' } llvm14: &llvm14 { name: 'llvm', version: '14', exe: 'clang++' } llvm15: &llvm15 { name: 'llvm', version: '15', exe: 'clang++' } llvm16: &llvm16 { name: 'llvm', version: '16', exe: 'clang++' } -llvm16: &llvm17 { name: 'llvm', version: '17', exe: 'clang++' } -llvm16: &llvm18 { name: 'llvm', version: '18', exe: 'clang++' } +llvm17: &llvm17 { name: 'llvm', version: '17', exe: 'clang++' } +llvm18: &llvm18 { name: 'llvm', version: '18', exe: 'clang++' } +llvm19: &llvm19 { name: 'llvm', version: '19', exe: 'clang++' } # MSVC configs msvc2019: &msvc2019 { name: 'cl', version: '14.29', exe: 'cl++' } @@ -41,8 +38,6 @@ msvc2022: &msvc2022 { name: 'cl', version: '14.39', exe: 'cl++' } # name: The compiler name # version: The compiler version # exe: The unverionsed compiler binary name -# std: The C++ standards to build for -# This field is unique as it will generate an independent build/test job for each value # Configurations that will run for every PR pull_request: @@ -50,7 +45,6 @@ pull_request: - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *gcc7 } - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *gcc8 } - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *gcc9 } - - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *llvm9 } - {cuda: *cuda_prev_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc11 } - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc7 } - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc8 } @@ -58,11 +52,6 @@ pull_request: - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc10 } - {cuda: *cuda_curr_min, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc11 } - {cuda: *cuda_curr_min, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc12 } - - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm9 } - - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm10 } - - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm11 } - - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm12 } - - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm13 } - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm14 } - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc7 } - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc8 } @@ -70,17 +59,13 @@ pull_request: - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc10 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc11 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc12 } - # Fails to compile simple input on CTK12.4. Try to add later. - # {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc13 } - - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm9 } - - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm10 } - - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm11 } - - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm12 } - - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm13 } + - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc13 } + - {cuda: *cuda_curr_max, os: 'ubuntu24.04', cpu: 'amd64', compiler: *gcc14 } - {cuda: *cuda_curr_max, os: 'ubuntu20.04', cpu: 'amd64', compiler: *llvm14 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm15 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm16 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm17 } - - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm18, extra_build_args: "-cmake-options '-DCMAKE_CUDA_FLAGS=-allow-unsupported-compiler'"} + - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm18 } + - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm19 } - {cuda: *cuda_curr_max, os: 'windows2022', cpu: 'amd64', compiler: *msvc2019 } - {cuda: *cuda_curr_max, os: 'windows2022', cpu: 'amd64', compiler: *msvc2022 } From 5f6f8a65ee8d0d685da4b1f5abfccd1e6e599a33 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 1 Apr 2025 14:51:48 -0400 Subject: [PATCH 06/16] Enable /utf-8 on MSVC. --- cmake/NVBenchConfigTarget.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index ea917eb..16d2269 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -45,6 +45,9 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # The CUDA `host_runtime.h` header emits this for # `__cudaUnregisterBinaryUtil`. nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/wd4505") + + # Required by fmt: + nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/utf-8") else() nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wall") nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wextra") From 9d9a30fbd60f8f87d30addd191a845542cf78cb8 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 1 Apr 2025 14:52:15 -0400 Subject: [PATCH 07/16] Bump devcontainers to 25.06 branch. --- ci/matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/matrix.yaml b/ci/matrix.yaml index 2d1b9d9..35a3f9e 100644 --- a/ci/matrix.yaml +++ b/ci/matrix.yaml @@ -5,7 +5,7 @@ cuda_curr_min: &cuda_curr_min '12.0' cuda_curr_max: &cuda_curr_max '12.8' # The version of the devcontainer images to use from https://hub.docker.com/r/rapidsai/devcontainers -devcontainer_version: '25.04' +devcontainer_version: '25.06' # gcc compiler configurations gcc7: &gcc7 { name: 'gcc', version: '7', exe: 'g++' } From 8478f7d0bf03d31cc09a3fc8793fae0e5f725739 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 1 Apr 2025 14:53:06 -0400 Subject: [PATCH 08/16] Guard fmt def behind nvcc check. --- cmake/NVBenchConfigTarget.cmake | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index 16d2269..3d34076 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -66,15 +66,17 @@ else() endif() endif() -# fmtlib uses llvm's _BitInt internally, which is not available when compiling through nvcc: -target_compile_definitions(nvbench.build_interface INTERFACE "FMT_USE_BITINT=0") - # Experimental filesystem library if (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) target_link_libraries(nvbench.build_interface INTERFACE stdc++fs) endif() # CUDA-specific flags +if (CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") + # fmtlib uses llvm's _BitInt internally, which is not available when compiling through nvcc: + target_compile_definitions(nvbench.build_interface INTERFACE "FMT_USE_BITINT=0") +endif() + target_compile_options(nvbench.build_interface INTERFACE $<$:-Xcudafe=--display_error_number> $<$:-Wno-deprecated-gpu-targets> From 1a5fa2277e589fbc4f7545c3602d0bbb4afa496e Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 1 Apr 2025 14:55:16 -0400 Subject: [PATCH 09/16] Drop support for CTK < 11.8 and clang < 14. Newer versions of fmt have a ton of issues building on CTK 11.1, and 11.8 is the next available container we have built for CI. We may still work with some earlier versions, but we do not test them. We no longer have CI images available for clang < 14, so drop official support. --- README.md | 6 +++--- ci/matrix.yaml | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 285213f..e740cdf 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,9 @@ features: # Supported Compilers and Tools - CMake > 2.23.1 -- CUDA Toolkit + nvcc: 11.1 -> 12.4 -- g++: 7 -> 12 -- clang++: 9 -> 18 +- CUDA Toolkit + nvcc: 11.8 and above +- g++: 7 -> 14 +- clang++: 14 -> 19 - cl.exe: 2019 -> 2022 (19.29, 29.39) - Headers are tested with C++17 -> C++20. diff --git a/ci/matrix.yaml b/ci/matrix.yaml index 35a3f9e..ccff2a7 100644 --- a/ci/matrix.yaml +++ b/ci/matrix.yaml @@ -1,5 +1,5 @@ -cuda_prev_min: &cuda_prev_min '11.1' # Does not support the CUPTI APIs we use (added in 11.3) +cuda_prev_min: &cuda_prev_min '11.1' # Unsupported: No cupti support, issues compiling newer fmt. cuda_prev_max: &cuda_prev_max '11.8' cuda_curr_min: &cuda_curr_min '12.0' cuda_curr_max: &cuda_curr_max '12.8' @@ -42,9 +42,6 @@ msvc2022: &msvc2022 { name: 'cl', version: '14.39', exe: 'cl++' } # Configurations that will run for every PR pull_request: nvcc: - - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *gcc7 } - - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *gcc8 } - - {cuda: *cuda_prev_min, os: 'ubuntu18.04', cpu: 'amd64', compiler: *gcc9 } - {cuda: *cuda_prev_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *gcc11 } - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc7 } - {cuda: *cuda_curr_min, os: 'ubuntu20.04', cpu: 'amd64', compiler: *gcc8 } From 435df5220ff2fe83bc54b87e883e432244a7112c Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 1 Apr 2025 18:58:55 +0000 Subject: [PATCH 10/16] Regenerate devcontainers. --- .devcontainer/cuda11.1-gcc7/devcontainer.json | 46 ------------------- .devcontainer/cuda11.1-gcc8/devcontainer.json | 46 ------------------- .devcontainer/cuda11.1-gcc9/devcontainer.json | 46 ------------------- .../cuda11.8-gcc11/devcontainer.json | 2 +- .../cuda12.0-gcc10/devcontainer.json | 2 +- .../cuda12.0-gcc11/devcontainer.json | 2 +- .../cuda12.0-gcc12/devcontainer.json | 2 +- .devcontainer/cuda12.0-gcc7/devcontainer.json | 2 +- .devcontainer/cuda12.0-gcc8/devcontainer.json | 2 +- .devcontainer/cuda12.0-gcc9/devcontainer.json | 2 +- .../cuda12.0-llvm14/devcontainer.json | 2 +- .../cuda12.8-gcc10/devcontainer.json | 2 +- .../cuda12.8-gcc11/devcontainer.json | 2 +- .../cuda12.8-gcc12/devcontainer.json | 2 +- .../cuda12.8-gcc13/devcontainer.json | 2 +- .../cuda12.8-gcc14/devcontainer.json | 2 +- .devcontainer/cuda12.8-gcc7/devcontainer.json | 2 +- .devcontainer/cuda12.8-gcc8/devcontainer.json | 2 +- .devcontainer/cuda12.8-gcc9/devcontainer.json | 2 +- .../cuda12.8-llvm14/devcontainer.json | 2 +- .../cuda12.8-llvm15/devcontainer.json | 2 +- .../cuda12.8-llvm16/devcontainer.json | 2 +- .../cuda12.8-llvm17/devcontainer.json | 2 +- .../cuda12.8-llvm18/devcontainer.json | 2 +- .../cuda12.8-llvm19/devcontainer.json | 2 +- .devcontainer/devcontainer.json | 2 +- 26 files changed, 23 insertions(+), 161 deletions(-) delete mode 100644 .devcontainer/cuda11.1-gcc7/devcontainer.json delete mode 100644 .devcontainer/cuda11.1-gcc8/devcontainer.json delete mode 100644 .devcontainer/cuda11.1-gcc9/devcontainer.json diff --git a/.devcontainer/cuda11.1-gcc7/devcontainer.json b/.devcontainer/cuda11.1-gcc7/devcontainer.json deleted file mode 100644 index 63f1729..0000000 --- a/.devcontainer/cuda11.1-gcc7/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc7-cuda11.1-ubuntu18.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda11.1-gcc7", - "CCCL_CUDA_VERSION": "11.1", - "CCCL_HOST_COMPILER": "gcc", - "CCCL_HOST_COMPILER_VERSION": "7", - "CCCL_BUILD_INFIX": "cuda11.1-gcc7" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda11.1-gcc7" -} diff --git a/.devcontainer/cuda11.1-gcc8/devcontainer.json b/.devcontainer/cuda11.1-gcc8/devcontainer.json deleted file mode 100644 index 0794c1a..0000000 --- a/.devcontainer/cuda11.1-gcc8/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc8-cuda11.1-ubuntu18.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda11.1-gcc8", - "CCCL_CUDA_VERSION": "11.1", - "CCCL_HOST_COMPILER": "gcc", - "CCCL_HOST_COMPILER_VERSION": "8", - "CCCL_BUILD_INFIX": "cuda11.1-gcc8" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda11.1-gcc8" -} diff --git a/.devcontainer/cuda11.1-gcc9/devcontainer.json b/.devcontainer/cuda11.1-gcc9/devcontainer.json deleted file mode 100644 index 90b4683..0000000 --- a/.devcontainer/cuda11.1-gcc9/devcontainer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc9-cuda11.1-ubuntu18.04", - "hostRequirements": { - "gpu": "optional" - }, - "initializeCommand": [ - "/bin/bash", - "-c", - "mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" - ], - "containerEnv": { - "SCCACHE_REGION": "us-east-2", - "SCCACHE_BUCKET": "rapids-sccache-devs", - "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", - "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", - "DEVCONTAINER_NAME": "cuda11.1-gcc9", - "CCCL_CUDA_VERSION": "11.1", - "CCCL_HOST_COMPILER": "gcc", - "CCCL_HOST_COMPILER_VERSION": "9", - "CCCL_BUILD_INFIX": "cuda11.1-gcc9" - }, - "workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", - "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", - "mounts": [ - "source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", - "source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" - ], - "customizations": { - "vscode": { - "extensions": [ - "llvm-vs-code-extensions.vscode-clangd", - "xaver.clang-format" - ], - "settings": { - "editor.defaultFormatter": "xaver.clang-format", - "clang-format.executable": "/usr/local/bin/clang-format", - "clangd.arguments": [ - "--compile-commands-dir=${workspaceFolder}" - ] - } - } - }, - "name": "cuda11.1-gcc9" -} diff --git a/.devcontainer/cuda11.8-gcc11/devcontainer.json b/.devcontainer/cuda11.8-gcc11/devcontainer.json index 53fdae0..899b3f9 100644 --- a/.devcontainer/cuda11.8-gcc11/devcontainer.json +++ b/.devcontainer/cuda11.8-gcc11/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc11-cuda11.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc11-cuda11.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc10/devcontainer.json b/.devcontainer/cuda12.0-gcc10/devcontainer.json index b5edb03..fc9da5b 100644 --- a/.devcontainer/cuda12.0-gcc10/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc10/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc10-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc10-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc11/devcontainer.json b/.devcontainer/cuda12.0-gcc11/devcontainer.json index 3d1ca68..5415030 100644 --- a/.devcontainer/cuda12.0-gcc11/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc11/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc11-cuda12.0-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc11-cuda12.0-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc12/devcontainer.json b/.devcontainer/cuda12.0-gcc12/devcontainer.json index 972ba37..5ba7d2e 100644 --- a/.devcontainer/cuda12.0-gcc12/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc12/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc12-cuda12.0-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc12-cuda12.0-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc7/devcontainer.json b/.devcontainer/cuda12.0-gcc7/devcontainer.json index 8458d0e..d55bd90 100644 --- a/.devcontainer/cuda12.0-gcc7/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc7/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc7-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc7-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc8/devcontainer.json b/.devcontainer/cuda12.0-gcc8/devcontainer.json index 0faa349..3642fc2 100644 --- a/.devcontainer/cuda12.0-gcc8/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc8/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc8-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc8-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-gcc9/devcontainer.json b/.devcontainer/cuda12.0-gcc9/devcontainer.json index a4b383b..ea4d0ff 100644 --- a/.devcontainer/cuda12.0-gcc9/devcontainer.json +++ b/.devcontainer/cuda12.0-gcc9/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc9-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc9-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.0-llvm14/devcontainer.json b/.devcontainer/cuda12.0-llvm14/devcontainer.json index 7016899..ef9ef42 100644 --- a/.devcontainer/cuda12.0-llvm14/devcontainer.json +++ b/.devcontainer/cuda12.0-llvm14/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm14-cuda12.0-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm14-cuda12.0-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc10/devcontainer.json b/.devcontainer/cuda12.8-gcc10/devcontainer.json index 858a86d..8bc6b9b 100644 --- a/.devcontainer/cuda12.8-gcc10/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc10/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc10-cuda12.8-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc10-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc11/devcontainer.json b/.devcontainer/cuda12.8-gcc11/devcontainer.json index c28b1d9..2fa83a6 100644 --- a/.devcontainer/cuda12.8-gcc11/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc11/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc11-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc11-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc12/devcontainer.json b/.devcontainer/cuda12.8-gcc12/devcontainer.json index 7d16df5..1c75793 100644 --- a/.devcontainer/cuda12.8-gcc12/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc12/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc12-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc12-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc13/devcontainer.json b/.devcontainer/cuda12.8-gcc13/devcontainer.json index 77a16f6..0dd2a5e 100644 --- a/.devcontainer/cuda12.8-gcc13/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc13/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc13-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc13-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc14/devcontainer.json b/.devcontainer/cuda12.8-gcc14/devcontainer.json index ebcc74b..c8eafb9 100644 --- a/.devcontainer/cuda12.8-gcc14/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc14/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc14-cuda12.8-ubuntu24.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc14-cuda12.8-ubuntu24.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc7/devcontainer.json b/.devcontainer/cuda12.8-gcc7/devcontainer.json index bf5ed5b..262e854 100644 --- a/.devcontainer/cuda12.8-gcc7/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc7/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc7-cuda12.8-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc7-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc8/devcontainer.json b/.devcontainer/cuda12.8-gcc8/devcontainer.json index 11ab0f8..b1c8678 100644 --- a/.devcontainer/cuda12.8-gcc8/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc8/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc8-cuda12.8-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc8-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-gcc9/devcontainer.json b/.devcontainer/cuda12.8-gcc9/devcontainer.json index d84951a..69fd53d 100644 --- a/.devcontainer/cuda12.8-gcc9/devcontainer.json +++ b/.devcontainer/cuda12.8-gcc9/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc9-cuda12.8-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc9-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-llvm14/devcontainer.json b/.devcontainer/cuda12.8-llvm14/devcontainer.json index 939d6fa..0c7bbbe 100644 --- a/.devcontainer/cuda12.8-llvm14/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm14/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm14-cuda12.8-ubuntu20.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm14-cuda12.8-ubuntu20.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-llvm15/devcontainer.json b/.devcontainer/cuda12.8-llvm15/devcontainer.json index a355c13..542951d 100644 --- a/.devcontainer/cuda12.8-llvm15/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm15/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm15-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm15-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-llvm16/devcontainer.json b/.devcontainer/cuda12.8-llvm16/devcontainer.json index 676a7bc..0a454ad 100644 --- a/.devcontainer/cuda12.8-llvm16/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm16/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm16-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm16-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-llvm17/devcontainer.json b/.devcontainer/cuda12.8-llvm17/devcontainer.json index 34ece28..2347eb6 100644 --- a/.devcontainer/cuda12.8-llvm17/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm17/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm17-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm17-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-llvm18/devcontainer.json b/.devcontainer/cuda12.8-llvm18/devcontainer.json index ff74172..d18c4e0 100644 --- a/.devcontainer/cuda12.8-llvm18/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm18/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm18-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm18-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/cuda12.8-llvm19/devcontainer.json b/.devcontainer/cuda12.8-llvm19/devcontainer.json index 37943af..2ee35e4 100644 --- a/.devcontainer/cuda12.8-llvm19/devcontainer.json +++ b/.devcontainer/cuda12.8-llvm19/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-llvm19-cuda12.8-ubuntu22.04", + "image": "rapidsai/devcontainers:25.06-cpp-llvm19-cuda12.8-ubuntu22.04", "hostRequirements": { "gpu": "optional" }, diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ebcc74b..c8eafb9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "shutdownAction": "stopContainer", - "image": "rapidsai/devcontainers:25.04-cpp-gcc14-cuda12.8-ubuntu24.04", + "image": "rapidsai/devcontainers:25.06-cpp-gcc14-cuda12.8-ubuntu24.04", "hostRequirements": { "gpu": "optional" }, From 15d34106d45def1e4fd3a4ae0d4534f0d1dc8f65 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 2 Apr 2025 10:55:24 -0400 Subject: [PATCH 11/16] Disable unicode in fmtlib on nvcc + msvc. This doesn't appear to be supported. --- cmake/NVBenchConfigTarget.cmake | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index 3d34076..96df6cd 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -45,9 +45,6 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # The CUDA `host_runtime.h` header emits this for # `__cudaUnregisterBinaryUtil`. nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/wd4505") - - # Required by fmt: - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/utf-8") else() nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wall") nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wextra") @@ -75,6 +72,11 @@ endif() if (CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") # fmtlib uses llvm's _BitInt internally, which is not available when compiling through nvcc: target_compile_definitions(nvbench.build_interface INTERFACE "FMT_USE_BITINT=0") + + # NVCC + MSVC does not support unicode execution encoding, disable usages of utf-8 in fmt: + if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + target_compile_definitions(nvbench.build_interface INTERFACE "FMT_UNICODE=0") + endif() endif() target_compile_options(nvbench.build_interface INTERFACE From a3fb3ce610361f076a07a24cc8646a0a7a858541 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Wed, 2 Apr 2025 11:03:14 -0400 Subject: [PATCH 12/16] Migrate CI to l4 queue. --- .github/workflows/build-and-test-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-linux.yml b/.github/workflows/build-and-test-linux.yml index e2364d7..f1e85c6 100644 --- a/.github/workflows/build-and-test-linux.yml +++ b/.github/workflows/build-and-test-linux.yml @@ -30,7 +30,7 @@ jobs: cuda: ${{ inputs.cuda }} host: ${{ inputs.host }} name: Build/Test ${{inputs.test_name}} - runner: linux-${{inputs.cpu}}-gpu-v100-latest-1 + runner: linux-${{inputs.cpu}}-gpu-l4-latest-1 image: ${{ inputs.container_image }} command: | ${{ inputs.test_script }} From 2a25b351ab2cbb5159e7b459297b782f7136fb51 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Thu, 3 Apr 2025 10:16:49 -0400 Subject: [PATCH 13/16] Bump required cmake version to 3.30.4 for rapids-cmake. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8eb5f88..41d1d99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -# 3.23.1 required for rapids-cmake -cmake_minimum_required(VERSION 3.23.1) +# 3.30.4 required for rapids-cmake +cmake_minimum_required(VERSION 3.30.4) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CUDA_STANDARD 17) From 7d210614f54e19c9919d8a6e2f30967a19a881c3 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Thu, 3 Apr 2025 10:02:00 -0400 Subject: [PATCH 14/16] Attempt to suppress system include warnings on MSVC. --- cmake/NVBenchConfigTarget.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index 96df6cd..42bfd80 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -40,6 +40,10 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/WX") endif() + # Suppress warnings from CPM dependency headers: + nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/external:I${NVBench_BINARY_DIR}/_deps") + nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/external:W0") + # Suppress overly-pedantic/unavoidable warnings brought in with /W4: # C4505: unreferenced local function has been removed # The CUDA `host_runtime.h` header emits this for From 1d0daa52aecf81b131d8eba8384dbaf3ebe2322f Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Thu, 3 Apr 2025 10:38:24 -0400 Subject: [PATCH 15/16] Add skip-vdc option to CI. --- .github/workflows/pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 6d6708c..8375fca 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -69,6 +69,7 @@ jobs: verify-devcontainers: name: Verify Dev Containers + if: ${{ !contains(github.event.head_commit.message, '[skip-vdc]') }} permissions: id-token: write contents: read From 93ea533fd3f3f443132e8bd68799c63b17686fa0 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Fri, 4 Apr 2025 22:17:03 +0000 Subject: [PATCH 16/16] Drop support for MSVC. --- .github/workflows/build-and-test-windows.yml | 49 ----- .github/workflows/dispatch-build-and-test.yml | 19 -- .github/workflows/pr.yml | 1 - CMakeLists.txt | 1 - README.md | 3 +- ci/matrix.yaml | 6 - ci/windows/build_common.psm1 | 207 ------------------ ci/windows/build_nvbench.ps1 | 30 --- ci/windows/test_nvbench.ps1 | 31 --- cmake/NVBenchCUPTI.cmake | 48 +--- cmake/NVBenchConfigTarget.cmake | 50 ++--- cmake/NVBenchDependentDlls.cmake | 30 --- cmake/NVBenchNVML.cmake | 38 +--- cmake/header_test.in.cxx | 18 +- examples/CMakeLists.txt | 24 -- exec/CMakeLists.txt | 1 - nvbench/CMakeLists.txt | 1 - nvbench/config.cuh.in | 14 -- nvbench/csv_printer.cu | 3 - nvbench/detail/state_exec.cuh | 7 - nvbench/markdown_printer.cu | 6 - nvbench/named_values.cxx | 3 - testing/cmake/CMakeLists.txt | 6 - 23 files changed, 26 insertions(+), 570 deletions(-) delete mode 100644 .github/workflows/build-and-test-windows.yml delete mode 100644 ci/windows/build_common.psm1 delete mode 100644 ci/windows/build_nvbench.ps1 delete mode 100644 ci/windows/test_nvbench.ps1 delete mode 100644 cmake/NVBenchDependentDlls.cmake diff --git a/.github/workflows/build-and-test-windows.yml b/.github/workflows/build-and-test-windows.yml deleted file mode 100644 index 2cabf9d..0000000 --- a/.github/workflows/build-and-test-windows.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Build Windows - -on: - workflow_call: - inputs: - test_name: {type: string, required: false} - build_script: {type: string, required: false} - test_script: {type: string, required: false} - container_image: {type: string, required: false} - -jobs: - prepare: - name: Build Only ${{inputs.test_name}} - runs-on: windows-amd64-cpu16 - permissions: - id-token: write - contents: read - env: - SCCACHE_BUCKET: rapids-sccache-devs - SCCACHE_REGION: us-east-2 - SCCACHE_IDLE_TIMEOUT: 0 - SCCACHE_S3_USE_SSL: true - SCCACHE_S3_NO_CREDENTIALS: false - steps: - - name: Get AWS credentials for sccache bucket - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-NVIDIA - aws-region: us-east-2 - role-duration-seconds: 43200 # 12 hours - - name: Fetch ${{ inputs.container_image }} - shell: powershell - run: docker pull ${{ inputs.container_image }} - - name: Run the tests - shell: powershell - run: >- - docker run ${{ inputs.container_image }} powershell -c "[System.Environment]::SetEnvironmentVariable('AWS_ACCESS_KEY_ID','${{env.AWS_ACCESS_KEY_ID}}') - [System.Environment]::SetEnvironmentVariable('AWS_SECRET_ACCESS_KEY','${{env.AWS_SECRET_ACCESS_KEY}}') - [System.Environment]::SetEnvironmentVariable('AWS_SESSION_TOKEN','${{env.AWS_SESSION_TOKEN }}') - [System.Environment]::SetEnvironmentVariable('SCCACHE_BUCKET','${{env.SCCACHE_BUCKET}}') - [System.Environment]::SetEnvironmentVariable('SCCACHE_REGION','${{env.SCCACHE_REGION}}') - [System.Environment]::SetEnvironmentVariable('SCCACHE_IDLE_TIMEOUT','${{env.SCCACHE_IDLE_TIMEOUT}}') - [System.Environment]::SetEnvironmentVariable('SCCACHE_S3_USE_SSL','${{env.SCCACHE_S3_USE_SSL}}') - [System.Environment]::SetEnvironmentVariable('SCCACHE_S3_NO_CREDENTIALS','${{env.SCCACHE_S3_NO_CREDENTIALS}}') - git clone https://github.com/NVIDIA/nvbench.git; - cd nvbench; - git fetch --all; - git checkout ${{github.ref_name}}; - ${{inputs.build_script}};" diff --git a/.github/workflows/dispatch-build-and-test.yml b/.github/workflows/dispatch-build-and-test.yml index 22ac2b2..fc82b73 100644 --- a/.github/workflows/dispatch-build-and-test.yml +++ b/.github/workflows/dispatch-build-and-test.yml @@ -6,7 +6,6 @@ on: project_name: {type: string, required: true} per_cuda_compiler_matrix: {type: string, required: true} devcontainer_version: {type: string, required: true} - is_windows: {type: boolean, required: true} permissions: contents: read @@ -20,7 +19,6 @@ jobs: permissions: id-token: write contents: read - if: ${{ !inputs.is_windows }} uses: ./.github/workflows/build-and-test-linux.yml strategy: fail-fast: false @@ -34,20 +32,3 @@ jobs: build_script: "./ci/build_${{ inputs.project_name }}.sh -cxx ${{matrix.compiler.exe}} ${{matrix.extra_build_args}}" test_script: "./ci/test_${{ inputs.project_name }}.sh -cxx ${{matrix.compiler.exe}} ${{matrix.extra_build_args}}" container_image: rapidsai/devcontainers:${{inputs.devcontainer_version}}-cpp-${{matrix.compiler.name}}${{matrix.compiler.version}}-cuda${{matrix.cuda}}-${{matrix.os}} - - build_and_test_windows: - name: build and test windows - permissions: - id-token: write - contents: read - if: ${{ inputs.is_windows }} - uses: ./.github/workflows/build-and-test-windows.yml - strategy: - fail-fast: false - matrix: - include: ${{ fromJSON(inputs.per_cuda_compiler_matrix) }} - with: - test_name: ${{matrix.cpu}}/${{matrix.compiler.name}}${{matrix.compiler.version}} - build_script: "./ci/windows/build_${{ inputs.project_name }}.ps1 ${{matrix.extra_build_args}}" - test_script: "./ci/windows/test_${{ inputs.project_name }}.ps1 ${{matrix.extra_build_args}}" - container_image: rapidsai/devcontainers:${{inputs.devcontainer_version}}-cuda${{matrix.cuda}}-${{matrix.compiler.name}}${{matrix.compiler.version}}-${{matrix.os}} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8375fca..d9977ce 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -65,7 +65,6 @@ jobs: project_name: "nvbench" per_cuda_compiler_matrix: ${{ toJSON(fromJSON(needs.compute-matrix.outputs.PER_CUDA_COMPILER_MATRIX)[ matrix.cuda_host_combination ]) }} devcontainer_version: ${{ needs.compute-matrix.outputs.DEVCONTAINER_VERSION }} - is_windows: ${{ contains(matrix.cuda_host_combination, 'cl') }} verify-devcontainers: name: Verify Dev Containers diff --git a/CMakeLists.txt b/CMakeLists.txt index 41d1d99..4f3b7c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,6 @@ include(cmake/NVBenchUtilities.cmake) # Must be first include(cmake/NVBenchClangdCompileInfo.cmake) # Must be before any targets are created include(cmake/NVBenchConfigTarget.cmake) -include(cmake/NVBenchDependentDlls.cmake) include(cmake/NVBenchExports.cmake) include(cmake/NVBenchWriteConfigHeader.cmake) include(cmake/NVBenchDependencies.cmake) diff --git a/README.md b/README.md index e740cdf..cbb29d1 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,10 @@ features: # Supported Compilers and Tools -- CMake > 2.23.1 +- CMake > 3.30.4 - CUDA Toolkit + nvcc: 11.8 and above - g++: 7 -> 14 - clang++: 14 -> 19 -- cl.exe: 2019 -> 2022 (19.29, 29.39) - Headers are tested with C++17 -> C++20. # Getting Started diff --git a/ci/matrix.yaml b/ci/matrix.yaml index ccff2a7..27f0761 100644 --- a/ci/matrix.yaml +++ b/ci/matrix.yaml @@ -25,10 +25,6 @@ llvm17: &llvm17 { name: 'llvm', version: '17', exe: 'clang++' } llvm18: &llvm18 { name: 'llvm', version: '18', exe: 'clang++' } llvm19: &llvm19 { name: 'llvm', version: '19', exe: 'clang++' } -# MSVC configs -msvc2019: &msvc2019 { name: 'cl', version: '14.29', exe: 'cl++' } -msvc2022: &msvc2022 { name: 'cl', version: '14.39', exe: 'cl++' } - # Each environment below will generate a unique build/test job # See the "compute-matrix" job in the workflow for how this is parsed and used # cuda: The CUDA Toolkit version @@ -64,5 +60,3 @@ pull_request: - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm17 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm18 } - {cuda: *cuda_curr_max, os: 'ubuntu22.04', cpu: 'amd64', compiler: *llvm19 } - - {cuda: *cuda_curr_max, os: 'windows2022', cpu: 'amd64', compiler: *msvc2019 } - - {cuda: *cuda_curr_max, os: 'windows2022', cpu: 'amd64', compiler: *msvc2022 } diff --git a/ci/windows/build_common.psm1 b/ci/windows/build_common.psm1 deleted file mode 100644 index 1edea63..0000000 --- a/ci/windows/build_common.psm1 +++ /dev/null @@ -1,207 +0,0 @@ - -Param( - [Parameter(Mandatory = $true)] - [Alias("std")] - [ValidateNotNullOrEmpty()] - [ValidateSet(17)] - [int]$CXX_STANDARD = 17 -) - -# We need the full path to cl because otherwise cmake will replace CMAKE_CXX_COMPILER with the full path -# and keep CMAKE_CUDA_HOST_COMPILER at "cl" which breaks our cmake script -$script:HOST_COMPILER = (Get-Command "cl").source -replace '\\','/' -$script:PARALLEL_LEVEL = (Get-WmiObject -class Win32_processor).NumberOfLogicalProcessors - -# Extract the CL version for export to build scripts: -$script:CL_VERSION_STRING = & cl.exe /? -if ($script:CL_VERSION_STRING -match "Version (\d+\.\d+)\.\d+") { - $CL_VERSION = [version]$matches[1] - Write-Host "Detected cl.exe version: $CL_VERSION" -} - -if (-not $env:CCCL_BUILD_INFIX) { - $env:CCCL_BUILD_INFIX = "" -} - -# Presets will be configured in this directory: -$BUILD_DIR = "../build/$env:CCCL_BUILD_INFIX" - -If(!(test-path -PathType container "../build")) { - New-Item -ItemType Directory -Path "../build" -} - -# The most recent build will always be symlinked to cccl/build/latest -New-Item -ItemType Directory -Path "$BUILD_DIR" -Force - -# Prepare environment for CMake: -$env:CMAKE_BUILD_PARALLEL_LEVEL = $PARALLEL_LEVEL -$env:CTEST_PARALLEL_LEVEL = 1 -$env:CUDAHOSTCXX = $HOST_COMPILER.FullName -$env:CXX = $HOST_COMPILER.FullName - -Write-Host "========================================" -Write-Host "Begin build" -Write-Host "pwd=$pwd" -Write-Host "BUILD_DIR=$BUILD_DIR" -Write-Host "CXX_STANDARD=$CXX_STANDARD" -Write-Host "CXX=$env:CXX" -Write-Host "CUDACXX=$env:CUDACXX" -Write-Host "CUDAHOSTCXX=$env:CUDAHOSTCXX" -Write-Host "NVCC_VERSION=$NVCC_VERSION" -Write-Host "CMAKE_BUILD_PARALLEL_LEVEL=$env:CMAKE_BUILD_PARALLEL_LEVEL" -Write-Host "CTEST_PARALLEL_LEVEL=$env:CTEST_PARALLEL_LEVEL" -Write-Host "CCCL_BUILD_INFIX=$env:CCCL_BUILD_INFIX" -Write-Host "Current commit is:" -Write-Host "$(git log -1)" -Write-Host "========================================" - -function configure_preset { - Param( - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$BUILD_NAME, - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$PRESET, - [Parameter(Mandatory = $true)] - [AllowEmptyString()] - [string]$CMAKE_OPTIONS - ) - - $step = "$BUILD_NAME (configure)" - - # CMake must be invoked in the same directory as the presets file: - pushd ".." - - $cmake_command = "cmake --preset $PRESET $CMAKE_OPTIONS --log-level VERBOSE" - echo "$cmake_command" - Invoke-Expression $cmake_command - $test_result = $LastExitCode - - If ($test_result -ne 0) { - throw "$step Failed" - } - - popd - Write-Host "$step complete." -} - -function build_preset { - Param( - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$BUILD_NAME, - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$PRESET - ) - - $step = "$BUILD_NAME (build)" - - # CMake must be invoked in the same directory as the presets file: - pushd ".." - - sccache_stats('Start') - - cmake --build --preset $PRESET -v - $test_result = $LastExitCode - - sccache_stats('Stop') - - echo "$step complete" - - If ($test_result -ne 0) { - throw "$step Failed" - } - - popd -} - -function test_preset { - Param( - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$BUILD_NAME, - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$PRESET - ) - - $step = "$BUILD_NAME (test)" - - # CTest must be invoked in the same directory as the presets file: - pushd ".." - - sccache_stats('Start') - - ctest --preset $PRESET - $test_result = $LastExitCode - - sccache_stats('Stop') - - echo "$step complete" - - If ($test_result -ne 0) { - throw "$step Failed" - } - - popd -} - -function configure_and_build_preset { - Param( - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$BUILD_NAME, - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [string]$PRESET, - [Parameter(Mandatory = $true)] - [AllowEmptyString()] - [string]$CMAKE_OPTIONS - ) - - configure_preset "$BUILD_NAME" "$PRESET" "$CMAKE_OPTIONS" - build_preset "$BUILD_NAME" "$PRESET" -} - -function sccache_stats { - Param ( - [Parameter(Mandatory = $true)] - [ValidateNotNullOrEmpty()] - [ValidateSet('Start','Stop')] - [string]$MODE - ) - - $sccache_stats = sccache -s - If($MODE -eq 'Start') { - [int]$script:sccache_compile_requests = ($sccache_stats[0] -replace '[^\d]+') - [int]$script:sccache_cache_hits_cpp = ($sccache_stats[2] -replace '[^\d]+') - [int]$script:sccache_cache_hits_cuda = ($sccache_stats[3] -replace '[^\d]+') - [int]$script:sccache_cache_miss_cpp = ($sccache_stats[5] -replace '[^\d]+') - [int]$script:sccache_cache_miss_cuda = ($sccache_stats[6] -replace '[^\d]+') - } else { - [int]$final_sccache_compile_requests = ($sccache_stats[0] -replace '[^\d]+') - [int]$final_sccache_cache_hits_cpp = ($sccache_stats[2] -replace '[^\d]+') - [int]$final_sccache_cache_hits_cuda = ($sccache_stats[3] -replace '[^\d]+') - [int]$final_sccache_cache_miss_cpp = ($sccache_stats[5] -replace '[^\d]+') - [int]$final_sccache_cache_miss_cuda = ($sccache_stats[6] -replace '[^\d]+') - - [int]$total_requests = $final_sccache_compile_requests - $script:sccache_compile_requests - [int]$total_hits_cpp = $final_sccache_cache_hits_cpp - $script:sccache_cache_hits_cpp - [int]$total_hits_cuda = $final_sccache_cache_hits_cuda - $script:sccache_cache_hits_cuda - [int]$total_miss_cpp = $final_sccache_cache_miss_cpp - $script:sccache_cache_miss_cpp - [int]$total_miss_cuda = $final_sccache_cache_miss_cuda - $script:sccache_cache_miss_cuda - If ( $total_requests -gt 0 ) { - [int]$hit_rate_cpp = $total_hits_cpp / $total_requests * 100; - [int]$hit_rate_cuda = $total_hits_cuda / $total_requests * 100; - echo "sccache hits cpp: $total_hits_cpp `t| misses: $total_miss_cpp `t| hit rate: $hit_rate_cpp%" - echo "sccache hits cuda: $total_hits_cuda `t| misses: $total_miss_cuda `t| hit rate: $hit_rate_cuda%" - } else { - echo "sccache stats: N/A No new compilation requests" - } - } -} - -Export-ModuleMember -Function configure_preset, build_preset, test_preset, configure_and_build_preset, sccache_stats -Export-ModuleMember -Variable BUILD_DIR, CL_VERSION diff --git a/ci/windows/build_nvbench.ps1 b/ci/windows/build_nvbench.ps1 deleted file mode 100644 index 7240698..0000000 --- a/ci/windows/build_nvbench.ps1 +++ /dev/null @@ -1,30 +0,0 @@ - -Param( - [Parameter(Mandatory = $false)] - [Alias("cmake-options")] - [ValidateNotNullOrEmpty()] - [string]$ARG_CMAKE_OPTIONS = "" -) - -$CURRENT_PATH = Split-Path $pwd -leaf -If($CURRENT_PATH -ne "ci") { - Write-Host "Moving to ci folder" - pushd "$PSScriptRoot/.." -} - -Remove-Module -Name build_common -Import-Module $PSScriptRoot/build_common.psm1 -ArgumentList 17 - -$PRESET = "nvbench-ci" -$CMAKE_OPTIONS = "" - -# Append any arguments pass in on the command line -If($ARG_CMAKE_OPTIONS -ne "") { - $CMAKE_OPTIONS += " $ARG_CMAKE_OPTIONS" -} - -configure_and_build_preset "NVBench" "$PRESET" "$CMAKE_OPTIONS" - -If($CURRENT_PATH -ne "ci") { - popd -} diff --git a/ci/windows/test_nvbench.ps1 b/ci/windows/test_nvbench.ps1 deleted file mode 100644 index 4ee5106..0000000 --- a/ci/windows/test_nvbench.ps1 +++ /dev/null @@ -1,31 +0,0 @@ - -Param( - [Parameter(Mandatory = $false)] - [Alias("cmake-options")] - [ValidateNotNullOrEmpty()] - [string]$ARG_CMAKE_OPTIONS = "" -) - -$CURRENT_PATH = Split-Path $pwd -leaf -If($CURRENT_PATH -ne "ci") { - Write-Host "Moving to ci folder" - pushd "$PSScriptRoot/.." -} - -Remove-Module -Name build_common -Import-Module $PSScriptRoot/build_common.psm1 -ArgumentList 17 - -$PRESET = "nvbench-ci" -$CMAKE_OPTIONS = "" - -# Append any arguments pass in on the command line -If($ARG_CMAKE_OPTIONS -ne "") { - $CMAKE_OPTIONS += " $ARG_CMAKE_OPTIONS" -} - -configure_and_build_preset "NVBench" "$PRESET" "$CMAKE_OPTIONS" -test_preset "NVBench" "$PRESET" - -If($CURRENT_PATH -ne "ci") { - popd -} diff --git a/cmake/NVBenchCUPTI.cmake b/cmake/NVBenchCUPTI.cmake index 7e5bed3..ea43a7f 100644 --- a/cmake/NVBenchCUPTI.cmake +++ b/cmake/NVBenchCUPTI.cmake @@ -22,47 +22,15 @@ function(nvbench_add_cupti_dep dep_name) add_library(nvbench::${dep_name_lower} SHARED IMPORTED) - if (WIN32) - # Attempt to locate the dll in the expected location. This is necessary - # because the CUPTI dll has a versioned suffix, so we can't directly search - # for it with find_file. - file(GLOB dep_dll_path "${nvbench_cupti_root}/lib64/${dep_name_lower}*dll") - cmake_path(GET dep_dll_path FILENAME dep_dll_filename) + find_library(NVBench_${dep_name_upper}_LIBRARY ${dep_name_lower} REQUIRED + DOC "The full path to lib${dep_name_lower}.so from the CUDA Toolkit." + HINTS "${nvbench_cupti_root}/lib64" + ) + mark_as_advanced(NVBench_${dep_name_upper}_LIBRARY) - # If the dll was not found in the expected location, use a default filename as a user hint. - if (NOT dep_dll_filename) - set(dep_dll_filename ${dep_name_lower}.dll) - endif() - - # Use find_file to create a cache variable and mark the file as REQUIRED. - find_file(NVBench_${dep_name_upper}_DLL ${dep_dll_filename} REQUIRED - DOC "The full path to ${dep_name_lower}.dll from the CUDA Toolkit." - HINTS "${nvbench_cupti_root}/lib64/" - ) - mark_as_advanced(NVBench_${dep_name_upper}_DLL) - - # The .libs don't have suffixes, so we can just directly search for them. - find_library(NVBench_${dep_name_upper}_LIBRARY ${dep_name_lower}.lib REQUIRED - DOC "The full path to ${dep_name_lower}.lib from the CUDA Toolkit." - HINTS "${nvbench_cupti_root}/lib64/" - ) - mark_as_advanced(NVBench_${dep_name_upper}_LIBRARY) - - set_target_properties(nvbench::${dep_name_lower} PROPERTIES - IMPORTED_LOCATION "${NVBench_${dep_name_upper}_DLL}" - IMPORTED_IMPLIB "${NVBench_${dep_name_upper}_LIBRARY}" - ) - else() - find_library(NVBench_${dep_name_upper}_LIBRARY ${dep_name_lower} REQUIRED - DOC "The full path to lib${dep_name_lower}.so from the CUDA Toolkit." - HINTS "${nvbench_cupti_root}/lib64" - ) - mark_as_advanced(NVBench_${dep_name_upper}_LIBRARY) - - set_target_properties(nvbench::${dep_name_lower} PROPERTIES - IMPORTED_LOCATION "${NVBench_${dep_name_upper}_LIBRARY}" - ) - endif() + set_target_properties(nvbench::${dep_name_lower} PROPERTIES + IMPORTED_LOCATION "${NVBench_${dep_name_upper}_LIBRARY}" + ) endfunction() nvbench_add_cupti_dep(nvperf_target) diff --git a/cmake/NVBenchConfigTarget.cmake b/cmake/NVBenchConfigTarget.cmake index 42bfd80..9a77fac 100644 --- a/cmake/NVBenchConfigTarget.cmake +++ b/cmake/NVBenchConfigTarget.cmake @@ -33,38 +33,20 @@ function(nvbench_add_cxx_flag target_name type flag) endif() endfunction() -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/W4") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wall") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wextra") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wconversion") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Woverloaded-virtual") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wcast-qual") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wpointer-arith") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wunused-local-typedef") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wunused-parameter") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wvla") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wgnu") +nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wno-gnu-line-marker") # WAR 3916341 - if (NVBench_ENABLE_WERROR) - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/WX") - endif() - - # Suppress warnings from CPM dependency headers: - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/external:I${NVBench_BINARY_DIR}/_deps") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/external:W0") - - # Suppress overly-pedantic/unavoidable warnings brought in with /W4: - # C4505: unreferenced local function has been removed - # The CUDA `host_runtime.h` header emits this for - # `__cudaUnregisterBinaryUtil`. - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "/wd4505") -else() - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wall") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wextra") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wconversion") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Woverloaded-virtual") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wcast-qual") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wpointer-arith") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wunused-local-typedef") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wunused-parameter") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wvla") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wgnu") - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Wno-gnu-line-marker") # WAR 3916341 - - if (NVBench_ENABLE_WERROR) - nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Werror") - endif() +if (NVBench_ENABLE_WERROR) + nvbench_add_cxx_flag(nvbench.build_interface INTERFACE "-Werror") endif() # Experimental filesystem library @@ -76,11 +58,6 @@ endif() if (CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") # fmtlib uses llvm's _BitInt internally, which is not available when compiling through nvcc: target_compile_definitions(nvbench.build_interface INTERFACE "FMT_USE_BITINT=0") - - # NVCC + MSVC does not support unicode execution encoding, disable usages of utf-8 in fmt: - if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - target_compile_definitions(nvbench.build_interface INTERFACE "FMT_UNICODE=0") - endif() endif() target_compile_options(nvbench.build_interface INTERFACE @@ -99,6 +76,5 @@ function(nvbench_config_target target_name) ARCHIVE_OUTPUT_DIRECTORY "${NVBench_LIBRARY_OUTPUT_DIR}" LIBRARY_OUTPUT_DIRECTORY "${NVBench_LIBRARY_OUTPUT_DIR}" RUNTIME_OUTPUT_DIRECTORY "${NVBench_EXECUTABLE_OUTPUT_DIR}" - WINDOWS_EXPORT_ALL_SYMBOLS ON # oooo pretty hammer... ) endfunction() diff --git a/cmake/NVBenchDependentDlls.cmake b/cmake/NVBenchDependentDlls.cmake deleted file mode 100644 index 1a51c87..0000000 --- a/cmake/NVBenchDependentDlls.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# By default, add dependent DLLs to the build dir on MSVC. This avoids -# a variety of runtime issues when using NVML, etc. -# This behavior can be disabled using the following options: -if (WIN32) - option(NVBench_ADD_DEPENDENT_DLLS_TO_BUILD - "Copy dependent dlls to NVBench library build location (MSVC only)." - ON - ) -else() - # These are forced off for non-MSVC builds, as $ - # will always be empty on non-dll platforms. - set(NVBench_ADD_DEPENDENT_DLLS_TO_BUILD OFF) -endif() - -function(nvbench_setup_dep_dlls target_name) - # The custom command below fails when there aren't any runtime DLLs to copy, - # so only enable it when a relevant dependency is enabled: - if (NVBench_ADD_DEPENDENT_DLLS_TO_BUILD AND - (NVBench_ENABLE_NVML OR - NVBench_ENABLE_CUPTI)) - add_custom_command(TARGET ${target_name} - POST_BUILD - COMMAND - "${CMAKE_COMMAND}" -E copy - "$" - "$" - COMMAND_EXPAND_LISTS - ) - endif() -endfunction() diff --git a/cmake/NVBenchNVML.cmake b/cmake/NVBenchNVML.cmake index 4b005f3..2413b73 100644 --- a/cmake/NVBenchNVML.cmake +++ b/cmake/NVBenchNVML.cmake @@ -4,40 +4,4 @@ if (NOT TARGET CUDA::toolkit) find_package(CUDAToolkit REQUIRED) endif() -if (WIN32) - # The CUDA:: targets currently don't provide dll locations through the - # `IMPORTED_LOCATION` property, nor are they marked as `SHARED` libraries - # (they're currently `UNKNOWN`). This prevents the `nvbench_setup_dep_dlls` - # CMake function from copying the dlls to the build / install directories. - # This is discussed in https://gitlab.kitware.com/cmake/cmake/-/issues/22845 - # and the other CMake issues it links to. - # - # We create a nvbench-specific target that configures the nvml interface as - # described here: - # https://gitlab.kitware.com/cmake/cmake/-/issues/22845#note_1077538 - # - # Use find_file instead of find_library, which would search for a .lib file. - # This is also nice because find_file searches recursively (find_library - # does not) and some versions of CTK nest nvml.dll several directories deep - # under C:\Windows\System32. - find_file(NVBench_NVML_DLL nvml.dll - DOC "The full path to nvml.dll. Usually somewhere under C:/Windows/System32." - PATHS "C:/Windows/System32" - ) - mark_as_advanced(NVBench_NVML_DLL) -endif() - -if (NVBench_NVML_DLL) - add_library(nvbench::nvml SHARED IMPORTED) - target_link_libraries(nvbench::nvml INTERFACE CUDA::toolkit) - set_target_properties(nvbench::nvml PROPERTIES - IMPORTED_LOCATION "${NVBench_NVML_DLL}" - IMPORTED_IMPLIB "${CUDA_nvml_LIBRARY}" - ) -elseif(TARGET CUDA::nvml) - add_library(nvbench::nvml ALIAS CUDA::nvml) -else() - message(FATAL_ERROR "Could not find nvml.dll or CUDA::nvml target. " - "Set -DNVBench_ENABLE_NVML=OFF to disable NVML support " - "or set -DNVBench_NVML_DLL to the full path to nvml.dll on Windows.") -endif() +add_library(nvbench::nvml ALIAS CUDA::nvml) diff --git a/cmake/header_test.in.cxx b/cmake/header_test.in.cxx index c26753e..8772c83 100644 --- a/cmake/header_test.in.cxx +++ b/cmake/header_test.in.cxx @@ -16,26 +16,14 @@ // Use raw platform checks instead of the NVBench_HOST_COMPILER macros since we // don't want to #include any headers other than the one being tested. // -// This is only implemented for MSVC/GCC/Clang. -#if defined(_MSC_VER) // MSVC - -// Fake up an error for MSVC -#define NVBench_MACRO_CHECK_IMPL(msg) \ - /* Print message that looks like an error: */ \ - __pragma(message(__FILE__ ":" NVBench_MACRO_CHECK_IMPL0(__LINE__) \ - ": error: " #msg)) \ - /* abort compilation due to static_assert or syntax error: */ \ - static_assert(false, #msg); -#define NVBench_MACRO_CHECK_IMPL0(x) NVBench_MACRO_CHECK_IMPL1(x) -#define NVBench_MACRO_CHECK_IMPL1(x) #x - -#elif defined(__clang__) || defined(__GNUC__) +// This is only implemented for GCC/Clang. +#if defined(__clang__) || defined(__GNUC__) // GCC/clang are easy: #define NVBench_MACRO_CHECK_IMPL(msg) NVBench_MACRO_CHECK_IMPL0(GCC error #msg) #define NVBench_MACRO_CHECK_IMPL0(expr) _Pragma(#expr) -#endif +#endif // defined(__clang__) || defined(__GNUC__) // complex.h conflicts #define I NVBench_MACRO_CHECK('I', complex.h) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a98bcbe..dc6e52b 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -39,30 +39,6 @@ function (nvbench_add_examples_target target_prefix cuda_std) add_dependencies(${target_prefix}.all ${example_name}) endforeach() - - # Silence some warnings from old thrust headers: - set(thrust_examples - auto_throughput - axes - custom_criterion - exec_tag_sync - exec_tag_timer - skip - stream - throughput - ) - foreach (example IN LISTS thrust_examples) - if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - # C4324: structure was padded due to alignment specifier - nvbench_add_cxx_flag(${target_prefix}.${example} PRIVATE "/wd4324") - - # warning C4201: nonstandard extension used: nameless struct/union: - # Fixed in Thrust 1.12.0 (CTK 11.4, NV HPC 21.3) - if (${CUDAToolkit_VERSION} VERSION_LESS 11.4) - nvbench_add_cxx_flag(${target_prefix}.${example} PRIVATE "/wd4201") - endif() - endif() - endforeach() endfunction() diff --git a/exec/CMakeLists.txt b/exec/CMakeLists.txt index a6a3eb5..775dccc 100644 --- a/exec/CMakeLists.txt +++ b/exec/CMakeLists.txt @@ -6,7 +6,6 @@ set_target_properties(nvbench.ctl PROPERTIES EXPORT_NAME ctl ) add_dependencies(nvbench.all nvbench.ctl) -nvbench_setup_dep_dlls(nvbench.ctl) nvbench_install_executables(nvbench.ctl) if (NVBench_ENABLE_TESTING) diff --git a/nvbench/CMakeLists.txt b/nvbench/CMakeLists.txt index 182843c..265fa99 100644 --- a/nvbench/CMakeLists.txt +++ b/nvbench/CMakeLists.txt @@ -117,7 +117,6 @@ add_dependencies(nvbench.all nvbench.main) add_library(nvbench::nvbench ALIAS nvbench) add_library(nvbench::main ALIAS nvbench.main) -nvbench_setup_dep_dlls(nvbench) nvbench_install_libraries(nvbench nvbench.main nvbench.build_interface) # nvcc emits several unavoidable warnings while compiling nlohmann_json: diff --git a/nvbench/config.cuh.in b/nvbench/config.cuh.in index 3ac45fb..68eba6f 100644 --- a/nvbench/config.cuh.in +++ b/nvbench/config.cuh.in @@ -24,21 +24,7 @@ // Defined if NVBench has been built with CUPTI support. #cmakedefine NVBENCH_HAS_CUPTI -#ifdef _MSC_VER -#define NVBENCH_MSVC_PUSH_DISABLE_WARNING(code) \ - __pragma(warning(push)) __pragma(warning(disable : code)) -#define NVBENCH_MSVC_POP_WARNING() __pragma(warning(pop)) -#else -#define NVBENCH_MSVC_PUSH_DISABLE_WARNING(code) -#define NVBENCH_MSVC_POP_WARNING() -#endif - -// MSVC does not define __cplusplus correctly. _MSVC_LANG is used instead. -#ifdef _MSVC_LANG -#define NVBENCH_CPLUSPLUS _MSVC_LANG -#else #define NVBENCH_CPLUSPLUS __cplusplus -#endif // Detect current dialect: #if NVBENCH_CPLUSPLUS < 201703L diff --git a/nvbench/csv_printer.cu b/nvbench/csv_printer.cu index a0a906e..a0db080 100644 --- a/nvbench/csv_printer.cu +++ b/nvbench/csv_printer.cu @@ -45,12 +45,9 @@ void csv_printer::do_print_benchmark_results(const benchmark_vector &benches) return v; } - // warning C4702: unreachable code // This is a future-proofing fallback that's currently unused. - NVBENCH_MSVC_PUSH_DISABLE_WARNING(4702) return fmt::format("{}", v); }; - NVBENCH_MSVC_POP_WARNING() // Prepare table: nvbench::internal::table_builder table; diff --git a/nvbench/detail/state_exec.cuh b/nvbench/detail/state_exec.cuh index bab2daf..b87f487 100644 --- a/nvbench/detail/state_exec.cuh +++ b/nvbench/detail/state_exec.cuh @@ -39,11 +39,6 @@ namespace nvbench { -// warning C4702: unreachable code -// Several spurious instances in this function. MSVC 2019 seems to forget that -// sometimes the constexpr branch /isn't/ taken. -NVBENCH_MSVC_PUSH_DISABLE_WARNING(4702) - template void state::exec(ExecTags tags, KernelLauncher &&kernel_launcher) { @@ -150,6 +145,4 @@ void state::exec(ExecTags tags, KernelLauncher &&kernel_launcher) } } -NVBENCH_MSVC_POP_WARNING() - } // namespace nvbench diff --git a/nvbench/markdown_printer.cu b/nvbench/markdown_printer.cu index 6b892a8..a1e8b1d 100644 --- a/nvbench/markdown_printer.cu +++ b/nvbench/markdown_printer.cu @@ -213,12 +213,9 @@ void markdown_printer::do_print_benchmark_results(const printer_base::benchmark_ return v; } - // warning C4702: unreachable code // This is a future-proofing fallback that's currently unused. - NVBENCH_MSVC_PUSH_DISABLE_WARNING(4702) return fmt::format("{}", v); }; - NVBENCH_MSVC_POP_WARNING() // Start printing benchmarks fmt::memory_buffer buffer; @@ -342,12 +339,9 @@ std::string markdown_printer::do_format_default(const summary &data) return v; } - // warning C4702: unreachable code // This is a future-proofing fallback that's currently unused. - NVBENCH_MSVC_PUSH_DISABLE_WARNING(4702) return fmt::format("{}", v); }; - NVBENCH_MSVC_POP_WARNING() return std::visit(format_visitor, data.get_value("value")); } diff --git a/nvbench/named_values.cxx b/nvbench/named_values.cxx index 605789e..e672301 100644 --- a/nvbench/named_values.cxx +++ b/nvbench/named_values.cxx @@ -88,13 +88,10 @@ named_values::type named_values::get_type(const std::string &name) const { return nvbench::named_values::type::string; } - // warning C4702: unreachable code // This is a future-proofing check, it'll be reachable if something breaks - NVBENCH_MSVC_PUSH_DISABLE_WARNING(4702) NVBENCH_THROW(std::runtime_error, "Unknown variant type for entry '{}'.", name); }, this->get_value(name)); - NVBENCH_MSVC_POP_WARNING() } nvbench::int64_t named_values::get_int64(const std::string &name) const diff --git a/testing/cmake/CMakeLists.txt b/testing/cmake/CMakeLists.txt index 6932c00..c4e4eb7 100644 --- a/testing/cmake/CMakeLists.txt +++ b/testing/cmake/CMakeLists.txt @@ -1,9 +1,3 @@ -if ("MSVC" STREQUAL "${CMAKE_CXX_COMPILER_ID}") - # There's a bug that prevents build-and-test from working on MSVC. - # See NVIDIA/nvbench#43. - return() -endif() - # Need to escape the semicolons in CUDA_ARCHITECTURES or the tests break: nvbench_escaped_cuda_arches(arches)