Skip to content

Commit 94693e2

Browse files
authored
Add CUDA 13.0 support to CI matrix and devcontainers (#780)
Close #778 This PR adds CUDA 13.0 support to CI matrix and devcontainers.
1 parent b4e5eb2 commit 94693e2

File tree

8 files changed

+117
-24
lines changed

8 files changed

+117
-24
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"shutdownAction": "stopContainer",
3+
"image": "rapidsai/devcontainers:25.12-cpp-gcc13-cuda13.0-ubuntu24.04",
4+
"hostRequirements": {
5+
"gpu": true
6+
},
7+
"initializeCommand": [
8+
"/bin/bash",
9+
"-c",
10+
"mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}"
11+
],
12+
"containerEnv": {
13+
"SCCACHE_REGION": "us-east-2",
14+
"SCCACHE_BUCKET": "rapids-sccache-devs",
15+
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
16+
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
17+
"DEVCONTAINER_NAME": "cuda13.0-gcc13",
18+
"CUCO_CUDA_VERSION": "13.0",
19+
"CUCO_HOST_COMPILER": "gcc",
20+
"CUCO_HOST_COMPILER_VERSION": "13"
21+
},
22+
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
23+
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent",
24+
"mounts": [
25+
"source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
26+
"source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
27+
"source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent"
28+
],
29+
"customizations": {
30+
"vscode": {
31+
"extensions": [
32+
"llvm-vs-code-extensions.vscode-clangd"
33+
],
34+
"settings": {
35+
"clangd.arguments": [
36+
"--compile-commands-dir=${workspaceFolder}/build/latest"
37+
]
38+
}
39+
}
40+
},
41+
"name": "cuda13.0-gcc13"
42+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"shutdownAction": "stopContainer",
3+
"image": "rapidsai/devcontainers:25.12-cpp-llvm20-cuda13.0ext-ubuntu24.04",
4+
"hostRequirements": {
5+
"gpu": true
6+
},
7+
"initializeCommand": [
8+
"/bin/bash",
9+
"-c",
10+
"mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}"
11+
],
12+
"containerEnv": {
13+
"SCCACHE_REGION": "us-east-2",
14+
"SCCACHE_BUCKET": "rapids-sccache-devs",
15+
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
16+
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
17+
"DEVCONTAINER_NAME": "cuda13.0-llvm20",
18+
"CUCO_CUDA_VERSION": "13.0",
19+
"CUCO_HOST_COMPILER": "llvm",
20+
"CUCO_HOST_COMPILER_VERSION": "20"
21+
},
22+
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
23+
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent",
24+
"mounts": [
25+
"source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
26+
"source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
27+
"source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent"
28+
],
29+
"customizations": {
30+
"vscode": {
31+
"extensions": [
32+
"llvm-vs-code-extensions.vscode-clangd"
33+
],
34+
"settings": {
35+
"clangd.arguments": [
36+
"--compile-commands-dir=${workspaceFolder}/build/latest"
37+
]
38+
}
39+
}
40+
},
41+
"name": "cuda13.0-llvm20"
42+
}

.devcontainer/devcontainer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"shutdownAction": "stopContainer",
3-
"image": "rapidsai/devcontainers:25.12-cpp-gcc13-cuda12.9-ubuntu24.04",
3+
"image": "rapidsai/devcontainers:25.12-cpp-gcc13-cuda13.0-ubuntu24.04",
44
"hostRequirements": {
55
"gpu": true
66
},
@@ -14,8 +14,8 @@
1414
"SCCACHE_BUCKET": "rapids-sccache-devs",
1515
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
1616
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
17-
"DEVCONTAINER_NAME": "cuda12.9-gcc13",
18-
"CUCO_CUDA_VERSION": "12.9",
17+
"DEVCONTAINER_NAME": "cuda13.0-gcc13",
18+
"CUCO_CUDA_VERSION": "13.0",
1919
"CUCO_HOST_COMPILER": "gcc",
2020
"CUCO_HOST_COMPILER_VERSION": "13"
2121
},
@@ -38,5 +38,5 @@
3838
}
3939
}
4040
},
41-
"name": "cuda12.9-gcc13"
41+
"name": "cuda13.0-gcc13"
4242
}

.devcontainer/make_devcontainers.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ update_devcontainer() {
4545
local devcontainer_version="$8"
4646

4747
local IMAGE_ROOT="rapidsai/devcontainers:${devcontainer_version}-cpp-"
48-
local image="${IMAGE_ROOT}${compiler_name}${compiler_version}-cuda${cuda_version}-${os}"
48+
# Add 'ext' suffix only for LLVM compilers with CUDA 13.0
49+
local cuda_suffix=""
50+
if [[ "$cuda_version" == "13.0" && "$compiler_name" == "llvm" ]]; then
51+
cuda_suffix="ext"
52+
fi
53+
local image="${IMAGE_ROOT}${compiler_name}${compiler_version}-cuda${cuda_version}${cuda_suffix}-${os}"
4954

5055
jq --arg image "$image" --arg name "$name" \
5156
--arg cuda_version "$cuda_version" --arg compiler_name "$compiler_name" \

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ function(cuco_set_common_compile_options target_name)
116116
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
117117
target_compile_options(${target_name} PRIVATE -Xcompiler -Wno-subobject-linkage)
118118
endif()
119+
120+
# Add Clang-specific warning suppression for deprecated literal operators
121+
# (Catch2 and cuco code still use deprecated syntax)
122+
# Only for Clang 15+ which introduced this warning
123+
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15.0)
124+
target_compile_options(${target_name} PRIVATE -Xcompiler -Wno-deprecated-literal-operator)
125+
endif()
119126
endfunction()
120127

121128
###################################################################################################

benchmarks/benchmark_utils.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ template <class OutputIt>
5959
struct lazy_discard {
6060
OutputIt it;
6161

62-
using index_type = typename thrust::iterator_traits<OutputIt>::difference_type;
63-
using value_type = typename thrust::iterator_traits<OutputIt>::value_type;
62+
using index_type = typename cuda::std::iterator_traits<OutputIt>::difference_type;
63+
using value_type = typename cuda::std::iterator_traits<OutputIt>::value_type;
6464

6565
__device__ void device_dispatch(index_type index, value_type const& value) const
6666
{

ci/matrix.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
cuda_oldest: &cuda_oldest '12.0'
17-
cuda_newest: &cuda_newest '12.9'
16+
cuda_12_0: &cuda_12_0 '12.0'
17+
cuda_12_9: &cuda_12_9 '12.9'
18+
cuda_13_0: &cuda_13_0 '13.0'
1819

1920
# The GPUs to test on
2021
# Note: This assumes that the appropriate gpu_build_archs are set to include building for the GPUs listed here
@@ -42,8 +43,11 @@ devcontainer_version: '25.12'
4243
# Configurations that will run for every PR
4344
pull_request:
4445
nvcc:
45-
- {cuda: *cuda_oldest, os: 'ubuntu22.04', cpu: 'amd64', compiler: {name: 'gcc', version: '11', exe: 'g++'}, gpu_build_archs: '70', std: [17], jobs: ['build', 'test']}
46-
- {cuda: *cuda_newest, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'gcc', version: '13', exe: 'g++'}, gpu_build_archs: '70', std: [17], jobs: ['build', 'test']}
47-
- {cuda: *cuda_newest, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'gcc', version: '13', exe: 'g++'}, gpu_build_archs: '80,90', std: [17], jobs: ['build']}
48-
- {cuda: *cuda_oldest, os: 'ubuntu20.04', cpu: 'amd64', compiler: {name: 'llvm', version: '14', exe: 'clang++'}, gpu_build_archs: '70', std: [17], jobs: ['build']}
49-
- {cuda: *cuda_newest, os: 'ubuntu22.04', cpu: 'amd64', compiler: {name: 'llvm', version: '18', exe: 'clang++'}, gpu_build_archs: '90', std: [17], jobs: ['build']}
46+
- {cuda: *cuda_12_0, os: 'ubuntu22.04', cpu: 'amd64', compiler: {name: 'gcc', version: '11', exe: 'g++'}, gpu_build_archs: '70', std: [17], jobs: ['build', 'test']}
47+
- {cuda: *cuda_12_9, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'gcc', version: '13', exe: 'g++'}, gpu_build_archs: '70', std: [17], jobs: ['build', 'test']}
48+
- {cuda: *cuda_12_9, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'gcc', version: '13', exe: 'g++'}, gpu_build_archs: '80,90', std: [17], jobs: ['build']}
49+
- {cuda: *cuda_12_0, os: 'ubuntu20.04', cpu: 'amd64', compiler: {name: 'llvm', version: '14', exe: 'clang++'}, gpu_build_archs: '70', std: [17], jobs: ['build']}
50+
- {cuda: *cuda_12_9, os: 'ubuntu22.04', cpu: 'amd64', compiler: {name: 'llvm', version: '18', exe: 'clang++'}, gpu_build_archs: '90', std: [17], jobs: ['build']}
51+
- {cuda: *cuda_13_0, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'gcc', version: '13', exe: 'g++'}, gpu_build_archs: '80', std: [17], jobs: ['build']}
52+
- {cuda: *cuda_13_0, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'gcc', version: '13', exe: 'g++'}, gpu_build_archs: '80,90', std: [17], jobs: ['build']}
53+
- {cuda: *cuda_13_0, os: 'ubuntu24.04', cpu: 'amd64', compiler: {name: 'llvm', version: '20', exe: 'clang++'}, gpu_build_archs: '90', std: [17], jobs: ['build']}

cmake/header_testing.cmake

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,9 @@ function(cuco_add_header_tests)
6363
# Create executable test for this specific header
6464
add_executable(${headertest_target} ${header_src})
6565
target_link_libraries(${headertest_target} PRIVATE cuco::cuco CUDA::cudart)
66-
67-
target_compile_options(${headertest_target} PRIVATE
68-
$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>
69-
--compiler-options=-Wall --compiler-options=-Wextra
70-
--compiler-options=-Werror -Wno-deprecated-gpu-targets
71-
)
72-
73-
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
74-
target_compile_options(${headertest_target} PRIVATE -Xcompiler -Wno-subobject-linkage)
75-
endif()
66+
67+
# Use common compile options (includes all compiler-specific warning suppressions)
68+
cuco_set_common_compile_options(${headertest_target})
7669

7770
set_target_properties(${headertest_target} PROPERTIES
7871
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests/headers"

0 commit comments

Comments
 (0)