Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions ci/test_wheel_cugraph.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"
CUDA_MAJOR=$(echo "${RAPIDS_CUDA_VERSION}" | cut -d'.' -f1)
CUDA_MINOR=$(echo "${RAPIDS_CUDA_VERSION}" | cut -d'.' -f2)
PIP_INSTALL_ARGS=()
torch_downloaded=false
if \
{ [ "${CUDA_MAJOR}" -eq 12 ] && [ "${CUDA_MINOR}" -eq 9 ]; } \
|| { [ "${CUDA_MAJOR}" -eq 13 ] && [ "${CUDA_MINOR}" -eq 0 ]; }; \
Expand All @@ -32,7 +31,6 @@ then
TORCH_WHEEL_DIR="$(mktemp -d)"
./ci/download-torch-wheels.sh "${TORCH_WHEEL_DIR}"
PIP_INSTALL_ARGS+=("${TORCH_WHEEL_DIR}"/torch*.whl)
torch_downloaded=true
fi

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

# TODO: remove this when RAPIDS wheels and 'torch' CUDA wheels have compatible package requirements
#
# * https://github.com/rapidsai/cugraph/issues/5443
# * https://github.com/rapidsai/build-planning/issues/257
# * https://github.com/rapidsai/build-planning/issues/255
#
CUDA_MAJOR="${RAPIDS_CUDA_VERSION%%.*}"
CUDA_MINOR=$(echo "${RAPIDS_CUDA_VERSION}" | cut -d'.' -f2)
if [[ "${CUDA_MAJOR}" == "13" ]] && [[ "${torch_downloaded}" == "true" ]]; then
pip install \
--upgrade \
"nvidia-nvjitlink>=${CUDA_MAJOR}.${CUDA_MINOR}"
fi

./ci/test_wheel.sh cugraph
12 changes: 11 additions & 1 deletion ci/test_wheel_pylibcugraph.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,18 @@ RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")"
PYLIBCUGRAPH_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel_python" pylibcugraph --stable --cuda "$RAPIDS_CUDA_VERSION")")
LIBCUGRAPH_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcugraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp)

# echo to expand wildcard before adding `[extra]` requires for pip
# generate constraints (possibly pinning to oldest support versions of dependencies)
rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}"

# notes:
#
# * echo to expand wildcard before adding `[test]` requires for pip
# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because
# that environment variable is ignored if any other --constraint are passed via the CLI
#
rapids-pip-retry install \
--prefer-binary \
--constraint "${PIP_CONSTRAINT}" \
"$(echo "${PYLIBCUGRAPH_WHEELHOUSE}"/pylibcugraph*.whl)[test]" \
"${LIBCUGRAPH_WHEELHOUSE}"/libcugraph*.whl

Expand Down
6 changes: 0 additions & 6 deletions conda/recipes/libcugraph/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,6 @@ outputs:
- libcurand
- libcusolver
- libcusparse
- if: cuda_major == "13"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relying on the libnvjitlink-dev run_exports to get the right runtime pin for libnvjitlink.

See rapidsai/cudf#21671 (comment)

