Skip to content

wheels: use system 'tileiras', search site-packages for CMake targets - #8573

Merged
rapids-bot[bot] merged 5 commits into
NVIDIA:release/26.10from
jameslamb:fix/cuvs-dep-handling
Sep 11, 2026
Merged

wheels: use system 'tileiras', search site-packages for CMake targets#8573
rapids-bot[bot] merged 5 commits into
NVIDIA:release/26.10from
jameslamb:fix/cuvs-dep-handling

Conversation

@jameslamb

@jameslamb jameslamb commented Sep 8, 2026

Copy link
Copy Markdown
Member

Fixes #8520
Contributes to rapidsai/build-planning#324
Contributes to rapidsai/build-planning#325

  • switches wheel builds to system-installed tileiras
  • updates libcuml CMake to search for pip-installed libraries (to avoid e.g. rebuilding cuVS from source in pip devcontainers)
  • other minor CMake cleanup

How I tested this

Relied on CI. Check it out... 9 minute pip devcontainer jobs now 😎 : https://github.com/NVIDIA/cuml/actions/runs/34501697447/job/102954296927?pr=8573

@copy-pr-bot

copy-pr-bot Bot commented Sep 8, 2026

Copy link
Copy Markdown

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
jameslamb changed the base branch from main to release/26.10 September 8, 2026 22:08
@jameslamb jameslamb added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Sep 8, 2026
rapids-bot Bot pushed a commit to NVIDIA/cuvs that referenced this pull request Sep 10, 2026
Adds wheel prefix discovery and propagates KvikIO through the installed cuVS CMake target to fix cuML builds in NVIDIA/cuml#8573.

Part of rapidsai/build-planning#325.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)
  - Corey J. Nolet (https://github.com/cjnolet)

URL: #2565
@bdice
bdice marked this pull request as ready for review September 10, 2026 13:32
@bdice
bdice requested review from a team as code owners September 10, 2026 13:32
@bdice
bdice requested review from gforsyth and jcrist September 10, 2026 13:32
@bdice
bdice marked this pull request as draft September 10, 2026 13:36
@github-actions github-actions Bot added the Cython / Python Cython or Python issue label Sep 10, 2026
)

# Find C++ libraries from RAPIDS wheels in site-packages.
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)

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.

Similar things are used in other parts of RAPIDS to ensure CMake targets installed in site-packages/ can be found.

Things like this were added in NVIDIA/cuvs#2565, for example.

@jameslamb

Copy link
Copy Markdown
Member Author

/ok to test

@jameslamb jameslamb changed the title WIP: wheels: use system 'tileiras', search site-packages for CMake targets wheels: use system 'tileiras', search site-packages for CMake targets Sep 10, 2026
@NVIDIA NVIDIA deleted a comment from coderabbitai Bot Sep 10, 2026
@jameslamb
jameslamb marked this pull request as ready for review September 10, 2026 16:39
@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3b813e94-a3a7-4cf7-ae9b-b8b9f6dfc9e6

📥 Commits

Reviewing files that changed from the base of the PR and between 82aa0ce and b048a7c.

📒 Files selected for processing (1)
  • dependencies.yaml

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Installation
    • Improved detection of RAPIDS libraries installed through Python wheels.
    • Enhanced support for locating libraries in standard 64-bit library directories.
    • Updated dependency configuration for improved compatibility with CUDA 13 environments.
    • Updated supported dependency versions, including CUDA 12 bindings and scikit-learn.
  • Maintenance
    • Updated third-party dependency configuration to use NVIDIA-maintained repositories.
    • Simplified CUVS dependency configuration for more consistent builds.

Walkthrough

Changes

Build dependency configuration

