diff --git a/ci/build_wheel_libcudf.sh b/ci/build_wheel_libcudf.sh index b087f1b50b26..c5a007399f8d 100755 --- a/ci/build_wheel_libcudf.sh +++ b/ci/build_wheel_libcudf.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -15,7 +15,7 @@ rapids-dependency-file-generator \ --output requirements \ --file-key "py_build_${package_name}" \ --file-key "py_rapids_build_${package_name}" \ - --matrix "cuda=${RAPIDS_CUDA_VERSION%.*};arch=$(arch);py=${RAPIDS_PY_VERSION};cuda_suffixed=true" \ + --matrix "cuda=${RAPIDS_CUDA_VERSION%.*};arch=$(arch);py=${RAPIDS_PY_VERSION};cuda_suffixed=true;use_cuda_wheels=true" \ | tee /tmp/requirements-build.txt rapids-logger "Installing build requirements" diff --git a/ci/test_wheel_cudf.sh b/ci/test_wheel_cudf.sh index 8d4b8c5ba31c..deff898d4b9e 100755 --- a/ci/test_wheel_cudf.sh +++ b/ci/test_wheel_cudf.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -13,7 +13,7 @@ LIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_c PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python pylibcudf cudf --stable --cuda "$RAPIDS_CUDA_VERSION")") CUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cudf cudf --stable --cuda "$RAPIDS_CUDA_VERSION")") -rapids-logger "Install pylibcudf and its basic dependencies in a virtual environment" +rapids-logger "Install libcudf and verify its runtime dependencies in a virtual environment" # generate constraints (possibly pinning to oldest support versions of dependencies) rapids-generate-pip-constraints py_test_cudf "${PIP_CONSTRAINT}" @@ -22,9 +22,22 @@ RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ mkdir -p "${RAPIDS_TESTS_DIR}" +python -m venv libcudf-env +. libcudf-env/bin/activate + +rapids-pip-retry install \ + -v \ + --prefer-binary \ + --constraint "${PIP_CONSTRAINT}" \ + "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" +python -c "import libcudf; assert libcudf.load_library() is not None" +deactivate + # To test pylibcudf without its optional dependencies, we create a virtual environment -python -m venv env -. env/bin/activate +python -m venv pylibcudf-env +. pylibcudf-env/bin/activate + +rapids-logger "Install pylibcudf and its basic dependencies" # notes: # diff --git a/ci/test_wheel_cudf_streaming.sh b/ci/test_wheel_cudf_streaming.sh index 0a1210f9b04c..8f2ec61323ed 100755 --- a/ci/test_wheel_cudf_streaming.sh +++ b/ci/test_wheel_cudf_streaming.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -17,6 +17,20 @@ PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel # generate constraints (possibly pinning to oldest support versions of dependencies) rapids-generate-pip-constraints py_test_cudf_streaming "${PIP_CONSTRAINT}" +rapids-logger "Install libcudf_streaming and verify its runtime dependencies in a virtual environment" + +python -m venv libcudf-streaming-env +. libcudf-streaming-env/bin/activate + +rapids-pip-retry install \ + -v \ + --prefer-binary \ + --constraint "${PIP_CONSTRAINT}" \ + "$(echo "${LIBCUDF_STREAMING_WHEELHOUSE}"/libcudf_streaming_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ + "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" +python -c "import libcudf_streaming; assert libcudf_streaming.load_library() is not None" +deactivate + rapids-logger "Install cudf_streaming and its dependencies" rapids-pip-retry install \ diff --git a/dependencies.yaml b/dependencies.yaml index 5eb907f5649a..d176947ed843 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -829,24 +829,29 @@ dependencies: - matrix: use_cuda_wheels: "false" packages: - # 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: "12.9" + cuda: "12.*" + cuda_suffixed: "true" use_cuda_wheels: "true" packages: + - cuda-toolkit[nvrtc]==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 - nvidia-nvjitlink-cu12>=12.9,<13 - matrix: cuda: "13.*" + cuda_suffixed: "true" use_cuda_wheels: "true" packages: + - cuda-toolkit[nvrtc]==13.* - &nvjitlink_cu13 nvidia-nvjitlink>=13.3,<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[nvrtc]==13.* - *nvjitlink_cu13 cuda_static: common: @@ -963,27 +968,6 @@ dependencies: - nvtx>=0.2.1 - packaging - rich - specific: - - output_types: [requirements, pyproject] - 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: - cuda: "12.*" - cuda_suffixed: "true" - use_cuda_wheels: "true" - packages: - - cuda-toolkit[nvcc,nvrtc]==12.* - - matrix: - cuda: "13.*" - cuda_suffixed: "true" - use_cuda_wheels: "true" - packages: - - cuda-toolkit[nvcc,nvrtc]==13.* - - {matrix: null, packages: []} run_cudf_polars: common: - output_types: [conda, requirements, pyproject] diff --git a/python/libcudf/pyproject.toml b/python/libcudf/pyproject.toml index c1277f1489a4..36cbebdd248b 100644 --- a/python/libcudf/pyproject.toml +++ b/python/libcudf/pyproject.toml @@ -26,6 +26,7 @@ classifiers = [ "Environment :: GPU :: NVIDIA CUDA", ] dependencies = [ + "cuda-toolkit[nvrtc]==13.*", "libkvikio==26.10.*,>=0.0.0a0", "librmm==26.10.*,>=0.0.0a0", "nvidia-libnvcomp==5.2.0.13", @@ -70,6 +71,7 @@ dependencies-file = "../../dependencies.yaml" matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true" requires = [ "cmake>=4.0", + "cuda-toolkit[nvrtc]==13.*", "libkvikio==26.10.*,>=0.0.0a0", "librmm==26.10.*,>=0.0.0a0", "ninja",