then:
- libnvjitlink
ignore_run_exports:
by_name:
- cuda-nvtx
Expand All @@ -146,9 +143,6 @@ outputs:
- libucxx
- nccl
- openmpi
- if: cuda_major == "13"
then:
- libnvjitlink
about:
homepage: ${{ load_from_file("python/libcugraph/pyproject.toml").project.urls.Homepage }}
license: ${{ load_from_file("python/libcugraph/pyproject.toml").project.license }}
Expand Down
81 changes: 70 additions & 11 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,8 @@ dependencies:
- output_types: [conda, requirements]
packages:
- pre-commit
# 'cuda_version' intentionally does not contain fallback entries... we want
# a loud error if an unsupported 'cuda' value is passed
cuda_version:
specific:
- output_types: conda
Expand Down Expand Up @@ -248,6 +250,51 @@ dependencies:
cuda: "13.1"
packages:
- cuda-version=13.1
- output_types: requirements
matrices:
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
# (e.g. for DLFW and pip devcontainers)
- matrix:
use_cuda_wheels: "false"
packages:
- matrix:
arch: aarch64
cuda: "12.2"
use_cuda_wheels: "true"
packages:
# some components (like nvidia-cublas-cu12 and nvidia-cuda-nvcc-cu12) didn't have
# aarch64 wheels until CTK 12.3, so allow a slightly looser bound here
- cuda-toolkit>=12.2,<12.4
- matrix:
cuda: "12.2"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.2.*
- matrix:
cuda: "12.5"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.5.*
- matrix:
cuda: "12.8"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.8.*
- matrix:
cuda: "12.9"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==12.9.*
- matrix:
cuda: "13.0"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==13.0.*
- matrix:
cuda: "13.1"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==13.1.*
cuda:
common:
- output_types: [conda]
Expand All @@ -270,28 +317,40 @@ dependencies:
packages:
cuda_wheels:
specific:
- output_types: [pyproject, requirements]
# cuGraph needs 'nvJitLink>={whatever-cuvs-was-built-against}' at runtime, and mixing
# old-CTK with new-nvJitLink is supported, so maintain 1 entry here per CUDA major.minor
# cuVS is built against.
#
# nvJitLink has historically roughly followed the CTK's minor versioning scheme,
# but check at https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
- output_types: [requirements, pyproject]
matrices:
# skip this whole group if explicitly opting out of CUDA wheels
- matrix:
cuda: "12.*"
use_cuda_wheels: "true"
use_cuda_wheels: "false"
packages:
- cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]==12.*
# We always want nvJitLink >= whatever minor version was available in the build environment
# nvJitLink tends to follow the CTK's minor versions, but check at https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
#
# ref: https://github.com/rapidsai/cudf/pull/20873
- matrix:
cuda: "13.*"
cuda: "12.9"
use_cuda_wheels: "true"
packages:
- cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]==13.*
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
# (e.g. for DLFW and pip devcontainers)
- cuda-toolkit[cublas,curand,cusolver,cusparse]==12.*
- nvidia-nvjitlink-cu12>=12.9,<13
- matrix:
use_cuda_wheels: "false"
cuda: "13.*"
use_cuda_wheels: "true"
packages:
# if no matching matrix selectors passed, list the unsuffixed packages
- &ctk_cu13 cuda-toolkit[cublas,curand,cusolver,cusparse]==13.*
- &nvjitlink_cu13 nvidia-nvjitlink>=13.0,<14
# if no matching matrix selectors passed, list the CUDA 13 requirement
# (just as a source of documentation, as this populates pyproject.toml in source control)
- matrix:
packages:
- cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]>=12,<14
- *ctk_cu13
- *nvjitlink_cu13
common_build:
common:
- output_types: [conda, requirements, pyproject]
Expand Down
2 changes: 1 addition & 1 deletion python/cugraph/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ requires = [
"rmm==26.4.*,>=0.0.0a0",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
dependencies-file = "../../dependencies.yaml"
matrix-entry = "cuda_suffixed=true"
matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"

[tool.pydistcheck]
select = [
Expand Down
5 changes: 3 additions & 2 deletions python/libcugraph/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ classifiers = [
"Environment :: GPU :: NVIDIA CUDA",
]
dependencies = [
"cuda-toolkit[cublas,curand,cusolver,cusparse,nvjitlink]>=12,<14",
"cuda-toolkit[cublas,curand,cusolver,cusparse]==13.*",
"libraft==26.4.*,>=0.0.0a0",
"librmm==26.4.*,>=0.0.0a0",
"nvidia-nvjitlink>=13.0,<14",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.

[project.urls]
Expand Down Expand Up @@ -62,7 +63,7 @@ regex = "(?P<value>.*)"
[tool.rapids-build-backend]
build-backend = "scikit_build_core.build"
dependencies-file = "../../dependencies.yaml"
matrix-entry = "cuda_suffixed=true"
matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"
requires = [
"cmake>=3.30.4",
"libraft==26.4.*,>=0.0.0a0",
Expand Down
2 changes: 1 addition & 1 deletion python/pylibcugraph/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ requires = [
"pylibraft==26.4.*,>=0.0.0a0",
"rmm==26.4.*,>=0.0.0a0",
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.
matrix-entry = "cuda_suffixed=true"
matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true"

[tool.pydistcheck]
select = [
Expand Down
Loading