Skip to content

Latest commit

 

History

History
1005 lines (899 loc) · 107 KB

File metadata and controls

1005 lines (899 loc) · 107 KB

cuvs 26.04.00 (8 Apr 2026)

🚨 Breaking Changes

  • Use HNSW GPU Hierarchy by Default by @julianmi in #1617
  • Backport "Default to static linking of libcudart" by @KyleFromNVIDIA in #1918
  • enforce a floor on libnvjitlink, build wheels with CUDA 13.0.x, test wheels against mix of CTK versions by @jameslamb in #1862

🐛 Bug Fixes

  • Add float16 support for CAGRA extend by @lowener in #1620
  • Fix C examples CUDAToolkit dependency by @tfeher in #1626
  • clang-tidy: remove AnalyzeTemporaryDtors key by @achirkin in #1778
  • Fix build.sh: build cuvs_c for examples and fix --gpu-arch parsing by @achirkin in #1779
  • Better handling of batching of search in MG replicated mode by @viclafargue in #1718
  • Add nvjitlink to cuda-toolkit pip extras for cusparse compatibility by @bdice in #1794
  • [REVIEW] Fix: for balanced kmeans use grid.x for adjust_centers to avoid grid.y overflow for >262K centroids by @Nischal1729 in #1805
  • Fix thrust header by @aamijar in #1817
  • Fix persistent CAGRA regressions by @achirkin in #1800
  • Fix thrust header by @aamijar in #1825
  • Set cudaFuncAttributeMaxDynamicSharedMemorySize with thread-safety by @mythrocks in #1771
  • [REVIEW] Move from thrust::make_counting_iterator to cuda::make_counting_iterator by @mythrocks in #1826
  • Fixed cuvs benchmark debug build issue (linker step fail) by @irina-resh-nvda in #1599
  • Graph degree equals intermediate graph degree bug fix by @irina-resh-nvda in #1834
  • FAISS patch for thrust_counting_iterator.h by @aamijar in #1844
  • Use 1D grid calculations in epsilon_neighborhood by @divyegala in #1847
  • Fix setting CAGRA graph build algo to iterative search by default by @achirkin in #1864
  • Faiss suppress warning 611 by @aamijar in #1879
  • Pin faiss to 1.14.0 by @aamijar in #1885
  • Make some minor fixes to JIT+LTO functionality by @KyleFromNVIDIA in #1896
  • Revert "Default to static linking of libcudart" by @KyleFromNVIDIA in #1925
  • Fix hanging pytests by @aamijar in #1924
  • Disallow programmatic stream serialization in JIT kernel launches by @divyegala in #1932
  • IVF-Flat: fix irrelevant assert in the fused kernel mode by @achirkin in #1941
  • [REVIEW] cuVS bench: Fix cudaFuncSetAttribute not being called when CAGRA search switches kernel variants by @irina-resh-nvda in #1851
  • Pin openblas for aarch64 by @tarang-jain in #1965
  • Null JIT kernel launch config by @divyegala in #1974
  • [BUG] Fix Vamana Serialization by @tarang-jain in #1966

📖 Documentation

  • remove docs references to cuvs-bench-datasets, install a C compiler in pre-commit env by @jameslamb in #1736
  • Adding simple tarball install to build and install docs by @cjnolet in #1868
  • Fixing nccl link in tarball install instructions by @cjnolet in #1887
  • Add developer and user guides for JIT by @divyegala in #1876
  • PCA docs by @aamijar in #1949
  • Fix a few typos and .rst link syntax by @jrbourbeau in #1973
  • Update docs footer year by @aamijar in #1958
  • Doc improvements by @aamijar in #1978

🚀 New Features

  • JIT compile interleaved_scan_kernel for CUDA 13 by @divyegala in #1405
  • [REVIEW] L1 distance support for iterative search CAGRA build by @yan-zaretskiy in #1831
  • [FEA] Inertia Computation for Balanced KMeans and Add Option for Weighted Inertia by @tarang-jain in #1880
  • PCA preprocessor by @aamijar in #1808
  • [FEA] Add Batching to KMeans by @tarang-jain in #1886

