What's Changed
🚨 Breaking Changes
- Migrate RMM usage to CCCL MR design by @bdice in #7951
- Remove unused C API by @divyegala in #8011
- Cleanup and apply new validation to
cuml.naive_bayesby @jcrist in #8051 - Apply new validation to metrics.hinge_loss by @csadorf in #8060
- Cleanup
LabelEncoderby @jcrist in #8039 - Use the PTDS for (most) cupy operations by @jcrist in #8086
- Deprecate
probabilityparameter onSVCandLinearSVCby @switch527 in #8089 - Adopt nvForest for random forest inference by @hcho3 in #8048
🐛 Bug Fixes
- Fixes for CCCL 3.4 update by @dantegd in #7949
- Set unique CUDA cache path for each pytest-xdist worker by @divyegala in #7948
- Fix IncrementalPCA: handle missing batch_size_ in sparse transform after partial_fit by @csadorf in #8010
- Drop
__firstlineno__onProxyBaseinstances by @jcrist in #8045 - Fix KMeans int32 index overflow check by @csadorf in #8067
- Add early validation for n_clusters > n_samples in dask KMeans by @csadorf in #8071
- Fix CI by changing SVC intercept selection kernel dispatch by @dantegd in #8077
- Fix FIL buffer bounds assertions by @csadorf in #8069
- Fix KMeans score test tolerances by @csadorf in #8099
- Add vertex-parallel kernels to UMAP to enforce sequential behavior by @jinsolp in #7974
- Fix wrapping metaestimators in
Pipelineincuml.accelby @jcrist in #8115
📖 Documentation
- DOC Add third-party app example for cuml.accel by @betatim in #8094
- DOC Add hyper-parameter search example by @betatim in #8095
- DOC Add note about onnxruntime bug by @betatim in #8162
🚀 New Features
- Add LSMR solver to Ridge by @jcrist in #7922
- Add LSMR solver to
LinearRegressionby @jcrist in #7927 - Add sparse input support to
ElasticNet/Lassoby @jcrist in #7943 - Support LabelEncoder in
cuml.accelby @jcrist in #8082 - Add EmpiricalCovariance estimator by @csadorf in #8074
🛠️ Improvements
- Remove
PoolMemoryResourcewrapper by @jcrist in #7878 - fix more verify-hardcoded-version findings by @jameslamb in #7891
- Forward-merge release/26.04 into main by @csadorf in #7888
- Forward-merge release/26.04 into main by @csadorf in #7894
- Forward merge from release/26.04 by @jcrist in #7910
- Update CODEOWNERS by @jcrist in #7919
- Forward-merge release/26.04 into main by @gforsyth in #7914
- Forward merge
release/26.04intomainby @jcrist in #7936 - Forward-merge release/26.04 into main by @jameslamb in #7937
- Remove deprecations from 26.04 by @jcrist in #7928
- update pip devcontainers' base image tags by @trxcllnt in #7947
- chore: bump
codespellversion for Python 3.14+ compatibility by @gforsyth in #7925 - Restart xdist workers on corrupted CUDA context by @jcrist in #7954
- chore: remove comment in devcontainer.json that breaks jq by @gforsyth in #7952
- A few linear model test cleanups by @jcrist in #7957
- Support recent hdbscan by @jcrist in #7956
- Re-enabling precomputed kNN on host for UMAP by @viclafargue in #7915
- Add
-voption totimeoutin CI scripts by @jcrist in #7966 - Mark a few cuml-accel upstream tests as flaky by @jcrist in #7967
- Update to clang 20.1.8 by @bdice in #7968
- Run all scikit-learn examples under cuml.accel in nightlies by @csadorf in #7960
- xfail ARIMA test on 'endog_hourly_earnings_by_industry_missing_exog' dataset by @jameslamb in #7972
- New input validation utilities by @jcrist in #7973
- Improve timeout verbosity and graceful shutdown for pytest CI jobs by @csadorf in #7979
- Use new input validation in
cuml.linear_models/cuml.solversby @jcrist in #7978 - Apply new validation to
cuml.clusterby @jcrist in #7984 - Apply new validation to
cuml.random_projectionby @jcrist in #8009 - Use new input validation infrastructure for cuml.decomposition. by @csadorf in #8006
- Apply new input validation to
cuml.multiclassby @mgrauer in #8017 - Deprecate max_depth=16 in RandomForest and add None support by @Nzouh in #7958
- Migrate _classification and _ranking metrics to new input validation infrastructure by @csadorf in #8012
- CI Fix cuml.svm compatibility with scikit-learn 1.9 deprecation of
probability=by @betatim in #7981 - Use scikit-learn's array-api to accelerate
StandardScalerby @jcrist in #8020 - Apply new input validation to
cuml.kernel_ridgeby @jcrist in #8007 - Apply new validation to
cuml.covarianceby @jcrist in #8008 - [FIL] Validate Treelite model input to prevent integer overflow and OOB memory access by @hcho3 in #8016
- Cleanup Lars, apply new validation by @jcrist in #8024
- Add
MinMaxScaler,MaxAbsScaler, andPolynomialFeaturestocuml.accelby @jcrist in #8032 - Several
ensemblescikit-learn compatibility improvements by @jcrist in #8023 - Remove inertia_check Param from KMeans by @tarang-jain in #8033
- Fix sample_weight handling in
KernelRidgeby @jcrist in #8040 - Apply new validation to
cuml.svmby @jcrist in #8029 - Support subclassing proxy estimators by @jcrist in #8041
- fix(ci): resolve all zizmor findings and add zizmor pre-commit checks by @gforsyth in #8046
- Add
check_cudf, and a few other validation changes by @jcrist in #8038 - Fix labeler config by @jcrist in #8047
- Apply new validation to
cuml.explainerby @jcrist in #8043 - Apply new validation to metrics.pairwise_kernels by @csadorf in #8050
- Apply new validation to
cuml.neighborsby @viclafargue in #8019 - Apply new input validation to metrics.regression by @csadorf in #8044
- Ensure output of classifier
predicthas aligned index by @jcrist in #8056 - Fix explainer hypothesis test by @jcrist in #8054
- Apply new validation to metrics.confusion_matrix by @csadorf in #8049
- Apply new validation to metrics.kl_divergence by @csadorf in #8057
- Use
token.rapids.nvidia.comwhen issuing S3 bucket creds in devcontainers by @trxcllnt in #8036 - Apply new input validation to cuml.metrics.cluster by @csadorf in #8059
- Apply new validation to
cuml.manifoldby @jinsolp in #8042 - Cleanup and apply new validation to
cuml._thirdpartyandcuml.preprocessingby @jcrist in #8052 - Apply new validation to metrics.pairwise_distances by @csadorf in #8065
- Apply new input validation to metrics.trustworthiness by @csadorf in #8058
- A few validation fixups by @jcrist in #8066
- Use cudaStream_t instead of cuda_stream_view in cuml Cython by @vyasr in #8072
- Fix failing
IncrementalPCAtest by @jcrist in #8080 - Fallback on
ensure_all_finiteinUMAPoncuml.accelby @jcrist in #8076 - Cleanup TargetEncoder by @jcrist in #8075
- Use static cudart by @KyleFromNVIDIA in #8078
- Build and test with CUDA 13.2.0 by @bdice in #8081
- Support umap-learn 0.5.12 by @csadorf in #8073
- fix(ci): add explicit
actions: writepermission fortelemetry-summarize
by @gforsyth in #8088 - ci: add informational PR release target validation by @csadorf in #8083
- A few cudf fixups by @jcrist in #8105
- Require CMake 4.0 by @KyleFromNVIDIA in #8096
- Mark upstream umap test as flaky by @jcrist in #8107
- Update
libcumlwheel to depend onlibrmmby @jcrist in #8110 - Numpy 1.x compatibility fixes by @jcrist in #8118
- loosen threshold in test_mbsgd_regressor test by @jameslamb in #8122
- xfail
test_onnx[RandomForestClassifier]by @jcrist in #8127 - Mark
test_precomputed_sparse_transform_on_irisas flaky by @jcrist in #8130 - A few fixes for sklearn 1.9 pre-release by @jcrist in #8126
- Cleanup LabelBinarizer by @jcrist in #8101
- Further relax
test_nearest_neighbors_pickletolerance by @jcrist in #8136 - Add cuml.accel support for IncrementalPCA by @JohnZed in #7785
- Add "Advanced Topics" doc by @jcrist in #8134
- Avoid deprecated functionality in cupy 14.1 by @jcrist in #8148
- Fix BERTopic integration tests by @jcrist in #8167
- Refactor kernel_density to use less memory by @Intron7 in #7833
- skip CuPy 14.1.0 by @jameslamb in #8179
- Xfail sklearn example requiring plotly by @csadorf in #8193
- Fixes for sklearn 1.9 release by @jcrist in #8208
- Handle sklearn example OpenML network failures by @csadorf in #8205
- Handle sklearn example OpenML dataset lookup failures by @csadorf in #8216
New Contributors
Full Changelog: v26.06.00a...v26.06.00