Layer / File(s) Summary
Python wheel prefix discovery
cpp/CMakeLists.txt, python/cuml/CMakeLists.txt, python/libcuml/CMakeLists.txt
CMake discovers RAPIDS wheel prefixes through Python, appends them to CMAKE_PREFIX_PATH, and enables global lib64 library lookup.
NVIDIA dependency source configuration
cpp/cmake/thirdparty/get_cuvs.cmake, cpp/cmake/thirdparty/get_raft.cmake
CUVS and RAFT now use NVIDIA repository forks. CUVS no longer accepts the COMPILE_LIBRARY argument.
cutile dependency selectors and pins
dependencies.yaml
cutile_python now uses the CUDA 13 cuda-tile selector for requirements and pyproject outputs. CUDA 12 remains empty. CUDA bindings and scikit-learn pins are updated.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to b048a

No actionable merge-blocking issue remains from the finalized review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The main changes are in scope, but the scikit-learn version update, RAFT fork change, copyright-only edits, and some dependency metadata changes are not clearly required by issue #8520. Provide linked issue requirements that justify these additional changes, or remove or split the unrelated dependency, fork, and copyright updates into a separate pull request.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the two primary changes: using system-installed tileiras and searching site-packages for CMake targets.
Description check ✅ Passed The description directly covers the wheel, tileiras, site-packages, CMake, and linked issue changes.
Linked Issues check ✅ Passed The CMake search-path changes and system tileiras configuration address issue #8520 by allowing pip devcontainer builds to use installed cuVS-related packages instead of rebuilding cuVS from source.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@jameslamb

Copy link
Copy Markdown
Member Author

conda Python tests are all failing like this:

FAILED test_core.py::test_constraints_match_installed_versions - AssertionError: Please update `cuml.accel.core._CONSTRAINTS` to match the new runtime constraints.
  
  Currently the following constraints failed:
  
  - scikit-learn<=1.9.0,>=1.6.0
  
  leading to the following user-facing logs:
  
  [cuml.accel] Warning: `cuml.accel` version 26.10.00a117 was tested with scikit-learn<=1.9.0,>=1.6.0, but scikit-learn=1.9.1 was found. Things may work, but you may also encounter potentially subtle breakage.
assert False

(build link)

That'll be fixed by #861

oldest-deps wheel jobs are failing like this:

  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/cuml/internals/outputs.py", line 9, in <module>
    import cudf
  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/cudf/__init__.py", line 20, in <module>
    from cudf import api, core, datasets, testing
  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/cudf/api/__init__.py", line 4, in <module>
    from cudf.api import extensions, types
  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/cudf/api/extensions/__init__.py", line 6, in <module>
    from cudf.api.extensions.accessor import (
  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/cudf/api/extensions/accessor.py", line 6, in <module>
    from cudf.core.dataframe import DataFrame
  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/cudf/core/dataframe.py", line 38, in <module>
    import pylibcudf as plc
  File "/pyenv/versions/3.11.16/lib/python3.11/site-packages/pylibcudf/__init__.py", line 14, in <module>
    from . import (
ImportError: /pyenv/versions/3.11.16/lib/python3.11/site-packages/pylibcudf/rolling.abi3.so: undefined symbol: _ZN4cudf18make_range_windowsERKNS_10table_viewERKNS_11column_viewENS_5orderENS_10null_orderESt7variantIJNS_9unboundedENS_11current_rowENS_14bounded_closedENS_12bounded_openEEESD_N4cuda3__410stream_refENSE_2mr3__420__version_bump_ver4_12resource_refIJNSI_17device_accessibleEEEE

(build link)

Not sure if that's being looked into yet, I'll look into it.

@jameslamb

Copy link
Copy Markdown
Member Author

Not sure if that's being looked into yet, I'll look into it.

This was NVIDIA/cudf#24116, see that issue for the resolution. No changes needed in this PR, just a re-run.

@jameslamb

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot
rapids-bot Bot merged commit b259abc into NVIDIA:release/26.10 Sep 11, 2026
108 checks passed
@jameslamb
jameslamb deleted the fix/cuvs-dep-handling branch September 11, 2026 03:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake CUDA/C++ Cython / Python Cython or Python issue improvement Improvement / enhancement to an existing function non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants