Skip to content

build wheels with CUDA 13.0.x, test wheels against mix of CTK versions, drop CUDA math libraries dependencies#87

Merged
rapids-bot[bot] merged 3 commits intorapidsai:release/26.04from
jameslamb:test-older-ctk
Mar 19, 2026
Merged

build wheels with CUDA 13.0.x, test wheels against mix of CTK versions, drop CUDA math libraries dependencies#87
rapids-bot[bot] merged 3 commits intorapidsai:release/26.04from
jameslamb:test-older-ctk

Conversation

@jameslamb
Copy link
Copy Markdown
Member

Contributes to rapidsai/build-planning#257

  • builds CUDA 13 wheels with the 13.0 CTK

Contributes to rapidsai/build-planning#256

  • updates wheel tests to cover a range of CTK versions (we previously, accidentally, were only testing the latest 12.x and 13.x)

Drops unnecessary CTK dependencies

  • drops dependencies on cuBLAS, cuFFT, cuRAND, cuSOLVER, and cuSPARSE
    • nvforest doesn't depend directly on any of these, I suspect they were all just copied over from cuML
  • removes related code and configuration

@jameslamb jameslamb added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Mar 18, 2026
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot bot commented Mar 18, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@jameslamb
Copy link
Copy Markdown
Member Author

/ok to test

@jameslamb jameslamb added the DO NOT MERGE Hold off on merging; see PR for details label Mar 18, 2026
@jameslamb jameslamb changed the title WIP: build wheels with CUDA 13.0.x, test wheels against mix of CTK versions, drop CUDA math libraries dependencies build wheels with CUDA 13.0.x, test wheels against mix of CTK versions, drop CUDA math libraries dependencies Mar 18, 2026
@jameslamb jameslamb requested review from csadorf and hcho3 March 18, 2026 15:59
@jameslamb jameslamb marked this pull request as ready for review March 18, 2026 15:59
@jameslamb jameslamb requested review from a team as code owners March 18, 2026 15:59
@jameslamb jameslamb requested a review from gforsyth March 18, 2026 15:59
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 18, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 68b7043b-a86d-4284-86ab-05baa7f1b989

📥 Commits

Reviewing files that changed from the base of the PR and between 705406e and a70f15f.

📒 Files selected for processing (19)
  • .devcontainer/cuda12.9-pip/devcontainer.json
  • .devcontainer/cuda13.1-pip/devcontainer.json
  • .github/workflows/build.yaml
  • .github/workflows/pr.yaml
  • ci/test_wheel.sh
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-131_arch-aarch64.yaml
  • conda/environments/all_cuda-131_arch-x86_64.yaml
  • conda/environments/clang_tidy_cuda-129_arch-x86_64.yaml
  • conda/environments/clang_tidy_cuda-131_arch-x86_64.yaml
  • conda/environments/cpp_all_cuda-129_arch-x86_64.yaml
  • conda/environments/cpp_all_cuda-131_arch-x86_64.yaml
  • conda/recipes/libnvforest/recipe.yaml
  • cpp/CMakeLists.txt
  • dependencies.yaml
  • python/libnvforest/CMakeLists.txt
  • python/libnvforest/pyproject.toml
  • python/nvforest/pyproject.toml
💤 Files with no reviewable changes (12)
  • conda/environments/cpp_all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-131_arch-x86_64.yaml
  • python/libnvforest/CMakeLists.txt
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • python/nvforest/pyproject.toml
  • conda/environments/clang_tidy_cuda-131_arch-x86_64.yaml
  • conda/environments/all_cuda-131_arch-aarch64.yaml
  • conda/recipes/libnvforest/recipe.yaml
  • python/libnvforest/pyproject.toml
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/clang_tidy_cuda-129_arch-x86_64.yaml
  • conda/environments/cpp_all_cuda-131_arch-x86_64.yaml

📝 Walkthrough