🛠️ Improvements

  • Automatic Partition Count Derivation for ACE by @julianmi in #1603
  • Add filter for cagra::merge by @benfred in #1496
  • Ivf_flat extends golang APIs by @cpegeric in #1600
  • Drop Python 3.10 support by @gforsyth in #1748
  • tighten wheel size limits, expand CI-skipping logic, other small build changes by @jameslamb in #1751
  • Migrate hash strategy to use the new cuco::static_map by @PointKernel in #1462
  • Update raft headers by @aamijar in #1763
  • remove pip.conf migration code in CI scripts, update CI-skipping rules by @jameslamb in #1760
  • Convert non-type template parameters to runtime parameters in CAGRA search to cut binary size by @seunghwak in #1498
  • Rename lanczos by @aamijar in #1759
  • CI: build with CUDA 13.1.1 by @jameslamb in #1766
  • Fixes for stricter compilers by @maxwbuckley in #1703
  • fix cpu_search call by including k argument by @benfred in #1785
  • Use GHA id-token for sccache-dist auth token by @trxcllnt in #1790
  • Remove cagra_optimize.hpp by @aamijar in #1791
  • Remove unused use_norms constant from kernel_sm60.cuh by @maxwbuckley in #1705
  • Remove unused variable read_idx from query loop by @maxwbuckley in #1706
  • remove gitutils by @jameslamb in #1797
  • refactor: build wheels and conda packages using Python limited API by @gforsyth in #1788
  • Add pluggable backend architecture to cuvs-bench by @jnke2016 in #1536
  • Use Specific CCCL Includes by @divyegala in #1806
  • Replace thrust::tuple with cuda::std::tuple by @miscco in #1811
  • check-nightly-ci: update to new version by @jameslamb in #1813
  • check-nightly-ci: remove testing config by @jameslamb in #1824
  • Refactor JIT LTO kernel generation by @KyleFromNVIDIA in #1812
  • Move test_compute_matrix_product.py to cpp/tests by @KyleFromNVIDIA in #1836
  • Drop uses of thrust/functional.h by @miscco in #1835
  • Better ncv param spectral embedding edge case by @aamijar in #1828
  • Modernize the uses of raft in cuVS by @achirkin in #1837
  • refactor(limited api): add explicit wheel.py-api to pyproject.toml by @gforsyth in #1852
  • Update Cython lower bound pin to 3.2.2 by @vyasr in #1858
  • Add support for Python 3.14 by @gforsyth in #1845
  • fix(rust): change Index::search to take &self instead of self by @zbennett10 in #1839
  • Remove pytest upper bound pin by @vyasr in #1867
  • Readme: vecflow paper in references by @aamijar in #1874
  • Refactor knn graph build params to remove graph_build_types.hpp by @jinsolp in #1235
  • Remove IndexWrapper by @aamijar in #1792
  • Use C linkage for JIT LTO kernels by @divyegala in #1909
  • Prevent nested parallelism in HNSW bench by @julianmi in #1895
  • Add a script to check for breaking C ABI changes by @benfred in #1749
  • Improve the IVF-PQ Coarse Batch Size Workspace Estimation by @julianmi in #1937
  • ScaNN: Fix AVQ prefetch by @rmaschal in #1899

New Contributors

  • @cpegeric made their first contribution in #1600
  • @PointKernel made their first contribution in #1462
  • @seunghwak made their first contribution in #1498
  • @Nischal1729 made their first contribution in #1805
  • @jnke2016 made their first contribution in #1536
  • @zbennett10 made their first contribution in #1839
  • @jrbourbeau made their first contribution in #1973

Full Changelog: https://github.com/rapidsai/cuvs/compare/v26.04.00a...release/26.04

cuvs 26.02.00 (4 Feb 2026)

🚨 Breaking Changes

  • Use CCCL's mdspan implementation by @divyegala in #1605
  • Add filter for cagra::merge by @benfred in #1755

🐛 Bug Fixes

  • fix(ci): remove unknown parameter name from rocky8 build job by @gforsyth in #1554
  • CMake check for FAISS use in benchmarks by @irina-resh-nvda in #1591
  • Fix overflow in preprocess_data_kernel of NN Descent by @jinsolp in #1596
  • cmake is missing sparse/gram.cu gtest by @aamijar in #1611
  • Correctly specify the ninja-build version to download by @robertmaynard in #1634
  • Remove Flaky Python ACE Example by @julianmi in #1641
  • Fix integer overflow in get_free_host_memory() on systems with >2TB RAM by @bdice in #1636
  • Fix libclang download for Rust, CUDA initialization for C tests by @KyleFromNVIDIA in #1652
  • Skip Python Multi-GPU Doctests by @julianmi in #1671
  • [Bug] Fix memory allocation test in CAGRA graph optimization by @enp1s0 in #1675
  • Fix multi-GPU All Neighbors memory coherence issue on older platforms by @viclafargue in #1713

