Skip to content

Commit 15e04b3

Browse files
authored
Merge pull request rapidsai#5472 from jameslamb/main-merge-release/26.04
Forward-merge release/26.04 into main
2 parents 7a8766f + 95ecbeb commit 15e04b3

7 files changed

Lines changed: 86 additions & 38 deletions

File tree

ci/test_wheel_cugraph.sh

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"
2222
CUDA_MAJOR=$(echo "${RAPIDS_CUDA_VERSION}" | cut -d'.' -f1)
2323
CUDA_MINOR=$(echo "${RAPIDS_CUDA_VERSION}" | cut -d'.' -f2)
2424
PIP_INSTALL_ARGS=()
25-
torch_downloaded=false
2625
if \
2726
{ [ "${CUDA_MAJOR}" -eq 12 ] && [ "${CUDA_MINOR}" -eq 9 ]; } \
2827
|| { [ "${CUDA_MAJOR}" -eq 13 ] && [ "${CUDA_MINOR}" -eq 0 ]; }; \
@@ -32,7 +31,6 @@ then
3231
TORCH_WHEEL_DIR="$(mktemp -d)"
3332
./ci/download-torch-wheels.sh "${TORCH_WHEEL_DIR}"
3433
PIP_INSTALL_ARGS+=("${TORCH_WHEEL_DIR}"/torch*.whl)
35-
torch_downloaded=true
3634
fi
3735

3836
# notes:
@@ -49,18 +47,4 @@ rapids-pip-retry install \
4947
"${LIBCUGRAPH_WHEELHOUSE}"/libcugraph*.whl \
5048
"${PIP_INSTALL_ARGS[@]}"
5149

52-
# TODO: remove this when RAPIDS wheels and 'torch' CUDA wheels have compatible package requirements
53-
#
54-
# * https://github.com/rapidsai/cugraph/issues/5443
55-
# * https://github.com/rapidsai/build-planning/issues/257
56-
# * https://github.com/rapidsai/build-planning/issues/255
57-
#
58-
CUDA_MAJOR="${RAPIDS_CUDA_VERSION%%.*}"
59-
CUDA_MINOR=$(echo "${RAPIDS_CUDA_VERSION}" | cut -d'.' -f2)
60-
if [[ "${CUDA_MAJOR}" == "13" ]] && [[ "${torch_downloaded}" == "true" ]]; then
61-
pip install \
62-
--upgrade \
63-
"nvidia-nvjitlink>=${CUDA_MAJOR}.${CUDA_MINOR}"
64-
fi
65-
6650
./ci/test_wheel.sh cugraph

ci/test_wheel_pylibcugraph.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,18 @@ RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
1111
PYLIBCUGRAPH_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel_python" pylibcugraph --stable --cuda "$RAPIDS_CUDA_VERSION")")
1212
LIBCUGRAPH_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcugraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)
1313

14-
# echo to expand wildcard before adding `[extra]` requires for pip
14+
# generate constraints (possibly pinning to oldest support versions of dependencies)
15+
rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"
16+
17+
# notes:
18+
#
19+
# * echo to expand wildcard before adding `[test]` requires for pip
20+
# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because
21+
# that environment variable is ignored if any other --constraint are passed via the CLI
22+
#
1523
rapids-pip-retry install \
24+
--prefer-binary \
25+
--constraint "${PIP_CONSTRAINT}" \
1626
"$(echo "${PYLIBCUGRAPH_WHEELHOUSE}"/pylibcugraph*.whl)[test]" \
1727
"${LIBCUGRAPH_WHEELHOUSE}"/libcugraph*.whl
1828

conda/recipes/libcugraph/recipe.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,6 @@ outputs:
130130
- libcurand
131131
- libcusolver
132132
- libcusparse
133-
- if: cuda_major == "13"
134-
then:
135-
- libnvjitlink
136133
ignore_run_exports:
137134
by_name:
138135
- cuda-nvtx
@@ -146,9 +143,6 @@ outputs:
146143
- libucxx
147144
- nccl
148145
- openmpi
149-
- if: cuda_major == "13"
150-
then:
151-
- libnvjitlink
152146
about:
153147
homepage: ${{ load_from_file("python/libcugraph/pyproject.toml").project.urls.Homepage }}
154148
license: ${{ load_from_file("python/libcugraph/pyproject.toml").project.license }}

dependencies.yaml