Summary by CodeRabbit

  • Build & Infrastructure

    • Updated build workflows and development container configurations for improved efficiency
    • Streamlined constraint handling in test workflows using environment variables
  • Dependencies

    • Removed optional CUDA library development packages from build and runtime environments
    • Simplified CUDA dependency management across multiple environment configurations
    • Reduced CUDA toolkit version constraints in Python packages for greater compatibility

Walkthrough

This PR disables CUDA library components (cuBLAS, cuSOLVER, cuRAND, cuSPARSE) in devcontainers, removes CUDA library dev packages from Conda environment files, updates GitHub workflow references, refactors CUDA version management in dependencies, simplifies CMake CUDA handling, and removes explicit CUDA toolkit version constraints from Python projects.

Changes

Cohort / File(s) Summary
DevContainer CUDA Configuration
.devcontainer/cuda12.9-pip/devcontainer.json, .devcontainer/cuda13.1-pip/devcontainer.json
Disabled CUDA feature installation flags for cuBLAS, cuSOLVER, cuRAND, and cuSPARSE by changing from true to false.
GitHub Workflows
.github/workflows/build.yaml, .github/workflows/pr.yaml
Updated reusable workflow references from release/26.04 to build-wheels-old-ctk for wheel-build jobs.
Test Infrastructure
ci/test_wheel.sh
Replaced hard-coded constraint file references with environment-provided PIP_CONSTRAINT variable and added --prefer-binary flag to installation steps.
Conda Environment Definitions
conda/environments/all_cuda-129_arch-*, conda/environments/all_cuda-131_arch-*, conda/environments/clang_tidy_cuda-129_arch-x86_64.yaml, conda/environments/clang_tidy_cuda-131_arch-x86_64.yaml, conda/environments/cpp_all_cuda-129_arch-x86_64.yaml, conda/environments/cpp_all_cuda-131_arch-x86_64.yaml
Removed five CUDA development library packages (libcublas-dev, libcufft-dev, libcurand-dev, libcusolver-dev, libcusparse-dev) from each environment.
Conda Build Recipe
conda/recipes/libnvforest/recipe.yaml
Removed CUDA library package dependencies (libcublas, libcufft, libcurand, libcusolver, libcusparse and their dev variants) from host/build and run dependencies across multiple output sections.
CMake Build Configuration
cpp/CMakeLists.txt
Removed CUDA_STATIC_MATH_LIBRARIES-based static suffix setup and simplified target_compile_definitions by removing DISABLE_CUSPARSE_DEPRECATED PUBLIC flag.
Python Build System
python/libnvforest/CMakeLists.txt
Removed CUDA runtime build-time path logic, rpath calculations based on CMAKE_CUDA_COMPILER_VERSION, and NVIDIA nccl lib path references.
Dependency Management
dependencies.yaml
Restructured CUDA dependency handling by removing cuda_wheels from py_run includes, consolidating cuda and cuda_wheels blocks into a new cuda_version-driven matrix with explicit version mappings (12.2, 12.5, 12.8, 12.9, 13.0, 13.1) and separate cuda.common block for runtime components.
Python Project Configuration
python/libnvforest/pyproject.toml, python/nvforest/pyproject.toml
Removed cuda-toolkit>=12,<14 dependency constraint from [project].dependencies.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Suggested reviewers

  • hcho3
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the three main changes: building wheels with CUDA 13.0.x, testing against multiple CTK versions, and dropping CUDA math library dependencies.
Description check ✅ Passed The description clearly explains the rationale and details for each change, linking to relevant GitHub issues and justifying why dependencies are being removed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

@jameslamb jameslamb removed the DO NOT MERGE Hold off on merging; see PR for details label Mar 18, 2026
@gforsyth
Copy link
Copy Markdown
Contributor

/merge

@rapids-bot rapids-bot bot merged commit 96a1bf9 into rapidsai:release/26.04 Mar 19, 2026
124 of 126 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CMake conda Relates to conda packaging CUDA/C++ Cython / Python improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants