Skip to content

Commit 55985fe

Browse files
authored
Build and test with CUDA 13.0.0 (rapidsai#1273)
Contributes to rapidsai/build-planning#208 * uses CUDA 13.0.0 to build and test * adds CUDA 13 devcontainers * moves some dependency pins: - `cuda-python`: `>=12.9.2` (CUDA 12), `>=13.0.1` (CUDA 13) - `cupy`: `>=13.6.0` Contributes to rapidsai/build-planning#68 * updates to CUDA 13 dependencies in fallback entries in `dependencies.yaml` matrices (i.e., the ones that get written to `pyproject.toml` in source control) ## Notes for Reviewers This switches GitHub Actions workflows to the `cuda13.0` branch from here: rapidsai/shared-workflows#413 A future round of PRs will revert that back to `branch-25.10`, once all of RAPIDS supports CUDA 13. ### What about Go, Java, and Rust? This PR expands building / testing for those bindings to cover CUDA 13, but more changes probably need to be made to support distributing packages for those. Proposing deferring that to follow-ups: * rapidsai#1275 * rapidsai#1276 * rapidsai#1277 Authors: - James Lamb (https://github.com/jameslamb) - Jinsol Park (https://github.com/jinsolp) Approvers: - Mike Sarahan (https://github.com/msarahan) - MithunR (https://github.com/mythrocks) - Ben Frederickson (https://github.com/benfred) - Divye Gala (https://github.com/divyegala) URL: rapidsai#1273
1 parent e02b7d1 commit 55985fe

35 files changed

Lines changed: 708 additions & 118 deletions
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"build": {
3+
"context": "${localWorkspaceFolder}/.devcontainer",
4+
"dockerfile": "${localWorkspaceFolder}/.devcontainer/Dockerfile",
5+
"args": {
6+
"CUDA": "13.0",
7+
"PYTHON_PACKAGE_MANAGER": "conda",
8+
"BASE": "rapidsai/devcontainers:25.10-cpp-mambaforge"
9+
}
10+
},
11+
"runArgs": [
12+
"--rm",
13+
"--name",
14+
"${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.10-cuda13.0-conda",
15+
"--ulimit",
16+
"nofile=500000"
17+
],
18+
"hostRequirements": {"gpu": "optional"},
19+
"features": {
20+
"ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.10": {}
21+
},
22+
"overrideFeatureInstallOrder": [
23+
"ghcr.io/rapidsai/devcontainers/features/rapids-build-utils"
24+
],
25+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.0-envs}"],
26+
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; . rapids-post-attach-command; fi"],
27+
"workspaceFolder": "/home/coder",
28+
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/cuvs,type=bind,consistency=consistent",
29+
"mounts": [
30+
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
31+
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
32+
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",
33+
"source=${localWorkspaceFolder}/../.conda/pkgs,target=/home/coder/.conda/pkgs,type=bind,consistency=consistent",
34+
"source=${localWorkspaceFolder}/../.conda/${localWorkspaceFolderBasename}-cuda13.0-envs,target=/home/coder/.conda/envs,type=bind,consistency=consistent"
35+
],
36+
"customizations": {
37+
"vscode": {
38+
"extensions": [
39+
"ms-python.flake8",
40+
"nvidia.nsight-vscode-edition"
41+
]
42+
}
43+
}
44+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"build": {
3+
"context": "${localWorkspaceFolder}/.devcontainer",
4+
"dockerfile": "${localWorkspaceFolder}/.devcontainer/Dockerfile",
5+
"args": {
6+
"CUDA": "13.0",
7+
"PYTHON_PACKAGE_MANAGER": "pip",
8+
"BASE": "rapidsai/devcontainers:25.10-cpp-cuda13.0-ucx1.19.0-openmpi5.0.7"
9+
}
10+
},
11+
"runArgs": [
12+
"--rm",
13+
"--name",
14+
"${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.10-cuda13.0-pip",
15+
"--ulimit",
16+
"nofile=500000"
17+
],
18+
"hostRequirements": {"gpu": "optional"},
19+
"features": {
20+
"ghcr.io/rapidsai/devcontainers/features/cuda:25.10": {
21+
"version": "13.0",
22+
"installcuBLAS": true,
23+
"installcuSOLVER": true,
24+
"installcuRAND": true,
25+
"installcuSPARSE": true
26+
},
27+
"ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.10": {}
28+
},
29+
"overrideFeatureInstallOrder": [
30+
"ghcr.io/rapidsai/devcontainers/features/ucx",
31+
"ghcr.io/rapidsai/devcontainers/features/cuda",
32+
"ghcr.io/rapidsai/devcontainers/features/rapids-build-utils"
33+
],
34+
"initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.0-venvs}"],
35+
"postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; . rapids-post-attach-command; fi"],
36+
"workspaceFolder": "/home/coder",
37+
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/cuvs,type=bind,consistency=consistent",
38+
"mounts": [
39+
"source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
40+
"source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
41+
"source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent",
42+
"source=${localWorkspaceFolder}/../.local/share/${localWorkspaceFolderBasename}-cuda13.0-venvs,target=/home/coder/.local/share/venvs,type=bind,consistency=consistent"
43+
],
44+
"customizations": {
45+
"vscode": {
46+
"extensions": [
47+
"ms-python.flake8",
48+
"nvidia.nsight-vscode-edition"
49+
]
50+
}
51+
}
52+
}

