Skip to content

Latest commit

 

History

History
2066 lines (1762 loc) · 213 KB

File metadata and controls

2066 lines (1762 loc) · 213 KB

raft 26.02.00 (4 Feb 2026)

🚨 Breaking Changes

  • Use CCCL's mdspan implementation by @bdice in #2836
  • Default to static linking of libcudart by @bdice in #2890
  • Remove neighbors/, cluster/, distance/, spatial/, sparse/neighbors/ apis by @aamijar in #2885
  • Remove cutlass and cuco dependencies by @divyegala in #2916

🐛 Bug Fixes

  • Include <thrust/for_each.h> where it is used by @bdice in #2883
  • Include CTest module in CMakeLists.txt by @bdice in #2895
  • Fix Lanczos Determinism by @aamijar in #2894
  • Change compile-time assertion to runtime assertion on is_strided by @bdice in #2909
  • Set memory pool through RMM by @viclafargue in #2866

📖 Documentation

  • New readme image by @aamijar in #2907
  • Readme improvements by @aamijar in #2906

🚀 New Features

  • Tile Policy for Uint8 Input (Pairwise) by @tarang-jain in #2770
  • Add copy_vectorized to RAFT by @lowener in #2900

🛠️ Improvements

  • Use strict priority in CI conda tests by @bdice in #2879
  • Use strict priority in CI conda tests by @bdice in #2884
  • Remove alpha specs from non-RAPIDS dependencies by @bdice in #2886
  • Enable merge barriers by @KyleFromNVIDIA in #2889
  • Fix is_exhaustive, no longer constexpr by @bdice in #2888
  • Add devcontainer fallback for C++ test location by @bdice in #2893
  • eigsh optional seed by @aamijar in #2899
  • Empty commit to trigger a build by @bdice in #2904
  • Update to C++20 by @divyegala in #2908
  • Use SPDX license identifiers in pyproject.toml, bump build dependency floors by @jameslamb in #2910
  • Remove neighbors/detail/faiss_select by @aamijar in #2902
  • Remove sparse/distance by @aamijar in #2905
  • Add CUDA 13.1 support by @bdice in #2896
  • Fix CCCL 3.2 mdspan constexpr issues by @bdice in #2911
  • build and test against CUDA 13.1.0 by @jameslamb in #2912
  • Laplacian Kernel for COO inputs by @aamijar in #2891
  • Empty commit to trigger a build by @jameslamb in #2919
  • Use main shared-workflows branch by @jameslamb in #2921
  • Fix update-version.sh incorrectly replacing main() function names by @AyodeAwe in #2923
  • Lanczos remove dead code by @aamijar in #2918
  • wheel builds: react to changes in pip's handling of build constraints by @mmccarty in #2927
  • fix(build): build package on merge to release/* branch by @gforsyth in #2929

New Contributors

  • @mmccarty made their first contribution in #2927

Full Changelog: https://github.com/rapidsai/raft/compare/v26.02.00a...release/26.02

raft 25.12.00 (10 Dec 2025)

🚨 Breaking Changes

  • More consistent container policies & host memory resource by @achirkin in #2835
  • Require CUDA 12.2+ by @jakirkham in #2850

🐛 Bug Fixes

  • Correct tagging in the irecv function of the STD communicator by @viclafargue in #2829
  • Fix copyright hook file exclusion by @KyleFromNVIDIA in #2840
  • Properly guard usage of openmp function calls by @robertmaynard in #2839
  • Fix reduce mdspan API by @lowener in #2853
  • Fix for STD comm waitall function by @viclafargue in #2852
  • Pin Cython pre-3.2.0 and PyTest pre-9 by @jakirkham in #2864
  • refactored update-version.sh to handle new branching strategy by @rockhowse in #2863
  • Fix laplacian scaling coefficients by @aamijar in #2871
  • Revert "Remove Deprecated API (#2813)" by @csadorf in #2881

📖 Documentation

  • Use current system architecture in conda environment creation command by @bdice in #2862

🚀 New Features

  • BENCH_PRIMS: convenience reporting of benchmark parameters and read throughput by @achirkin in #2824

🛠️ Improvements

  • Update to rapids-logger 0.2 by @bdice in #2828
  • Enable sccache-dist connection pool by @trxcllnt in #2837
  • Use main in RAPIDS_BRANCH by @bdice in #2842
  • Use main shared-workflows branch by @bdice in #2844
  • Use SPDX for all copyright headers by @KyleFromNVIDIA in #2845
  • Use ruff-check, ruff-format instead of black, flake8, isort by @KyleFromNVIDIA in #2855
  • Remove shims for CCCL < 3.1 compatibility by @bdice in #2858
  • Always convert warnings to errors by @jakirkham in #2857
  • Lanczos Solver with COO input and cusparse wrappers by @aamijar in #2851
  • COO support in sparse matrix utilities by @aamijar in #2861
  • Update RMM includes from <rmm/mr/device/*> to <rmm/mr/*> by @bdice in #2867
  • Use sccache-dist build cluster for conda and wheel builds by @trxcllnt in #2859
  • Remove Deprecated API by @jnke2016 in #2813

New Contributors

  • @rockhowse made their first contribution in #2863

Full Changelog: https://github.com/rapidsai/raft/compare/v25.12.00a...release/25.12

raft 25.10.00 (8 Oct 2025)

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 25.08.00 (6 Aug 2025)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🛠️ Improvements

raft 25.06.00 (5 Jun 2025)

🚨 Breaking Changes

  • Decoupling multi gpu resources from nccl usage (#2647) @jinsolp

🐛 Bug Fixes

🚀 New Features

🛠️ Improvements

raft 25.04.00 (9 Apr 2025)

🚨 Breaking Changes

🐛 Bug Fixes

🛠️ Improvements

raft 25.02.00 (13 Feb 2025)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 24.12.00 (11 Dec 2024)

🚨 Breaking Changes

  • Do not initialize the pinned mdarray at construction time (#2478) @achirkin

🐛 Bug Fixes

🚀 New Features

🛠️ Improvements

raft 24.10.00 (9 Oct 2024)

🚨 Breaking Changes

  • [Feat] add repeat, sparsity, eval_n_elements APIs to bitset (#2439) @rhdong

🐛 Bug Fixes

🚀 New Features

  • [Feat] add repeat, sparsity, eval_n_elements APIs to bitset (#2439) @rhdong
  • [Opt] Enforce the UT Coverity and add benchmark for transpose (#2438) @rhdong
  • [FEA] Support for half-float mixed precise in brute-force (#2382) @rhdong

🛠️ Improvements

raft 24.08.00 (7 Aug 2024)

🚨 Breaking Changes

🐛 Bug Fixes

🚀 New Features

🛠️ Improvements

raft 24.06.00 (5 Jun 2024)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 24.04.00 (10 Apr 2024)

🐛 Bug Fixes

📖 Documentation

  • Adding cuVS notice to README and front page of docs. (#2224) @cjnolet

🚀 New Features

🛠️ Improvements

raft 24.02.00 (12 Feb 2024)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 23.12.00 (6 Dec 2023)

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 23.10.00 (11 Oct 2023)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

  • [FEA] Add bitset_filter for CAGRA indices removal (#1837) @lowener
  • ann-bench: miscellaneous improvements (#1808) @achirkin
  • [FEA] Add bitset for ANN pre-filtering and deletion (#1803) @lowener
  • Adding config files for remaining (relevant) ann-benchmarks million-scale datasets (#1761) @cjnolet
  • Port NN-descent algorithm to use in cagra::build() (#1748) @divyegala
  • Adding conda build for libraft static (#1746) @cjnolet
  • [FEA] Provide device_resources_manager for easy generation of device_resources (#1716) @wphicks

🛠️ Improvements

raft 23.08.00 (9 Aug 2023)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

  • Critical doc fixes and updates for 23.08 (#1705) @cjnolet
  • Fix the documentation about changing the logging level (#1596) @enp1s0
  • Fix raft::bitonic_sort small usage example (#1580) @enp1s0

🚀 New Features

🛠️ Improvements

raft 23.06.00 (7 Jun 2023)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 23.04.00 (6 Apr 2023)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 23.02.00 (9 Feb 2023)

🚨 Breaking Changes

  • Remove faiss ANN code from knnIndex (#1121) @benfred
  • Use GenPC (Permuted Congruential) as the default random number generator everywhere (#1099) @Nyrio

🐛 Bug Fixes

  • Reverting a few commits from 23.02 and speeding up end-to-end build time (#1232) @cjnolet
  • Update README.md: fix a missing word (#1185) @achirkin
  • balanced-k-means: fix a too large initial memory pool size (#1148) @achirkin
  • Catch signal handler change error (#1147) @tfeher
  • Squared norm fix follow-up (change was lost in merge conflict) (#1144) @Nyrio
  • IVF-Flat bug fix: the squared norm is required for expanded distance calculations (#1141) @Nyrio
  • build.sh switch to use RAPIDS magic value (#1132) @robertmaynard
  • Fix euclidean_dist in IVF-Flat search (#1122) @Nyrio
  • Update handle docstring (#1103) @dantegd
  • Pin libcusparse and libcusolver to avoid CUDA 12 (#1095) @wphicks
  • Fix race condition in raft::random::discrete (#1094) @Nyrio
  • Fixing libraft conda recipes (#1084) @cjnolet
  • Ensure that we get the cuda version of faiss. (#1078) @vyasr
  • Fix double definition error in ANN refinement header (#1067) @tfeher
  • Specify correct global targets names to raft_export (#1054) @robertmaynard
  • Fix concurrency issues in k-means++ initialization (#1048) @Nyrio

📖 Documentation

  • Adding small comms tutorial to docs (#1204) @cjnolet
  • Separating more namespaces into easier-to-consume sections (#1091) @cjnolet
  • Paying down some tech debt on docs, runtime API, and cython (#1055) @cjnolet

🚀 New Features

  • Add function to convert mdspan to a const view (#1188) @lowener
  • Internal library to share headers between test and bench (#1162) @achirkin
  • Add public API and tests for hierarchical balanced k-means (#1113) @Nyrio
  • Export NCCL dependency as part of raft::distributed. (#1077) @vyasr
  • Serialization of IVF Flat and IVF PQ (#919) @tfeher

🛠️ Improvements

raft 22.12.00 (8 Dec 2022)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

  • Pin dask and distributed for release (#1062) @galipremsagar
  • IVF-PQ: use device properties helper (#1035) @achirkin
  • Make ucx linkage explicit and add a new CMake target for it (#1032) @vyasr
  • Fixing broken doc functions and improving coverage (#1030) @cjnolet
  • Expose cluster_cost to python (#1028) @benfred
  • Adding lightweight cai_wrapper to reduce boilerplate (#1027) @cjnolet
  • Change raft docs theme to pydata-sphinx-theme (#1026) @galipremsagar
  • Revert " Pin dask and distributed for release" (#1023) @galipremsagar
  • Pin dask and distributed for release (#1022) @galipremsagar
  • Replace dots_along_rows with rowNorm and improve coalescedReduction performance (#1011) @Nyrio
  • Moving TestDeviceBuffer to pylibraft.common.device_ndarray (#1008) @cjnolet
  • Add codespell as a linter (#1007) @benfred
  • Fix environment channels (#996) @bdice
  • Automatically sync handle when not passed to pylibraft functions (#987) @benfred
  • Replace normalize_rows in ann_utils.cuh by a new rowNormalize prim and improve performance for thin matrices (small n_cols) (#979) @Nyrio
  • Forward merge 22.10 into 22.12 (#978) @vyasr
  • Use new rapids-cmake functionality for rpath handling. (#976) @vyasr
  • Update cuda-python dependency to 11.7.1 (#975) @galipremsagar
  • IVF-PQ Python wrappers (#970) @tfeher
  • Remove unnecessary requirements for raft-dask. (#969) @vyasr
  • Expose linalg::dot in public API (#968) @benfred
  • Fix kmeans cluster templates (#966) @lowener
  • Run linters using pre-commit (#965) @benfred
  • linewiseop padded span test (#964) @mfoerste4
  • Add unittest for linalg::mean_squared_error (#961) @benfred
  • Exposing fused l2 knn to public APIs (#959) @cjnolet
  • Remove a left over print statement from pylibraft (#958) @betatim
  • Switch to using rapids-cmake for gbench. (#954) @vyasr
  • Some cleanup of k-means internals (#953) @cjnolet
  • Remove stale labeler (#951) @raydouglass
  • Adding optional handle to each public API function (along with example) (#947) @cjnolet
  • Improving documentation across the board. Adding quick-start to breathe docs. (#943) @cjnolet
  • Add unittest for linalg::axpy (#942) @benfred
  • Add cutlass 3xTF32,DMMA based L2/cosine distance kernels for SM 8.0 or higher (#939) @mdoijade
  • Calculate max cluster size correctly for IVF-PQ (#938) @tfeher
  • Add tests for raft::matrix (#937) @lowener
  • Add fusedL2NN benchmark (#936) @Nyrio
  • ivf-pq performance tweaks (#926) @achirkin
  • Adding fused_l2_nn_argmin wrapper to Pylibraft (#924) @cjnolet
  • Moving kernel gramm primitives to raft::distance::kernels (#920) @cjnolet
  • kmeans improvements: random initialization on GPU, NVTX markers, no batching when using fusedL2NN (#918) @Nyrio
  • Moving raft::spatial::knn -> raft::neighbors (#914) @cjnolet
  • Create cub-based argmin primitive and replace argmin_along_rows in ANN kmeans (#912) @Nyrio
  • Replace map_along_rows with matrixVectorOp (#911) @Nyrio
  • Integrate accumulate_into_selected from ANN utils into linalg::reduce_rows_by_keys (#909) @Nyrio
  • Re-enabling Fused L2 NN specializations and renaming cub::KeyValuePair -> raft::KeyValuePair (#905) @cjnolet
  • Unpin dask and distributed for development (#886) @galipremsagar
  • Adding padded layout 'layout_padded_general' (#725) @mfoerste4

raft 22.10.00 (12 Oct 2022)

🚨 Breaking Changes

  • Separating mdspan/mdarray infra into host_* and device_* variants (#810) @cjnolet
  • Remove type punning from TxN_t (#781) @wphicks
  • ivf_flat::index: hide implementation details (#747) @achirkin

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 22.08.00 (17 Aug 2022)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 22.06.00 (7 Jun 2022)

🚨 Breaking Changes

  • Rng: removed cyclic dependency creating hard-to-debug compiler errors (#639) @MatthiasKohl
  • Allow enabling NVTX markers by downstream projects after install (#610) @achirkin
  • Rng: expose host-rng-state in host-only API (#609) @MatthiasKohl

🐛 Bug Fixes

🚀 New Features

🛠️ Improvements

raft 22.04.00 (6 Apr 2022)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 22.02.00 (2 Feb 2022)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

raft 21.12.00 (9 Dec 2021)

🚨 Breaking Changes

  • Use 64 bit CuSolver API for Eigen decomposition (#349) @lowener

🐛 Bug Fixes

📖 Documentation

🛠️ Improvements

raft 21.10.00 (7 Oct 2021)

🚨 Breaking Changes

🐛 Bug Fixes

  • Accounting for rmm::cuda_stream_pool not having a constructor for 0 streams (#329) @divyegala
  • Fix wrong lda parameter in gemv (#327) @achirkin
  • Fix matrixVectorOp to verify promoted pointer type is still aligned to vectorized load boundary (#325) @viclafargue
  • Pin rmm to branch-21.10 and remove warnings from kmeans.hpp (#322) @dantegd
  • Temporarily pin RMM while refactor removes deprecated calls (#315) @dantegd
  • Fix more warnings (#311) @harrism

📖 Documentation

🚀 New Features

  • Add Hamming, Jensen-Shannon, KL-Divergence, Russell rao and Correlation distance metrics support (#306) @mdoijade

🛠️ Improvements

raft 21.08.00 (4 Aug 2021)

🚨 Breaking Changes

🐛 Bug Fixes

  • Fix support for different input and output types in linalg::reduce (#296) @Nyrio
  • Const raft handle in sparse bfknn (#280) @cjnolet
  • Add cuco::cuco to list of linked libraries (#279) @trxcllnt
  • Use nested include in destination of install headers to avoid docker permission issues (#263) @dantegd
  • Update UCX-Py version to 0.21 (#255) @pentschev
  • Fix mst knn test build failure due to RMM device_buffer change (#253) @mdoijade

🚀 New Features

🛠️ Improvements

raft 21.06.00 (9 Jun 2021)

🐛 Bug Fixes

🛠️ Improvements

raft 0.19.0 (21 Apr 2021)

🐛 Bug Fixes

🚀 New Features

  • Moving optimized L2 1-nearest neighbors implementation from cuml (#158) @cjnolet

🛠️ Improvements

raft 0.18.0 (24 Feb 2021)

Breaking Changes 🚨

  • Make NCCL root initialization configurable. (#120) @drobison00

Bug Fixes 🐛

  • Add idx_t template parameter to matrix helper routines (#131) @tfeher
  • Eliminate CUDA 10.2 as valid for large svd solving (#129) @wphicks
  • Update check to allow svd solver on CUDA>=10.2 (#125) @wphicks
  • Updating gpu build.sh and debugging threads CI issue (#123) @dantegd

New Features 🚀

  • Adding additional distances (#116) @cjnolet

Improvements 🛠️

  • Update stale GHA with exemptions & new labels (#152) @mike-wendt
  • Add GHA to mark issues/prs as stale/rotten (#150) @Ethyling
  • Prepare Changelog for Automation (#135) @ajschmidt8
  • Adding Jensen-Shannon and BrayCurtis to DistanceType for Nearest Neighbors (#132) @lowener
  • Add brute force KNN (#126) @hlinsen
  • Make NCCL root initialization configurable. (#120) @drobison00
  • Auto-label PRs based on their content (#117) @jolorunyomi
  • Add gather & gatherv to raft::comms::comms_t (#114) @seunghwak
  • Adding canberra and chebyshev to distance types (#99) @cjnolet
  • Gpuciscripts clean and update (#92) @msadang

RAFT 0.17.0 (10 Dec 2020)

New Features

  • PR #65: Adding cuml prims that break circular dependency between cuml and cumlprims projects
  • PR #101: MST core solver
  • PR #93: Incorporate Date/Nagi implementation of Hungarian Algorithm
  • PR #94: Allow generic reductions for the map then reduce op
  • PR #95: Cholesky rank one update prim

Improvements

  • PR #108: Remove unused old-gpubuild.sh
  • PR #73: Move DistanceType enum from cuML to RAFT
  • pr #92: Cleanup gpuCI scripts
  • PR #98: Adding InnerProduct to DistanceType
  • PR #103: Epsilon parameter for Cholesky rank one update
  • PR #100: Add divyegala as codeowner
  • PR #111: Cleanup gpuCI scripts
  • PR #120: Update NCCL init process to support root node placement.

Bug Fixes

  • PR #106: Specify dependency branches to avoid pip resolver failure
  • PR #77: Fixing CUB include for CUDA < 11
  • PR #86: Missing headers for newly moved prims
  • PR #102: Check alignment before binaryOp dispatch
  • PR #104: Fix update-version.sh
  • PR #109: Fixing Incorrect Deallocation Size and Count Bugs

RAFT 0.16.0 (Date TBD)

New Features

  • PR #63: Adding MPI comms implementation
  • PR #70: Adding CUB to RAFT cmake

Improvements

  • PR #59: Adding csrgemm2 to cusparse_wrappers.h
  • PR #61: Add cusparsecsr2dense to cusparse_wrappers.h
  • PR #62: Adding get_device_allocator to handle.pxd
  • PR #67: Remove dependence on run-time type info

Bug Fixes

  • PR #56: Fix compiler warnings.
  • PR #64: Remove cublas_try from cusolver_wrappers.h
  • PR #66: Fixing typo get_stream to getStream in handle.pyx
  • PR #68: Change the type of recvcounts & displs in allgatherv from size_t[] to size_t* and int[] to size_t*, respectively.
  • PR #69: Updates for RMM being header only
  • PR #74: Fix std_comms::comm_split bug
  • PR #79: remove debug print statements
  • PR #81: temporarily expose internal NCCL communicator

RAFT 0.15.0 (Date TBD)

New Features

  • PR #12: Spectral clustering.
  • PR #7: Migrating cuml comms -> raft comms_t
  • PR #18: Adding commsplit to cuml communicator
  • PR #15: add exception based error handling macros
  • PR #29: Add ceildiv functionality
  • PR #44: Add get_subcomm and set_subcomm to handle_t

Improvements

  • PR #13: Add RMM_INCLUDE and RMM_LIBRARY options to allow linking to non-conda RMM
  • PR #22: Preserve order in comms workers for rank initialization
  • PR #38: Remove #include <cudar_utils.h> from raft/mr/
  • PR #39: Adding a virtual destructor to raft::handle_t and raft::comms::comms_t
  • PR #37: Clean-up CUDA related utilities
  • PR #41: Upgrade to cusparseSpMV(), alg selection, and rectangular matrices.
  • PR #45: Add Ampere target to cuda11 cmake
  • PR #47: Use gtest conda package in CMake/build.sh by default

Bug Fixes

  • PR #17: Make destructor inline to avoid redeclaration error
  • PR #25: Fix bug in handle_t::get_internal_streams
  • PR #26: Fix bug in RAFT_EXPECTS (add parentheses surrounding cond)
  • PR #34: Fix issue with incorrect docker image being used in local build script
  • PR #35: Remove #include <nccl.h> from raft/error.hpp
  • PR #40: Preemptively fixed future CUDA 11 related errors.
  • PR #43: Fixed CUDA version selection mechanism for SpMV.
  • PR #46: Fix for cpp file extension issue (nvcc-enforced).
  • PR #48: Fix gtest target names in cmake build gtest option.
  • PR #49: Skip raft comms test if raft module doesn't exist

RAFT 0.14.0 (Date TBD)

New Features

  • Initial RAFT version
  • PR #3: defining raft::handle_t, device_buffer, host_buffer, allocator classes

Bug Fixes

  • PR #5: Small build.sh fixes