Skip to content

Releases: rapidsai/cuvs

v25.10.00

08 Oct 19:39

Choose a tag to compare

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

[NIGHTLY] v25.12.00

02 Oct 16:47

Choose a tag to compare

[NIGHTLY] v25.12.00 Pre-release
Pre-release

🔗 Links

🚨 Breaking Changes

🐛 Bug Fixes

🚀 New Features

🛠️ Improvements

v25.08.00

06 Aug 19:25
9ce11a0

Choose a tag to compare

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

  • Check shape is initialized in cuvsMatrixSliceRows (#1193) @benfred
  • Add error checking for our C example code (#1171) @benfred
  • Removing all references to CUDA 11 from codebase (#1150) @cjnolet
  • [Java]Fixed TieredIndexParams creation/destruction, calling cuvsTieredIndexParamsCreate (#1147) @punAhuja
  • Fix update-version (#1135) @AyodeAwe
  • Reducing binary size in ivf_pq by deduplicating kernels (#1130) @jinsolp
  • fix(docker): use versioned -latest tag for all rapidsai images (#1129) @gforsyth
  • SCaNN Index build (#1120) @rmaschal
  • [Java] Extend Dataset to work as an output data container (#1111) @ldematte
  • [Java] Fix HNSW params allocation (#1110) @ldematte
  • [Java] Fix CAGRA params allocation (#1109) @ldematte
  • [Java] Fix POM (#1106) @ldematte
  • Enforce java codeowners for managing contents of java/ (#1103) @cjnolet
  • Reduce binary size of refine functions (#1095) @tfeher
  • [Java] Introduce scoped resource access (#1089) @ldematte
  • Expose graph and dataset accessors for CAGRA to C/Python (#1086) @benfred
  • Add warning for unused GPU when n_clusters < n_ranks in batch all_neighbors (#1072) @jinsolp
  • [Java] Tidy up MemorySegments lifecycle (#1069) @ldematte
  • [Java] Refactor SearchResults implementation classes (#1067) @ldematte
  • Use CUDA 12.9 in Conda, Devcontainers, Spark, GHA, etc. (#1063) @jakirkham
  • Exporting changed graph_build_params namespace into all_neighbors (#1060) @jinsolp
  • hnsw::from_cagra: avoid allocating the graph twice (#1057) @achirkin
  • Improve memory efficiency for returning NN Descent distances (#1053) @jinsolp
  • Deprecation notice for batching code specific to NN Descent (#1052) @jinsolp
  • Remove nvidia and dask channels (#1050) @vyasr
  • [Java] Enforce Java code format standard (#1049) @narangvivek10
  • Make rust publish run after conda upload (#1047) @AyodeAwe
  • refactor(cuda11): remove cuda11-only conda channels, cleanup docs (#1046) @gforsyth
  • [Review][Java] Fix random segabort/segfault/double free problems (#1045) @ldematte
  • [Java] Add Dataset based on MemorySegment (#1034) @ldematte
  • [Java] Add Java API benchmarks (#1033) @ldematte
  • fix(cli): Add validation for search-mode parameter (#1026) @mayani-nv
  • [Java] Encapsulate on-heap float arrays into Dataset (#1024) @ldematte
  • refactor(shellcheck): fix all remaining warnings/errors (#1019) @gforsyth
  • Instantiate only specific RAFT linewise kernels (#1018) @aamijar
  • Update nightly CI check to allow 30 days of failing nightly build. (#1008) @cjnolet
  • [Java] Using functions for mapping (#1007) @ldematte
  • [REVIEW][Java] Refactor CagraBuildAndSearchIT to explicitly express different execution modes (#1006) @ldematte
  • [REVIEW][Java] Add jextract artifacts to gitignore (#1005) @ldematte
  • Remove pytest pin (#998) @vyasr
  • [java] Utility function for cudaMemcpy (#983) @mythrocks
  • [java] Copy pom.xml to target/ on build (#981) @mythrocks
  • Remove CUDA 11 from dependencies.yaml (#962) @KyleFromNVIDIA
  • refactor(rattler): remove cuda11 options and general cleanup (#961) @gforsyth
  • Remove CUDA 11 devcontainers and update CI scripts (#960) @bdice
  • Common knn graph build params (#949) @jinsolp
  • stop uploading packages to downloads.rapids.ai (#940) @jameslamb
  • Instantiate only specific RAFT reduction kernels (#925) @divyegala
  • [Java] Replace the C wrapper layer with the Panama API-based Java implementation (#916) @narangvivek10
  • Forward-merge branch-25.06 into branch-25.08 (#909) @gforsyth
  • Forward-merge branch-25.06 into branch-25.08 (#897) @gforsyth
  • Serialize Vamana index with SSD sector alignment per MSFT DiskANN format, generate quantized dataset for integration with DiskANN (#846) @jamxia155
  • Add mean and median threshold modes to binary quantization (#716) @enp1s0

v25.06.01

24 Jun 16:02
27b7272

Choose a tag to compare

🚨 Breaking Changes

  • [Java] Adding support for prefiltering in CAGRA (#870) @punAhuja

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

  • Update score calculation for CAGRA-Q instance selection (#938) @enp1s0
  • [FEA] Use Native Brute Force for Sparse Pairwise KNN (#927) @tarang-jain
  • use 'rapids-init-pip' in wheel CI, other CI changes (#917) @jameslamb
  • ANN_BENCH: Avoid repeated calls to raft::get_device_for_address in CAGRA search (#908) @achirkin
  • [Java] New off-heap Dataset support for CAGRA and Bruteforce (#902) @chatman
  • Finish CUDA 12.9 migration and use branch-25.06 workflows (#901) @bdice
  • Update to clang 20 (#898) @bdice
  • get Java artifacts from GitHub Actions artifact store (#893) @jameslamb
  • Quote head_rev in conda recipes (#892) @bdice
  • [Java] Exposing merge API for multiple CAGRA indices (#891) @punAhuja
  • Expose ivf-flat centers to python/c (#888) @benfred
  • CUDA 12.9 use updated compression flags (#887) @robertmaynard
  • Expose ivf-pq centers to python/c (#881) @benfred
  • Accept host inputs in python for ivf-pq build and extend (#880) @benfred
  • Add tiered_index support (#879) @benfred
  • Exclude librmm.so from auditwheel (#878) @bdice
  • update.version.sh: remove broken reference, skip most CI on PRs that only modify update-version.sh (#875) @jameslamb
  • Add support for Python 3.13 (#874) @gforsyth
  • chore: lower wheel size threshold (#872) @gforsyth
  • [Java] Adding support for prefiltering in CAGRA (#870) @punAhuja
  • Change snmg index to use updated multi gpu resource API (#869) @jinsolp
  • run shellcheck on all files, other small pre-commit updates (#865) @jameslamb
  • Fix IVF PQ build metric for CAGRA (#862) @lowener
  • ANN_BENCH: Expose parallel_mode parameter of FAISS CPU IVF implementation (#861) @achirkin
  • Specify matplotlib version (#839) @benfred
  • Use random tmp names for index files in tests (#837) @achirkin
  • Download build artifacts from Github for CI (#834) @VenkateshJaya
  • Add NN-Descent return_distances functionality to python/C (#833) @benfred
  • Optimize hnsw::from_cagra<GPU> (#826) @achirkin
  • Use vendored RAPIDS.cmake in example code. (#824) @bdice
  • refactor(rattler): enable strict channel priority for builds (#823) @gforsyth
  • Reduce device memory usage for CAGRA's graph optimization process (2-hop detour counting) (#822) @anaruse
  • [cuvs_bench] distinguish search label from build label in data_export.py (#818) @jiangyinzuo
  • Vendor RAPIDS.cmake (#816) @bdice
  • Update libcuvs libraft ver to 25.06 in conda env (#808) @jinsolp
  • Moving NN Descent class and struct declarations to nn_descent_gnnd.hpp (#803) @jinsolp
  • Remove @rapidsai/cuvs-build-codeowners (#783) @KyleFromNVIDIA
  • Moving wheel builds to specified location and uploading build artifacts to Github (#777) @VenkateshJaya
  • Remove unused raft cagra header in add_nodes.cuh (#741) @jiangyinzuo
  • Expose kmeans to python (#729) @benfred
  • Update cuvs to properly create a NCCL::NCCL target (#720) @robertmaynard
  • Optimize euclidean distance in host refine phase (#689) @anstellaire
  • Moving MG functions into unified API + raft::device_resources_snmg as device resource type for MG functions (#454) @viclafargue
  • Moving random ball cover (#218) @cjnolet

v25.06.00

05 Jun 20:15
v25.06.00
2e20f1e

Choose a tag to compare

🚨 Breaking Changes

  • [Java] Adding support for prefiltering in CAGRA (#870) @punAhuja

🐛 Bug Fixes

  • Fix failing CAGRA merge google tests for 25.06 (#974) @rhdong
  • Fix for recent NCCL resource update (#968) @viclafargue
  • Revert "Fix kmeans::predict argument order (#915)" (#951) @divyegala
  • IVF-PQ tests: fix segfault when accessing empty lists (#933) @achirkin
  • batch_load_iterator shall copy data located in host memory (#926) @tfeher
  • Fix kmeans::predict argument order (#915) @enp1s0
  • ANN_BENCH: fix the reported core count (#896) @achirkin
  • CUVS_ANN_BENCH_SINGLE_EXE: find the mg library (#890) @achirkin
  • [FIX] Revert negated InnerProduct distance for NN Descent (#859) @jinsolp
  • IVF-PQ tests: fix segfault when accessing empty lists (#838) @achirkin
  • [CuVS-Java] Automate panama bindings generation, Include IVF_PQ parameters in CAGRA index parameters and other changes (#831) @narangvivek10
  • Ann-bench: fix unsafe lazy blobs (#828) @achirkin
  • Fix test_brute_force conversion (#821) @lowener
  • [FEA] New algos and updates/corrections to Faiss cuvs-bench (#677) @tarang-jain

📖 Documentation

🚀 New Features

🛠️ Improvements

  • Update score calculation for CAGRA-Q instance selection (#938) @enp1s0
  • [FEA] Use Native Brute Force for Sparse Pairwise KNN (#927) @tarang-jain
  • use 'rapids-init-pip' in wheel CI, other CI changes (#917) @jameslamb
  • ANN_BENCH: Avoid repeated calls to raft::get_device_for_address in CAGRA search (#908) @achirkin
  • [Java] New off-heap Dataset support for CAGRA and Bruteforce (#902) @chatman
  • Finish CUDA 12.9 migration and use branch-25.06 workflows (#901) @bdice
  • Update to clang 20 (#898) @bdice
  • get Java artifacts from GitHub Actions artifact store (#893) @jameslamb
  • Quote head_rev in conda recipes (#892) @bdice
  • [Java] Exposing merge API for multiple CAGRA indices (#891) @punAhuja
  • Expose ivf-flat centers to python/c (#888) @benfred
  • CUDA 12.9 use updated compression flags (#887) @robertmaynard
  • Expose ivf-pq centers to python/c (#881) @benfred
  • Accept host inputs in python for ivf-pq build and extend (#880) @benfred
  • Add tiered_index support (#879) @benfred
  • Exclude librmm.so from auditwheel (#878) @bdice
  • update.version.sh: remove broken reference, skip most CI on PRs that only modify update-version.sh (#875) @jameslamb
  • Add support for Python 3.13 (#874) @gforsyth
  • chore: lower wheel size threshold (#872) @gforsyth
  • [Java] Adding support for prefiltering in CAGRA (#870) @punAhuja
  • Change snmg index to use updated multi gpu resource API (#869) @jinsolp
  • run shellcheck on all files, other small pre-commit updates (#865) @jameslamb
  • Fix IVF PQ build metric for CAGRA (#862) @lowener
  • ANN_BENCH: Expose parallel_mode parameter of FAISS CPU IVF implementation (#861) @achirkin
  • Specify matplotlib version (#839) @benfred
  • Use random tmp names for index files in tests (#837) @achirkin
  • Download build artifacts from Github for CI (#834) @VenkateshJaya
  • Add NN-Descent return_distances functionality to python/C (#833) @benfred
  • Optimize hnsw::from_cagra<GPU> (#826) @achirkin
  • Use vendored RAPIDS.cmake in example code. (#824) @bdice
  • refactor(rattler): enable strict channel priority for builds (#823) @gforsyth
  • Reduce device memory usage for CAGRA's graph optimization process (2-hop detour counting) (#822) @anaruse
  • [cuvs_bench] distinguish search label from build label in data_export.py (#818) @jiangyinzuo
  • Vendor RAPIDS.cmake (#816) @bdice
  • Update libcuvs libraft ver to 25.06 in conda env (#808) @jinsolp
  • Moving NN Descent class and struct declarations to nn_descent_gnnd.hpp (#803) @jinsolp
  • Remove @rapidsai/cuvs-build-codeowners (#783) @KyleFromNVIDIA
  • Moving wheel builds to specified location and uploading build artifacts to Github (#777) @VenkateshJaya
  • Remove unused raft cagra header in add_nodes.cuh (#741) @jiangyinzuo
  • Expose kmeans to python (#729) @benfred
  • Update cuvs to properly create a NCCL::NCCL target (#720) @robertmaynard
  • Optimize euclidean distance in host refine phase (#689) @anstellaire
  • Moving MG functions into unified API + raft::device_resources_snmg as device resource type for MG functions (#454) @viclafargue
  • Moving random ball cover (#218) @cjnolet

v25.04.00

09 Apr 20:04
8417098

Choose a tag to compare

🚨 Breaking Changes

🐛 Bug Fixes

  • Use new build_patch_only argument (#780) @KyleFromNVIDIA
  • Fix resource import so generate_groundtruth works (#774) @nvrohanv
  • Relax max duplicates in batched NN Descent (#770) @jinsolp
  • [BUG] Fix graph index sorting in CAGRA graph build by NN Descent (#763) @enp1s0
  • cuvs-bench-cpu: avoid 'mkl' dependency on aarch64 (#750) @jameslamb
  • ANN_BENCH: Fix segfault in CAGRA wrapper when moving its graph (#733) @achirkin
  • Fix duplicate indices in batch NN Descent (#702) @jinsolp

📖 Documentation

🚀 New Features

🛠️ Improvements

[NIGHTLY] v25.06.00

24 Jun 16:03
v25.06.00a
2f9df39

Choose a tag to compare

[NIGHTLY] v25.06.00 Pre-release
Pre-release

🔗 Links

🚨 Breaking Changes

  • [Java] Adding support for prefiltering in CAGRA (#870) @punAhuja

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

  • Update score calculation for CAGRA-Q instance selection (#938) @enp1s0
  • [FEA] Use Native Brute Force for Sparse Pairwise KNN (#927) @tarang-jain
  • use 'rapids-init-pip' in wheel CI, other CI changes (#917) @jameslamb
  • ANN_BENCH: Avoid repeated calls to raft::get_device_for_address in CAGRA search (#908) @achirkin
  • [Java] New off-heap Dataset support for CAGRA and Bruteforce (#902) @chatman
  • Finish CUDA 12.9 migration and use branch-25.06 workflows (#901) @bdice
  • Update to clang 20 (#898) @bdice
  • get Java artifacts from GitHub Actions artifact store (#893) @jameslamb
  • Quote head_rev in conda recipes (#892) @bdice
  • [Java] Exposing merge API for multiple CAGRA indices (#891) @punAhuja
  • Expose ivf-flat centers to python/c (#888) @benfred
  • CUDA 12.9 use updated compression flags (#887) @robertmaynard
  • Expose ivf-pq centers to python/c (#881) @benfred
  • Accept host inputs in python for ivf-pq build and extend (#880) @benfred
  • Add tiered_index support (#879) @benfred
  • Exclude librmm.so from auditwheel (#878) @bdice
  • update.version.sh: remove broken reference, skip most CI on PRs that only modify update-version.sh (#875) @jameslamb
  • Add support for Python 3.13 (#874) @gforsyth
  • chore: lower wheel size threshold (#872) @gforsyth
  • [Java] Adding support for prefiltering in CAGRA (#870) @punAhuja
  • Change snmg index to use updated multi gpu resource API (#869) @jinsolp
  • run shellcheck on all files, other small pre-commit updates (#865) @jameslamb
  • Fix IVF PQ build metric for CAGRA (#862) @lowener
  • ANN_BENCH: Expose parallel_mode parameter of FAISS CPU IVF implementation (#861) @achirkin
  • Specify matplotlib version (#839) @benfred
  • Use random tmp names for index files in tests (#837) @achirkin
  • Download build artifacts from Github for CI (#834) @VenkateshJaya
  • Add NN-Descent return_distances functionality to python/C (#833) @benfred
  • Optimize hnsw::from_cagra<GPU> (#826) @achirkin
  • Use vendored RAPIDS.cmake in example code. (#824) @bdice
  • refactor(rattler): enable strict channel priority for builds (#823) @gforsyth
  • Reduce device memory usage for CAGRA's graph optimization process (2-hop detour counting) (#822) @anaruse
  • [cuvs_bench] distinguish search label from build label in data_export.py (#818) @jiangyinzuo
  • Vendor RAPIDS.cmake (#816) @bdice
  • Update libcuvs libraft ver to 25.06 in conda env (#808) @jinsolp
  • Moving NN Descent class and struct declarations to nn_descent_gnnd.hpp (#803) @jinsolp
  • Remove @rapidsai/cuvs-build-codeowners (#783) @KyleFromNVIDIA
  • Moving wheel builds to specified location and uploading build artifacts to Github (#777) @VenkateshJaya
  • Remove unused raft cagra header in add_nodes.cuh (#741) @jiangyinzuo
  • Expose kmeans to python (#729) @benfred
  • Update cuvs to properly create a NCCL::NCCL target (#720) @robertmaynard
  • Optimize euclidean distance in host refine phase (#689) @anstellaire
  • Moving MG functions into unified API + raft::device_resources_snmg as device resource type for MG functions (#454) @viclafargue
  • Moving random ball cover (#218) @cjnolet

v25.02.01

03 Mar 19:30
v25.02.01
20b6775

Choose a tag to compare

🚨 Breaking Changes

  • [Fix] Various fixes for 25.02.01 point release (#695) @rhdong
  • update pip devcontainers to UCX 1.18, small update-version.sh fixes (#604) @jameslamb
  • Improve the performance of CAGRA new vector addition with the default params (#569) @enp1s0
  • Update for raft logger changes (#540) @vyasr

🐛 Bug Fixes

  • [Fix] Various fixes for 25.02.01 point release (#695) @rhdong
  • Fix ann-bench dataset blob integer overflow leading to incorrect data copy beyond 4B elems (#671) @achirkin
  • Fix ann-bench deadlocking on HNSW destruction due to task locks (#667) @achirkin
  • cuvs-bench Fixes (#654) @tarang-jain
  • Fix std::lock_guard use for gcc 14 support (#639) @enp1s0
  • Fix indexing bug when using parallelism to build CPU hierarchy in HNSW (#620) @divyegala
  • add runtime dependency on libcuvs in cuvs wheels (#615) @jameslamb
  • Temporarily skip CUDA 11 wheel CI (#599) @bdice
  • [Fix] l2_exp random fail in half-float32 mixed precision on self-neighboring (#596) @rhdong
  • Add CAGRA InnerProduct test and fix a bug (#595) @enp1s0
  • fix cuvs_bench.run --groups options (#592) @jiangyinzuo
  • Fix cagra_hnsw serialization when dataset is not part of index (#591) @tfeher
  • fix create_pointset for throughput mode (#589) @jiangyinzuo
  • Fix the use of constexpr in the dynamic batching header (#582) @achirkin
  • Reduce the recall threshold for IVF-PQ low-precision LUT inner product tests (#573) @achirkin
  • Small fixes to docs and pairwise distances (#570) @cjnolet
  • [BUG] Fix CAGRA graph optimization bug (#565) @enp1s0
  • Fix broken link to python doc (#564) @lowener
  • Fix cagra::extend error message (#532) @enp1s0
  • Fix Grace-specific issues in CAGRA (#527) @achirkin

📖 Documentation

🚀 New Features

🛠️ Improvements

v24.12.00

11 Dec 20:15
v24.12.00
0ce6a03

Choose a tag to compare

🚨 Breaking Changes

🐛 Bug Fixes

  • Skip IVF-PQ packing test for lists with not enough data (#512) @achirkin
  • [BUG] Fix CAGRA filter (#489) @enp1s0
  • Add kIsSingleSource to PairwiseDistanceEpilogueElementwise (#485) @KyleFromNVIDIA
  • Fix include errors, header, and unsafe locks in iface.hpp (#467) @achirkin
  • Fix an OOB error in device-side cuvs::neighbors::refine and CAGRA kern_prune (#460) @achirkin
  • Put a ceiling on cuda-python (#445) @bdice
  • Enable NVTX in cuvs-cagra-search component (#439) @achirkin
  • BUG: CAGRA multi-cta illegal access with bad queries (#438) @achirkin
  • Fix index overflow in edge cases of CAGRA graph optimize (#435) @achirkin
  • Fix correct call to brute force in generate groundtruth of cuvs-bench (#427) @dantegd
  • Use Python for sccache hit rate computation. (#420) @bdice
  • Add click package to cuvs-bench conda recipe (#408) @divyegala
  • Fix NVTX annotations (#400) @achirkin

📖 Documentation

🚀 New Features

🛠️ Improvements

v24.10.00

09 Oct 18:26
v24.10.00
7de3a05

Choose a tag to compare

🐛 Bug Fixes

  • Use 64 bit types for dataset size calculation in CAGRA graph optimizer (#380) @tfeher
  • Remove EXPLICIT_INSTANTIATE_ONLY macros (#358) @achirkin
  • Fix order of operations for cosine IVF Flat (#329) @lowener
  • Exclude any kernel symbol that uses cutlass (#314) @benfred
  • [Fix] pin raft dependent to rapidsai (#299) @rhdong
  • Fix dataset dimension in IVF-PQ C wrappers (#292) @tfeher
  • Fix python ivf-pq for int8/uint8 dtypes (#271) @benfred
  • FP16 API for CAGRA and IVF-PQ (#264) @tfeher

📖 Documentation

🚀 New Features

🛠️ Improvements