.github/workflows/build.yaml

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ concurrency:
3434
jobs:
3535
cpp-build:
3636
secrets: inherit
37-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.10
37+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@cuda13.0
3838
with:
3939
build_type: ${{ inputs.build_type || 'branch' }}
4040
branch: ${{ inputs.branch }}
@@ -44,46 +44,71 @@ jobs:
4444
rust-build:
4545
needs: cpp-build
4646
secrets: inherit
47-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10
47+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0
48+
# Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions.
49+
# If these jobs start producing artifacts, the names will have to differentiate between CUDA versions.
50+
strategy:
51+
fail-fast: false
52+
matrix:
53+
cuda_version:
54+
- '12.9.1'
55+
- '13.0.0'
4856
with:
4957
build_type: ${{ inputs.build_type || 'branch' }}
5058
branch: ${{ inputs.branch }}
5159
arch: "amd64"
5260
date: ${{ inputs.date }}
53-
container_image: "rapidsai/ci-conda:25.10-latest"
61+
container_image: "rapidsai/ci-conda:25.10-cuda${{ matrix.cuda_version }}-ubuntu24.04-py3.13"
5462
node_type: "gpu-l4-latest-1"
5563
script: "ci/build_rust.sh"
5664
sha: ${{ inputs.sha }}
5765
go-build:
5866
needs: cpp-build
5967
secrets: inherit
60-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10
68+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0
69+
# Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions.
70+
# If these jobs start producing artifacts, the names will have to differentiate between CUDA versions.
71+
strategy:
72+
fail-fast: false
73+
matrix:
74+
cuda_version:
75+
- '12.9.1'
76+
- '13.0.0'
6177
with:
6278
build_type: ${{ inputs.build_type || 'branch' }}
6379
branch: ${{ inputs.branch }}
6480
arch: "amd64"
6581
date: ${{ inputs.date }}
66-
container_image: "rapidsai/ci-conda:25.10-latest"
82+
container_image: "rapidsai/ci-conda:25.10-cuda${{ matrix.cuda_version }}-ubuntu24.04-py3.13"
6783
node_type: "gpu-l4-latest-1"
6884
script: "ci/build_go.sh"
6985
sha: ${{ inputs.sha }}
7086
java-build:
7187
needs: cpp-build
7288
secrets: inherit
73-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10
89+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0
90+
# Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions.
91+
# If these jobs start producing artifacts, the names will have to differentiate between CUDA versions.
92+
strategy:
93+
fail-fast: false
94+
matrix:
95+
cuda_version:
96+
- '12.9.1'
97+
- '13.0.0'
7498
with:
7599
build_type: ${{ inputs.build_type || 'branch' }}
76100
branch: ${{ inputs.branch }}
77101
arch: "amd64"
78102
date: ${{ inputs.date }}
79-
container_image: "rapidsai/ci-conda:25.10-latest"
103+
container_image: "rapidsai/ci-conda:25.10-cuda${{ matrix.cuda_version }}-ubuntu24.04-py3.13"
80104
script: "ci/build_java.sh"
105+
artifact-name: "cuvs-java-cuda${{ matrix.cuda_version }}"
81106
file_to_upload: "java/cuvs-java/target/"
82107
sha: ${{ inputs.sha }}
83108
python-build:
84109
needs: [cpp-build]
85110
secrets: inherit
86-
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.10
111+
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda13.0
87112
with:
88113
build_type: ${{ inputs.build_type || 'branch' }}
89114
branch: ${{ inputs.branch }}
@@ -93,7 +118,7 @@ jobs:
93118
upload-conda:
94119
needs: [cpp-build, python-build]
95120
secrets: inherit
96-
uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-25.10
121+
uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@cuda13.0
97122
with:
98123
build_type: ${{ inputs.build_type || 'branch' }}
99124
branch: ${{ inputs.branch }}
@@ -108,7 +133,7 @@ jobs:
108133
if: github.ref_type == 'branch'
109134
needs: python-build
110135
secrets: inherit
111-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10
136+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0
112137
with:
113138
arch: "amd64"
114139
branch: ${{ inputs.branch }}
@@ -120,7 +145,7 @@ jobs:
120145
sha: ${{ inputs.sha }}
121146
wheel-build-libcuvs:
122147
secrets: inherit
123-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10
148+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0
124149
with:
125150
build_type: ${{ inputs.build_type || 'branch' }}
126151
branch: ${{ inputs.branch }}
@@ -134,7 +159,7 @@ jobs:
134159
wheel-publish-libcuvs:
135160
needs: wheel-build-libcuvs
136161
secrets: inherit
137-
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.10
162+
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda13.0
138163
with:
139164
build_type: ${{ inputs.build_type || 'branch' }}
140165
branch: ${{ inputs.branch }}
@@ -145,7 +170,7 @@ jobs:
145170
wheel-build-cuvs:
146171
needs: wheel-build-libcuvs
147172
secrets: inherit
148-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10
173+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0
149174
with:
150175
build_type: ${{ inputs.build_type || 'branch' }}
151176
branch: ${{ inputs.branch }}
@@ -157,7 +182,7 @@ jobs:
157182
wheel-publish-cuvs:
158183
needs: wheel-build-cuvs
159184
secrets: inherit
160-
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.10
185+
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda13.0
161186
with:
162187
build_type: ${{ inputs.build_type || 'branch' }}
163188
branch: ${{ inputs.branch }}

0 commit comments

Comments
 (0)