Lines changed: 70 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ dependencies:
220220
- output_types: [conda, requirements]
221221
packages:
222222
- pre-commit
223+
# 'cuda_version' intentionally does not contain fallback entries... we want
224+
# a loud error if an unsupported 'cuda' value is passed
223225
cuda_version:
224226
specific:
225227
- output_types: conda
@@ -248,6 +250,51 @@ dependencies:
248250
cuda: "13.1"
249251
packages:
250252
- cuda-version=13.1
253+
- output_types: requirements
254+
matrices:
255+
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
256+
# (e.g. for DLFW and pip devcontainers)
257+
- matrix:
258+
use_cuda_wheels: "false"
259+
packages:
260+
- matrix:
261+
arch: aarch64
262+
cuda: "12.2"
263+
use_cuda_wheels: "true"
264+
packages:
265+
# some components (like nvidia-cublas-cu12 and nvidia-cuda-nvcc-cu12) didn't have
266+
# aarch64 wheels until CTK 12.3, so allow a slightly looser bound here
267+
- cuda-toolkit>=12.2,<12.4
268+
- matrix:
269+
cuda: "12.2"
270+
use_cuda_wheels: "true"
271+
packages:
272+
- cuda-toolkit==12.2.*
273+
- matrix:
274+
cuda: "12.5"
275+
use_cuda_wheels: "true"
276+
packages:
277+
- cuda-toolkit==12.5.*
278+
- matrix:
279+
cuda: "12.8"
280+
use_cuda_wheels: "true"
281+
packages:
282+
- cuda-toolkit==12.8.*
283+
- matrix:
284+
cuda: "12.9"
285+
use_cuda_wheels: "true"
286+
packages:
287+
- cuda-toolkit==12.9.*
288+
- matrix:
289+
cuda: "13.0"
290+
use_cuda_wheels: "true"
291+
packages:
292+
- cuda-toolkit==13.0.*
293+
- matrix:
294+
cuda: "13.1"
295+
use_cuda_wheels: "true"
296+
packages:
297+
- cuda-toolkit==13.1.*
251298
cuda:
252299
common:
253300
- output_types: [conda]
@@ -270,28 +317,40 @@ dependencies:
270317
packages:
271318
cuda_wheels:
272319
specific:
273-
- output_types: [pyproject, requirements]
320+
# cuGraph needs 'nvJitLink>={whatever-cuvs-was-built-against}' at runtime, and mixing
321+
# old-CTK with new-nvJitLink is supported, so maintain 1 entry here per CUDA major.minor
322+
# cuVS is built against.
323+
#
324+
# nvJitLink has historically roughly followed the CTK's minor versioning scheme,
325+
# but check at https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
326+
- output_types: [requirements, pyproject]
274327
matrices:
328+
# skip this whole group if explicitly opting out of CUDA wheels
275329
- matrix:
276-
cuda: "12.*"
277-
use_cuda_wheels: "true"
330+
use_cuda_wheels: "false"
278331
packages:
279-
- cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]==12.*
332+
# We always want nvJitLink >= whatever minor version was available in the build environment
333+
# nvJitLink tends to follow the CTK's minor versions, but check at https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
334+
#
335+
# ref: https://github.com/rapidsai/cudf/pull/20873
280336
- matrix:
281-
cuda: "13.*"
337+
cuda: "12.9"
282338
use_cuda_wheels: "true"
283339
packages:
284-
- cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]==13.*
285-
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
286-
# (e.g. for DLFW and pip devcontainers)
340+
- cuda-toolkit[cublas,curand,cusolver,cusparse]==12.*
341+
- nvidia-nvjitlink-cu12>=12.9,<13
287342
- matrix:
288-
use_cuda_wheels: "false"
343+
cuda: "13.*"
344+
use_cuda_wheels: "true"
289345
packages:
290-
# if no matching matrix selectors passed, list the unsuffixed packages
346+
- &ctk_cu13 cuda-toolkit[cublas,curand,cusolver,cusparse]==13.*
347+
- &nvjitlink_cu13 nvidia-nvjitlink>=13.0,<14
348+
# if no matching matrix selectors passed, list the CUDA 13 requirement
291349
# (just as a source of documentation, as this populates pyproject.toml in source control)
292350
- matrix:
293351
packages:
294-
- cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]>=12,<14
352+
- *ctk_cu13
353+
- *nvjitlink_cu13
295354
common_build:
296355
common:
297356
- output_types: [conda, requirements, pyproject]

python/cugraph/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ requires = [
9999
"rmm==26.6.*,>=0.0.0a0",
100100
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
101101
dependencies-file = "../../dependencies.yaml"
102-
matrix-entry = "cuda_suffixed=true"
102+
matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"
103103

104104
[tool.pydistcheck]
105105
select = [

python/libcugraph/pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ classifiers = [
2626
"Environment :: GPU :: NVIDIA CUDA",
2727
]
2828
dependencies = [
29-
"cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]>=12,<14",
29+
"cuda-toolkit[cublas,curand,cusolver,cusparse]==13.*",
3030
"libraft==26.6.*,>=0.0.0a0",
3131
"librmm==26.6.*,>=0.0.0a0",
32+
"nvidia-nvjitlink>=13.0,<14",
3233
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
3334

3435
[project.urls]
@@ -62,7 +63,7 @@ regex = "(?P<value>.*)"
6263
[tool.rapids-build-backend]
6364
build-backend = "scikit_build_core.build"
6465
dependencies-file = "../../dependencies.yaml"
65-
matrix-entry = "cuda_suffixed=true"
66+
matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"
6667
requires = [
6768
"cmake>=3.30.4",
6869
"libraft==26.6.*,>=0.0.0a0",

python/pylibcugraph/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ requires = [
8282
"pylibraft==26.6.*,>=0.0.0a0",
8383
"rmm==26.6.*,>=0.0.0a0",
8484
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
85-
matrix-entry = "cuda_suffixed=true"
85+
matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"
8686

8787
[tool.pydistcheck]
8888
select = [

0 commit comments

Comments
 (0)