Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
54b6e3f
Update `libcuml` wheel to depend on `librmm` (#8110)
jcrist May 15, 2026
da8e0cd
Fix wrapping metaestimators in `Pipeline` in `cuml.accel` (#8115)
jcrist May 15, 2026
0095e1e
Use the PTDS for (most) cupy operations (#8086)
jcrist May 15, 2026
4ad59e4
DOC Add third-party app example for cuml.accel (#8094)
betatim May 15, 2026
87d7b8e
Numpy 1.x compatibility fixes (#8118)
jcrist May 15, 2026
a4c824b
loosen threshold in test_mbsgd_regressor test (#8122)
jameslamb May 16, 2026
8e26320
DOC Add hyper-parameter search example (#8095)
betatim May 18, 2026
fcf714d
xfail `test_onnx[RandomForestClassifier]` (#8127)
jcrist May 18, 2026
ee64dec
Mark `test_precomputed_sparse_transform_on_iris` as flaky (#8130)
jcrist May 19, 2026
673aa27
A few fixes for sklearn 1.9 pre-release (#8126)
jcrist May 19, 2026
ac61931
Cleanup LabelBinarizer (#8101)
jcrist May 19, 2026
1df5fa9
Deprecate `probability` parameter on `SVC` and `LinearSVC` (#8089)
switch527 May 19, 2026
2e562d1
Further relax `test_nearest_neighbors_pickle` tolerance (#8136)
jcrist May 21, 2026
651e240
Add cuml.accel support for IncrementalPCA (#7785)
JohnZed May 21, 2026
2b8230c
Merge release/26.06 into main
csadorf May 21, 2026
c2eaf61
Add "Advanced Topics" doc (#8134)
jcrist May 21, 2026
a2d706e
Adopt nvForest for random forest inference (#8048)
chyunsu3 May 21, 2026
44b48a7
Merge release/26.06 into main
csadorf May 21, 2026
65c3d1e
Suppress intentional hardcoded version references
csadorf May 21, 2026
e00763d
Merge main into main-merge-release/26.06
csadorf May 22, 2026
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
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,12 @@ _skbuild/
junit-*.xml


## files pickled in notebook when ran during python docstring generation
## files generated by notebooks during docs builds
docs/source/*.model
docs/source/*.pkl
docs/source/*.tl
docs/source/*.joblib
docs/source/**/*.onnx

## autosummary-generated API reference stubs
docs/source/api/generated/
Expand Down
7 changes: 4 additions & 3 deletions ci/build_wheel_cuml.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,17 @@ LIBCUML_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcuml_${RAPIDS_PY_CUDA_SUFFIX}" rap
echo "libcuml-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo "${LIBCUML_WHEELHOUSE}"/libcuml_*.whl)" >> "${PIP_CONSTRAINT}"

EXCLUDE_ARGS=(
--exclude "libcuml.so"
--exclude "libcuvs.so"
--exclude "libraft.so"
--exclude "libcublas.so.*"
--exclude "libcublasLt.so.*"
--exclude "libcufft.so.*"
--exclude "libcuml.so"
--exclude "libcurand.so.*"
--exclude "libcusolver.so.*"
--exclude "libcusparse.so.*"
--exclude "libcuvs.so"
--exclude "libnvforest++.so"
--exclude "libnvJitLink.so.*"
--exclude "libraft.so"
--exclude "librapids_logger.so"
--exclude "librmm.so"
)
Expand Down
5 changes: 3 additions & 2 deletions ci/build_wheel_libcuml.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,18 @@ rapids-pip-retry install \
export PIP_NO_BUILD_ISOLATION=0

EXCLUDE_ARGS=(
--exclude "libraft.so"
--exclude "libcublas.so.*"
--exclude "libcublasLt.so.*"
--exclude "libcufft.so.*"
--exclude "libcurand.so.*"
--exclude "libcusolver.so.*"
--exclude "libcusparse.so.*"
--exclude "libnccl.so.*"
--exclude "libnvforest++.so"
--exclude "libnvJitLink.so.*"
--exclude "libraft.so"
--exclude "librapids_logger.so"
--exclude "librmm.so"
--exclude "libnccl.so.*"
)

export SKBUILD_CMAKE_ARGS="-DDISABLE_DEPRECATION_WARNINGS=ON;-DCUML_USE_CUVS_STATIC=ON"
Expand Down
4 changes: 3 additions & 1 deletion ci/release/update-version.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2019-2025, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2019-2026, NVIDIA CORPORATION.
# SPDX-License-Identifier: Apache-2.0
########################
# cuML Version Updater #
Expand Down Expand Up @@ -106,9 +106,11 @@ DEPENDENCIES=(
libcuml
libcuml-tests
libcuvs
libnvforest
libraft-headers
libraft
librmm
nvforest
pylibraft
raft-dask
rapids-dask-dependency
Expand Down
4 changes: 3 additions & 1 deletion conda/environments/all_cuda-129_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libopenblas<=0.3.30
- libraft==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
Expand All @@ -47,9 +48,10 @@ dependencies:
- nltk
- numba-cuda>=0.22.2,<0.29.0
- numba>=0.60.0,<0.65.0
- numpy>=1.23,<3.0
- numpy>=1.26,<3.0
- numpydoc
- numpydoc<1.9
- nvforest==26.8.*,>=0.0.0a0
- nvidia-ml-py>=12
- onnxruntime
- packaging
Expand Down
4 changes: 3 additions & 1 deletion conda/environments/all_cuda-129_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libraft==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
- lightgbm
Expand All @@ -46,9 +47,10 @@ dependencies:
- nltk
- numba-cuda>=0.22.2,<0.29.0
- numba>=0.60.0,<0.65.0
- numpy>=1.23,<3.0
- numpy>=1.26,<3.0
- numpydoc
- numpydoc<1.9
- nvforest==26.8.*,>=0.0.0a0
- nvidia-ml-py>=12
- onnxruntime
- packaging
Expand Down
4 changes: 3 additions & 1 deletion conda/environments/all_cuda-132_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libopenblas<=0.3.30
- libraft==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
Expand All @@ -47,9 +48,10 @@ dependencies:
- nltk
- numba-cuda>=0.22.2,<0.29.0
- numba>=0.60.0,<0.65.0
- numpy>=1.23,<3.0
- numpy>=1.26,<3.0
- numpydoc
- numpydoc<1.9
- nvforest==26.8.*,>=0.0.0a0
- nvidia-ml-py>=12
- onnxruntime
- packaging
Expand Down
4 changes: 3 additions & 1 deletion conda/environments/all_cuda-132_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libraft==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
- lightgbm
Expand All @@ -46,9 +47,10 @@ dependencies:
- nltk
- numba-cuda>=0.22.2,<0.29.0
- numba>=0.60.0,<0.65.0
- numpy>=1.23,<3.0
- numpy>=1.26,<3.0
- numpydoc
- numpydoc<1.9
- nvforest==26.8.*,>=0.0.0a0
- nvidia-ml-py>=12
- onnxruntime
- packaging
Expand Down
1 change: 1 addition & 0 deletions conda/environments/clang_tidy_cuda-129_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libraft-headers==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
- llvm-openmp==20.1.8
Expand Down
1 change: 1 addition & 0 deletions conda/environments/clang_tidy_cuda-132_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libraft-headers==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
- llvm-openmp==20.1.8
Expand Down
1 change: 1 addition & 0 deletions conda/environments/cpp_all_cuda-129_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libraft-headers==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
- ninja
Expand Down
1 change: 1 addition & 0 deletions conda/environments/cpp_all_cuda-132_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ dependencies:
- libcusolver-dev
- libcusparse-dev
- libcuvs==26.8.*,>=0.0.0a0
- libnvforest==26.8.*,>=0.0.0a0
- libraft-headers==26.8.*,>=0.0.0a0
- librmm==26.8.*,>=0.0.0a0
- ninja
Expand Down
4 changes: 3 additions & 1 deletion conda/recipes/cuml/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ requirements:
- cudf =${{ minor_version }}
- cython >=3.2.2
- libcuml =${{ version }}
- nvforest =${{ minor_version }}
- pip
- pylibraft =${{ minor_version }}
- python =${{ py_abi_min }}
Expand All @@ -100,7 +101,8 @@ requirements:
- libcuml =${{ version }}
- numba >=0.60.0,<0.65.0
- numba-cuda >=0.22.2,<0.29.0
- numpy >=1.23,<3.0
- numpy >=1.26,<3.0
- nvforest =${{ minor_version }}
- scikit-learn >=1.4
- scipy >=1.14.0
- packaging
Expand Down
2 changes: 2 additions & 0 deletions conda/recipes/libcuml/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ outputs:
- cuda-version =${{ cuda_version }}
- rapids-logger =0.2
- libcuvs =${{ minor_version }}
- libnvforest =${{ minor_version }}
- librmm =${{ minor_version }}
- treelite ${{ treelite_version }}
- cuda-cudart-dev
Expand All @@ -122,6 +123,7 @@ outputs:
- libcusolver
- libcusparse
- libcuvs =${{ minor_version }}
- libnvforest =${{ minor_version }}
- librmm =${{ minor_version }}
- rapids-logger =0.2
- treelite ${{ treelite_version }}
Expand Down
49 changes: 13 additions & 36 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,12 @@ option(CUML_COMPILE_DYNAMIC_ONLY "Only build the shared library and skip the sta
# dependent library.
option(CUML_EXCLUDE_RAFT_FROM_ALL "Exclude RAFT targets from cuML's 'all' target" OFF)
option(CUML_EXCLUDE_TREELITE_FROM_ALL "Exclude Treelite targets from cuML's 'all' target" OFF)
option(CUML_EXCLUDE_NVFOREST_FROM_ALL "Exclude nvForest targets from cuML's 'all' target" OFF)
option(CUML_RAFT_CLONE_ON_PIN "Explicitly clone RAFT branch when pinned to non-feature branch" ON)
option(CUML_CUVS_CLONE_ON_PIN "Explicitly clone CUVS branch when pinned to non-feature branch" ON)
option(CUML_NVFOREST_CLONE_ON_PIN
"Explicitly clone nvForest branch when pinned to non-feature branch" ON
)

message(VERBOSE "CUML_CPP: Building libcuml shared library: ${BUILD_CUML_CPP_LIBRARY}")
message(VERBOSE "CUML_CPP: Building cuML algorithm tests: ${BUILD_CUML_TESTS}")
Expand Down Expand Up @@ -270,6 +274,11 @@ if(LINK_TREELITE)
include(cmake/thirdparty/get_treelite.cmake)
endif()

if(LINK_NVFOREST)
include(cmake/thirdparty/get_nvforest.cmake)
set(CUML_NVFOREST_TARGET nvforest::nvforest++)
endif()

if(all_algo OR treeshap_algo)
include(cmake/thirdparty/get_gputreeshap.cmake)
endif()
Expand Down Expand Up @@ -367,42 +376,6 @@ if(BUILD_CUML_CPP_LIBRARY)
target_sources(cuml_objs PRIVATE src/explainer/tree_shap.cu)
endif()

# FIL components
if(all_algo OR fil_algo)
if(CUML_ENABLE_GPU)
target_sources(
cuml_objs
PRIVATE src/fil/infer0.cu
src/fil/infer1.cu
src/fil/infer2.cu
src/fil/infer3.cu
src/fil/infer4.cu
src/fil/infer5.cu
src/fil/infer6.cu
src/fil/infer7.cu
src/fil/infer8.cu
src/fil/infer9.cu
src/fil/infer10.cu
src/fil/infer11.cu
)
endif()
target_sources(
cuml_objs
PRIVATE src/fil/infer0.cpp
src/fil/infer1.cpp
src/fil/infer2.cpp
src/fil/infer3.cpp
src/fil/infer4.cpp
src/fil/infer5.cpp
src/fil/infer6.cpp
src/fil/infer7.cpp
src/fil/infer8.cpp
src/fil/infer9.cpp
src/fil/infer10.cpp
src/fil/infer11.cpp
)
endif()

# todo: organize linear models better
if(all_algo
OR linearregression_algo
Expand Down Expand Up @@ -596,6 +569,10 @@ if(BUILD_CUML_CPP_LIBRARY)
copy_interface_excludes(INCLUDED_TARGET treelite::treelite_static TARGET cuml_objs)
endif()

if(LINK_NVFOREST)
list(APPEND _cuml_cpp_public_libs ${CUML_NVFOREST_TARGET})
endif()

# These are always private:
list(
APPEND
Expand Down
3 changes: 1 addition & 2 deletions cpp/bench/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# =============================================================================
# cmake-format: off
# SPDX-FileCopyrightText: Copyright (c) 2019-2025, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2019-2026, NVIDIA CORPORATION.
# SPDX-License-Identifier: Apache-2.0
# cmake-format: on
# =============================================================================
Expand All @@ -24,7 +24,6 @@ if(BUILD_CUML_BENCH)
sg/svc.cu
sg/svr.cu
sg/umap.cu
sg/fil.cu
)
if(CUML_ENABLE_GPU)
target_compile_definitions(${CUML_CPP_BENCH_TARGET} PUBLIC CUML_ENABLE_GPU)
Expand Down
Loading
Loading