Skip to content

Commit b1e5230

Browse files
committed
build wheels with CUDA 13.0.x, test wheels against mix of CTK versions
1 parent 9b364dd commit b1e5230

File tree

9 files changed

+125
-6
lines changed

9 files changed

+125
-6
lines changed

.github/workflows/build.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
sha: ${{ inputs.sha }}
8181
wheel-build-libucxx:
8282
secrets: inherit
83-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14
83+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk
8484
with:
8585
build_type: ${{ inputs.build_type || 'branch' }}
8686
branch: ${{ inputs.branch }}
@@ -106,7 +106,7 @@ jobs:
106106
wheel-build-ucxx:
107107
needs: wheel-build-libucxx
108108
secrets: inherit
109-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14
109+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk
110110
with:
111111
build_type: ${{ inputs.build_type || 'branch' }}
112112
branch: ${{ inputs.branch }}
@@ -132,7 +132,7 @@ jobs:
132132
publish-wheel-search-key: ucxx_wheel_python_abi3
133133
wheel-build-distributed-ucxx:
134134
secrets: inherit
135-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14
135+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk
136136
with:
137137
build_type: ${{ inputs.build_type || 'branch' }}
138138
branch: ${{ inputs.branch }}

.github/workflows/pr.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ jobs:
211211
wheel-build-libucxx:
212212
needs: checks
213213
secrets: inherit
214-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14
214+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk
215215
with:
216216
build_type: pull-request
217217
node_type: cpu8
@@ -223,7 +223,7 @@ jobs:
223223
wheel-build-ucxx:
224224
needs: wheel-build-libucxx
225225
secrets: inherit
226-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14
226+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk
227227
with:
228228
build_type: pull-request
229229
node_type: cpu8
@@ -244,7 +244,7 @@ jobs:
244244
wheel-build-distributed-ucxx:
245245
needs: checks
246246
secrets: inherit
247-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14
247+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk
248248
with:
249249
build_type: pull-request
250250
node_type: cpu8

ci/build_wheel_distributed_ucxx.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ set -euo pipefail
66

77
source rapids-init-pip
88

9+
# TODO(jameslamb): revert before merging
10+
source ci/use_wheels_from_prs.sh
11+
912
package_dir="python/distributed-ucxx"
1013

1114
./ci/build_wheel.sh distributed-ucxx "${package_dir}"

ci/build_wheel_libucxx.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ set -euo pipefail
66

77
source rapids-init-pip
88

9+
# TODO(jameslamb): revert before merging
10+
source ci/use_wheels_from_prs.sh
11+
912
package_name="libucxx"
1013
package_dir="python/libucxx"
1114

ci/build_wheel_ucxx.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ set -euo pipefail
66

77
source rapids-init-pip
88

9+
# TODO(jameslamb): revert before merging
10+
source ci/use_wheels_from_prs.sh
11+
912
package_name="ucxx"
1013
package_dir="python/ucxx"
1114

ci/test_wheel_distributed_ucxx.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@
44

55
set -euo pipefail
66

7+
# TODO(jameslamb): revert before merging
8+
git clone --branch generate-pip-constraints \
9+
https://github.com/rapidsai/gha-tools.git \
10+
/tmp/gha-tools
11+
12+
export PATH="/tmp/gha-tools/tools:${PATH}"
13+
714
source rapids-init-pip
815

16+
source ci/use_wheels_from_prs.sh
17+
918
package_name="distributed_ucxx"
1019

1120
source "$(dirname "$0")/test_common.sh"
@@ -16,8 +25,19 @@ distributed_ucxx_wheelhouse=$(rapids-download-from-github "$(rapids-package-name
1625
ucxx_wheelhouse=$(rapids-download-from-github "$(rapids-package-name "wheel_python" ucxx --stable --cuda "$RAPIDS_CUDA_VERSION")")
1726
libucxx_wheelhouse=$(RAPIDS_PY_WHEEL_NAME="libucxx_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
1827

28+
# generate constraints (possibly pinning to oldest support versions of dependencies)
29+
rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"
30+
31+
# notes:
32+
#
33+
# * echo to expand wildcard before adding `[test]` requires for pip
34+
# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because
35+
# that environment variable is ignored if any other --constraint are passed via the CLI
36+
#
1937
rapids-pip-retry install \
2038
-v \
39+
--prefer-binary \
40+
--constraint "${PIP_CONSTRAINT}" \
2141
"${libucxx_wheelhouse}/libucxx_${RAPIDS_PY_CUDA_SUFFIX}"*.whl \
2242
"${ucxx_wheelhouse}/ucxx_${RAPIDS_PY_CUDA_SUFFIX}"*.whl \
2343
"$(echo "${distributed_ucxx_wheelhouse}"/"${package_name}_${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]"

ci/test_wheel_ucxx.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@
44

55
set -euo pipefail
66

7+
# TODO(jameslamb): revert before merging
8+
git clone --branch generate-pip-constraints \
9+
https://github.com/rapidsai/gha-tools.git \
10+
/tmp/gha-tools
11+
12+
export PATH="/tmp/gha-tools/tools:${PATH}"
13+
714
source rapids-init-pip
815

16+
source ci/use_wheels_from_prs.sh
17+
918
package_name="ucxx"
1019

1120
source "$(dirname "$0")/test_common.sh"
@@ -17,8 +26,19 @@ RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
1726
libucxx_wheelhouse=$(RAPIDS_PY_WHEEL_NAME="libucxx_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
1827
ucxx_wheelhouse=$(rapids-download-from-github "$(rapids-package-name "wheel_python" ucxx --stable --cuda "$RAPIDS_CUDA_VERSION")")
1928

29+
# generate constraints (possibly pinning to oldest support versions of dependencies)
30+
rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"
31+
32+
# notes:
33+
#
34+
# * echo to expand wildcard before adding `[test]` requires for pip
35+
# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because
36+
# that environment variable is ignored if any other --constraint are passed via the CLI
37+
#
2038
rapids-pip-retry install \
2139
-v \
40+
--prefer-binary \
41+
--constraint "${PIP_CONSTRAINT}" \
2242
"${libucxx_wheelhouse}/libucxx_${RAPIDS_PY_CUDA_SUFFIX}"*.whl \
2343
"$(echo "${ucxx_wheelhouse}"/"${package_name}_${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]"
2444

ci/use_wheels_from_prs.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION.
3+
# SPDX-License-Identifier: BSD-3-Clause
4+
5+
# initialize PIP_CONSTRAINT
6+
source rapids-init-pip
7+
8+
RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")
9+
10+
# download wheels, store the directories holding them in variables
11+
RMM_COMMIT=af96977c404565bbb0657c490d407a561cedc3fc
12+
LIBRMM_WHEELHOUSE=$(
13+
RAPIDS_PY_WHEEL_NAME="librmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact rmm 2270 cpp wheel "${RMM_COMMIT}"
14+
)
15+
RMM_WHEELHOUSE=$(
16+
rapids-get-pr-artifact rmm 2270 python wheel --pkg_name rmm --stable "${RMM_COMMIT}"
17+
)
18+
19+
# write a pip constraints file saying e.g. "whenever you encounter a requirement for 'librmm-cu12', use this wheel"
20+
cat >> "${PIP_CONSTRAINT}" <<EOF
21+
librmm-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo "${LIBRMM_WHEELHOUSE}"/librmm*.whl)
22+
rmm-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo "${RMM_WHEELHOUSE}"/rmm_*.whl)
23+
EOF

dependencies.yaml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ dependencies:
205205
- output_types: [conda, requirements]
206206
packages:
207207
- pre-commit
208+
# 'cuda_version' intentionally does not contain fallback entries... we want
209+
# a loud error if an unsupported 'cuda' value is passed
208210
cuda_version:
209211
specific:
210212
- output_types: conda
@@ -233,6 +235,51 @@ dependencies:
233235
cuda: "13.1"
234236
packages:
235237
- cuda-version=13.1
238+
- output_types: requirements
239+
matrices:
240+
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
241+
# (e.g. for DLFW and pip devcontainers)
242+
- matrix:
243+
use_cuda_wheels: "false"
244+
packages:
245+
- matrix:
246+
arch: aarch64
247+
cuda: "12.2"
248+
use_cuda_wheels: "true"
249+
packages:
250+
# nvidia-cublas-cu12 didn't get aarch64 wheels until CTK 12.3, so allow a slightly
251+
# looser bound here
252+
- cuda-toolkit>=12.2,<=12.3
253+
- matrix:
254+
cuda: "12.2"
255+
use_cuda_wheels: "true"
256+
packages:
257+
- cuda-toolkit==12.2.*
258+
- matrix:
259+
cuda: "12.5"
260+
use_cuda_wheels: "true"
261+
packages:
262+
- cuda-toolkit==12.5.*
263+
- matrix:
264+
cuda: "12.8"
265+
use_cuda_wheels: "true"
266+
packages:
267+
- cuda-toolkit==12.8.*
268+
- matrix:
269+
cuda: "12.9"
270+
use_cuda_wheels: "true"
271+
packages:
272+
- cuda-toolkit==12.9.*
273+
- matrix:
274+
cuda: "13.0"
275+
use_cuda_wheels: "true"
276+
packages:
277+
- cuda-toolkit==13.0.*
278+
- matrix:
279+
cuda: "13.1"
280+
use_cuda_wheels: "true"
281+
packages:
282+
- cuda-toolkit==13.1.*
236283
cuda:
237284
common:
238285
- output_types: [conda]

0 commit comments

Comments
 (0)