📖 Documentation

  • Clean raft/neighbors comments by @aamijar in #1651
  • Clean raft::neighbors comments by @aamijar in #1665

🚀 New Features

  • Assign the c/ folder to the the c code ownder group by @robertmaynard in #1573
  • Add arm64 builds to the libcuvs_c rocky8 matrix by @robertmaynard in #1570
  • [FEA] Enforce tighter link restrictions on libcuvs_c by @robertmaynard in #1614
  • [FEA] IVF-PQ Build Factories for Precomputed Centroids and Codebooks by @tarang-jain in #1483
  • Add HNSW ACE build method by @julianmi in #1597
  • [FEA] C + Python API for IVF-PQ Build Factories with Precomputed Centroids by @tarang-jain in #1664
  • Add arm64 builds to the libcuvs_c build.yaml matrix by @robertmaynard in #1701
  • pre-built libcuvs_c.so now use the new ABI major/minor values by @robertmaynard in #1708
  • Correct base release for cuvs abi 1 major by @robertmaynard in #1724
  • Add support for PQ preprocessing API by @lowener in #1278
  • [FEA] IVF-PQ to Write Flat PQ Codes by @tarang-jain in #1607
  • Enable collation of all license files into pre-built binaries by @robertmaynard in #1679

🛠️ Improvements

  • Update FAISS patch for RMM memory resource header migration by @bdice in #1566
  • Use strict priority in CI conda tests by @bdice in #1583
  • Update FAISS from 1.12.0 to 1.13.0 by @bdice in #1585
  • Use strict priority in CI conda tests by @bdice in #1606
  • Deduplicate {unpack/pack}_list_data_kernel by @jinsolp in #1609
  • Expose NN Descent fp16 data type support to python by @jinsolp in #1616
  • Remove alpha specs from non-RAPIDS dependencies by @bdice in #1618
  • Enable merge barriers by @KyleFromNVIDIA in #1625
  • Add devcontainer fallback for C++ test location by @bdice in #1631
  • Dispatch to use fp32 distance computation in NN Descent depending on data dimensions by @jinsolp in #1415
  • Prepare cuvs for removal of deprecated raft apis by @aamijar in #1610
  • Shorten the Test Duration of test_cagra_ace.py by @julianmi in #1640
  • Optional seed spectral embedding by @aamijar in #1639
  • FAISS patch for removed raft headers by @aamijar in #1654
  • Empty commit to trigger a build by @bdice in #1662
  • Spectral Clustering dataset api by @aamijar in #1653
  • Hide kernel symbols by @divyegala in #1663
  • Update cuVS to c++20 by @divyegala in #1649
  • Move faiss_select from raft to cuvs by @aamijar in #1658
  • Fix DiskANN Override by @tarang-jain in #1666
  • Use SPDX license identifiers in pyproject.toml, bump build dependency floors by @jameslamb in #1667
  • Add CUDA 13.1 support by @bdice in #1642
  • Remove faiss patch by @aamijar in #1668
  • Expose pq list data to python by @benfred in #1428
  • Add rust bindings for vamana index by @benfred in #1608
  • build and test against CUDA 13.1.0 by @jameslamb in #1677
  • [Improvement] Allow Configurable DRAM in DiskANN SSD Wrapper by @tarang-jain in #1598
  • prefer CUDA 13.1 devcontainers, react to some cutlass removals in RAFT by @jameslamb in #1686
  • Empty commit to trigger a build by @jameslamb in #1694
  • Spectral Embedding nnz_t by @aamijar in #1628
  • Avoid installing CCCL headers in wheels by @divyegala in #1692
  • Use main shared-workflows branch by @jameslamb in #1707
  • Add Helper to Create NumPy Files by @julianmi in #1645
  • Spectral Embedding with all_neighbors by @aamijar in #1693
  • Deduplicate calc_chunk_indices_kernel by @jinsolp in #1657
  • wheel builds: react to changes in pip's handling of build constraints by @mmccarty in #1710
  • fix(build): build package on merge to release/* branch by @gforsyth in #1733
  • Add a transform function to ivf_pq by @benfred in #1732

New Contributors

  • @irina-resh-nvda made their first contribution in #1591

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

cuvs 25.12.00 (10 Dec 2025)

🚨 Breaking Changes

  • Using all_neighbors for mutual reachability by @jinsolp in #1234
  • Refactor libcuvs_c header and source locations by @robertmaynard in #1357
  • Update cagra C API enums to have more long term stable values by @robertmaynard in #1436
  • Require CUDA 12.2+ by @jakirkham in #1476
  • Remove mutual_reachability_graph Public API by @tarang-jain in #1481

🐛 Bug Fixes

  • Allow compilation when OpenMP is disabled by @robertmaynard in #1346
  • Deallocation should be noexcept by @bdice in #1416
  • ANN_BENCH: Don't throw in noexcept do_deallocate by @achirkin in #1417
  • Remove unneeded cutlass public build/install dependency by @robertmaynard in #1411
  • cuvs_static properly adds C include dir to target_include_directories by @robertmaynard in #1426
  • Fix C/Python serialization for FP16. Add python tests by @lowener in #1429
  • Properly guard usage of openmp function calls by @robertmaynard in #1435
  • Update nlohmann-json to 3.12.0 by @KyleFromNVIDIA in #1449
  • Fix test params for filtered ivf_flat by @aamijar in #1463
  • [REVIEW][Java][Bug] Fix CuVSMatrix#getRow to take strides into consideration by @ldematte in #1442
  • Adding more tests and I find the compression settings are broken in the Golang API by @maxwbuckley in #1472
  • Fix binary quantizer host transform bounds and stream order by @achirkin in #1473
  • [BUG] Check if dynamic batching conf is null by @tarang-jain in #1459
  • Include cagra search algorithms in libcuvs_static.a by @robertmaynard in #1457
  • [Java] Disable flaky test testFloatSerialization by @mythrocks in #1503
  • Add libaio to cuvs-bench-cpu, improve bench dependencies by @tarang-jain in #1480
  • [Java] Fix CagraBuildAndSearchIT concurrent deallocation errors by @ldematte in #1510
  • Pin Cython pre-3.2.0 and PyTest pre-9 by @jakirkham in #1528
  • Fix a bug in compute_distance_00_generate.py by @enp1s0 in #1532
  • Check stride information in from_dlpack by @benfred in #1458
  • refactored update-version.sh to handle new branching strategy by @rockhowse in #1535
  • fixed bug with update-version.sh by @rockhowse in #1556
  • fix(ci): remove unsupported name parameter from custom job def by @gforsyth in #1560
  • Remove need to have rapids_logger headers installed to use clib by @robertmaynard in #1527
  • Fix BruteForce serialize test by @lowener in #1568
  • [C] Fix: cuvsRMMMemoryResourceReset sets a valid resource by @ldematte in #1540
  • Fix typo in date field by @vyasr in #1563
  • SNMG ANN build with OpenMP nested parallelism by @viclafargue in #1526

📖 Documentation

  • Fix table of content documentation by @lowener in #1427
  • Docs Spectral Clustering by @aamijar in #1490
  • Use current system architecture in conda environment creation command by @bdice in #1499
  • Updating README for release by @cjnolet in #1584

🚀 New Features

  • Unify binding headers by @robertmaynard in #1413
  • CAGRA: decouple source idx type from graph idx type and add a mapping between them by @achirkin in #1251
  • Add SOVERSION information to libcuvs_c by @robertmaynard in #1474
  • Spectral Clustering by @aamijar in #1425
  • ANN_BENCH: integrate NVTX statistics by @achirkin in #1529
  • Add Augmented Core Extraction Algorithm by @julianmi in #1404
  • Extend CI to build and test x86 libcuvs_c tarballs by @robertmaynard in #1524
  • Introduce libcuvs-headers and libcuvs-static CMake components and conda packages by @divyegala in #1494
  • [Java] Bindings, tests and benchmarks for RMM pooled memory by @ldematte in #1453

🛠️ Improvements

  • Update RAPIDS_BRANCH, codify changes in update-version.sh by @KyleFromNVIDIA in #1368
  • Move eigen_solvers from raft by @aamijar in #1402
  • CosineExpanded Distance Metric for CAGRA by @tarang-jain in #197
  • Enable sccache-dist connection pool by @trxcllnt in #1431
  • Use pinned_host_memory_resource instead of pinned_memory_resource. by @bdice in #1434
  • Use main in RAPIDS_BRANCH by @bdice in #1439
  • Use main shared-workflows branch by @bdice in #1444
  • [Review] ScaNN: Add option for AVQ/Noise Shaping to bfloat16 quantization by @rmaschal in #1354
  • Add NVTX annotations to CAGRA knn graph build stage by @achirkin in #1443
  • [Review][C] Export the ability to get/set the log level to the C API by @ldematte in #1375
  • [Java] Test indexing and serialization with integral (byte) dataset by @ldematte in #1366
  • Use SPDX for all copyright headers by @KyleFromNVIDIA in #1446
  • [REVIEW][Java] Log level api by @ldematte in #1376
  • [Review] [Java] Disable flaky Java tests to reduce CI churn by @mythrocks in #1469
  • Refactor rapids_cpm_package_details to rapids_cpm_package_info by @bdice in #1433
  • Fix golang test name and add more logging and error checking. by @maxwbuckley in #1471
  • Use an explicit std::min for byte alignment calculation by @maxwbuckley in #1465
  • Replace custom cuda_pinned_resource with RMM's pinned_host_memory_resource by @bdice in #1466
  • Add patch for FAISS memory resources by @bdice in #1477
  • Improved CAGRA build parameter heuristics by @achirkin in #1448
  • Decouple C++ library from C library by @divyegala in #1488
  • Use RAPIDS_BRANCH in cmake-format invocations that need rapids-cmake configs by @bdice in #1475
  • eigen tolerance option Spectral Embedding by @aamijar in #1493
  • Update to CUDA 13.0.2 by @bdice in #1506
  • Single Linkage to Use all_neighbors API to build the KNN graph by @tarang-jain in #1507
  • Migrate to new CCCL memory resource interface by @bdice in #1502
  • Remove unused headers scann by @lowener in #1508
  • Update RMM includes from <rmm/mr/device/*> to <rmm/mr/*> by @bdice in #1538
  • Use ruff-check, ruff-format instead of black, flake8 by @KyleFromNVIDIA in #1500
  • Set memory pool from Python multi-GPU resource by @viclafargue in #1530
  • [Java] Fix format with spotless by @ldematte in #1539
  • fix bad version update by @trxcllnt in #1555
  • Deduplicate KMeans instantiations by @divyegala in #1565
  • Improve memory usage in build_mr_linkage by @jinsolp in #1550
  • Use sccache-dist build cluster for conda and wheel builds by @trxcllnt in #1495
  • [Java] One PinnedMemoryBuffer per CuVSResourcesImpl by @ldematte in #1441
  • [Java] Relax cuVS version matching by @ldematte in #1544

New Contributors

  • @maxwbuckley made their first contribution in #1471
  • @rockhowse made their first contribution in #1535

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

cuvs 25.10.00 (8 Oct 2025)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements

cuvs 25.08.00 (6 Aug 2025)

🚨 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 &lt; 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

cuvs 25.06.00 (5 Jun 2025)

🚨 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" (#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

cuvs 25.04.00 (9 Apr 2025)

🚨 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

cuvs 25.02.00 (13 Feb 2025)

🚨 Breaking Changes

  • 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 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

cuvs 24.12.00 (11 Dec 2024)

🚨 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

cuvs 24.10.00 (9 Oct 2024)

🐛 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

cuvs 24.08.00 (7 Aug 2024)

🚨 Breaking Changes

🐛 Bug Fixes

📖 Documentation

🚀 New Features

  • Add cuvs_bench python folder, config files and constraints (#244) @dantegd
  • Add MST optimization to guarantee the connectivity of CAGRA graphs (#237) @anaruse
  • Moving over C++ API of CAGRA+hnswlib from RAFT (#229) @divyegala
  • [FEA] expose python & C API for prefiltered brute force (#174) @rhdong
  • CAGRA new vector addition (#151) @enp1s0

🛠️ Improvements

cuvs 24.06.00 (5 Jun 2024)

🐛 Bug Fixes

📖 Documentation

🚀 New Features

🛠️ Improvements