Skip to content

Latest commit

 

History

History
1433 lines (1229 loc) · 148 KB

CHANGELOG.md

File metadata and controls

1433 lines (1229 loc) · 148 KB

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