Releases: rapidsai/cuvs
Releases · rapidsai/cuvs
v26.04.00
What's Changed
🚨 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
cudaFuncAttributeMaxDynamicSharedMemorySizewith thread-safety by @mythrocks in #1771 - [REVIEW] Move from
thrust::make_counting_iteratortocuda::make_counting_iteratorby @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.hby @aamijar in #1844 - Use 1D grid calculations in
epsilon_neighborhoodby @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
.rstlink 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_kernelfor 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
kargument by @benfred in #1785 - Use GHA id-token for
sccache-distauth token by @trxcllnt in #1790 - Remove
cagra_optimize.hppby @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::tuplewithcuda::std::tupleby @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.pytocpp/testsby @KyleFromNVIDIA in #1836 - Drop uses of
thrust/functional.hby @miscco in #1835 - Better
ncvparam 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-apitopyproject.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.hppby @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 https://github.com/ra...
v26.02.00
What's Changed
🚨 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
namefrom 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_kernelof NN Descent by @jinsolp in #1596 - cmake is missing
sparse/gram.cugtest 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/neighborscomments by @aamijar in #1651 - Clean
raft::neighborscomments 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_kernelby @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_tby @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_neighborsby @aamijar in #1693 - Deduplicate
calc_chunk_indices_kernelby @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
transformfunction to ivf_pq by @benfred in #1732
New Contributors
- @irina-resh-nvda made their first contribution in #1591
Full Changelog: v26.02.00a...v26.02.00
v25.12.00
What's Changed
🚨 Breaking Changes
- Using
all_neighborsfor 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#getRowto 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
testFloatSerializationby @mythrocks in #1503 - Add libaio to cuvs-bench-cpu, improve bench dependencies by @tarang-jain in #1480
- [Java] Fix
CagraBuildAndSearchITconcurrent 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
nameparameter 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:
cuvsRMMMemoryResourceResetsets 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-headersandlibcuvs-staticCMake 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 inupdate-version.shby @KyleFromNVIDIA in #1368 - Move eigen_solvers from raft by @aamijar in #1402
- CosineExpanded Distance Metric for CAGRA by @tarang-jain in #197
- Enable
sccache-distconnection 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_BRANCHin cmake-format invocations that need rapids-cmake configs by @bdice in #1475 - eigen
toleranceoption 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_linkageby @jinsolp in #1550 - Use
sccache-distbuild 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: v25.12.00a...v25.12.00
v25.10.00
🚨 Breaking Changes
- [Java] Uniform toHost/toDevice to work across all CuVSMatrix classes (#1328) @ldematte
- Use int64_t for getters in the cagra/ivf_flat c-api (#1272) @benfred
- [REVIEW][Java] Rename destroyIndex() to close(), extend AutoCloseable (#1252) @ldematte
- Removing deprecated batching code specific to NN Descent (#1249) @jinsolp
- MG C API (#1160) @viclafargue
🐛 Bug Fixes
- Update
cpp/cmake/config.jsonforConfigureTest()(#1385) @KyleFromNVIDIA - Fix k-means++ root rank race condition (#1359) @csadorf
- Fix inadvertent uses of copy constructor in mdarrays across cuVS (#1330) @achirkin
- Refactor CMakeLists to support static only builds of libcuvs (#1317) @robertmaynard
- Fix pq_compressed file created by SSD Vamana build (#1313) @bkarsin
- Revert "[Java]Binary and scalar quantization (#1104)" (#1274) @mythrocks
- Fix balanced kmeans API (#1268) @enp1s0
- [BUG] NEIGHBORS_ALL_NEIGHBORS_TEST build ignores --no-mg (#1230) @enp1s0
- Add error handling for CPU-only bench (#1203) @lowener
- Make duplicate removal in all neighbors robust to distance drift across batches (#1185) @jinsolp
- Fix single GPU sharded search merge (#1094) @viclafargue
- Processing mutual reachability dist in connect_knn_graph for host data (#1093) @jinsolp
- [Java][Fix] Multithreaded querying fails without synchronization (#1082) @chatman
📖 Documentation
- Add Vamana C rst Docs to toctree (#1399) @tarang-jain
- Regroup overloads in docs (#1377) @lowener
- [DOCS] Update IVF Docs with Supported Distance Metrics (#1365) @tarang-jain
- Add note about Linux-only support for cuVS pre-compiled packages (#1306) @stic
- Documentation Fixes (#1301) @benfred
- Docs for spectral embedding (#1299) @aamijar
- Improve NN Descent documentation (#1246) @jinsolp
- Add NN.extend and kmeans to Python doc (#1217) @lowener
🚀 New Features
- [REVIEW] [Java] Option to build fat-jars with native dependencies included (#1296) @mythrocks
- Updates needed when building with CUDA 13 (#1219) @robertmaynard
- [Java] Add CAGRA index graph accessor/build from graph (host memory) (#1216) @ldematte
- [Feat] Add Dockerfile for reproducible installation (#1195) @rhdong
- Vamana C / Python API (#1112) @tarang-jain
- Mutual Reachability in all-neighbors API (#1016) @jinsolp
- CAGRA Build + DiskANN Search cuvs-bench Wrapper (#899) @tarang-jain
🛠️ Improvements
- Patch FAISS for missing Thrust includes (#1398) @bdice
- Empty commit to trigger a build (#1363) @msarahan
- [Review][Java] Refactor: extract interface from CuVSMatrixBaseImpl (#1361) @ldematte
- use CUDA 13.0.1 CI images (#1353) @jameslamb
- Treat warnings as errors in doc builds + MG ANNs Python API doc update (#1350) @viclafargue
- [Java] Support row strides in CuVSMatrix (#1345) @ldematte
- [Java] Adding tests to use CuVSDeviceMatrix (device memory) directly as a CagraIndex input dataset (#1340) @ldematte
- Improve performance of assigning clusters in batched all_neighbors (#1336) @jinsolp
- Configure repo for automatic release notes generation (#1334) @AyodeAwe
- [Java] Buffered device matrix builder (#1332) @ldematte
- Remove UCX-Py/UCXX from release script (#1331) @pentschev
- [Java] Uniform toHost/toDevice to work across all CuVSMatrix classes (#1328) @ldematte
- [Java] Add
libcuvs<-> cuvs-java version check (#1327) @ldematte - update dependencies: use cuda-toolkit wheels (#1326) @jameslamb
- Add cagra.extend bindings for python (#1324) @benfred
- [Java] Make
cudaGetDevicePropertiescompatible with CUDA 12 and 13 based on symbol presence (#1323) @ldematte - Use branch-25.10 again (#1319) @jameslamb
- [Review][Java] Add detailed error message for
libcuvsload failure to UnsupportedProvider/UnsupportedOperationExceptions (#1316) @ldematte - [Java] Add reason(s) to UnsupportedProvider/UnsupportedOperationExceptions (#1314) @ldematte
- MG Python API (#1307) @viclafargue
- Fix redundant memset (#1305) @vinaydes
- Expose pq-centers to C and Python (#1303) @benfred
- Port
raft::neighbors::epsilon_neighborhoodto cuvs (#1294) @aamijar - ScaNN: Overlapped gather for AVQ (#1286) @rmaschal
- Update rapids-dependency-file-generator (#1285) @KyleFromNVIDIA
- [Review][Java] Expand
CagraIndex#searchto accept more types (int8 and int32) (#1283) @ldematte - All neighbors C and Python bindings (#1282) @viclafargue
- Build and test with CUDA 13.0.0 (#1273) @jameslamb
- Use int64_t for getters in the cagra/ivf_flat c-api (#1272) @benfred
- [Java][C] Expose GPUInfo (#1267) @ldematte
- Add rust bindings for kmeans (#1266) @benfred
- [REVIEW] Add a public API for CAGRA graph optimize (#1260) @abc99lr
- Fix debug build (#1258) @lowener
- Run
cargo fmtin the pre-commit hooks (#1255) @benfred - [REVIEW][Java] Rename destroyIndex() to close(), extend AutoCloseable (#1252) @ldematte
- Removing deprecated batching code specific to NN Descent (#1249) @jinsolp
- Pin Latest Faiss Version (#1247) @tarang-jain
- Use build cluster in devcontainers (#1240) @trxcllnt
- Use rapids_cuda_enable_fatbin_compression (#1239) @robertmaynard
- [Improvement] Replace Calls to thrust::transform with raft::linalg (#1238) @tarang-jain
- [Java] CuVSMatrix for device memory (#1232) @ldematte
- Drop log level for CAGRA trace messages (#1229) @mythrocks
- Update rapids_config to handle user defined branch name (#1227) @robertmaynard
- Reduce noise in Java tests (#1226) @mythrocks
- Update another instance of rapids-build-backend (#1225) @KyleFromNVIDIA
- Fix missing sync_stream in ScaNN build (#1224) @rmaschal
- [Java] Exception-safe RMM Allocations (#1215) @mythrocks
- Update rapids-build-backend to 0.4.1 (#1214) @KyleFromNVIDIA
- Removing filter templates in ivfpq for binary size reduction (#1211) @jinsolp
- ci(labeler): update labeler action to @v5 (#1210) @gforsyth
- [Java] Add decorator for synchronized CuVSResource access (#1209) @ldematte
- Remove unused templated instances (#1204) @vinaydes
- Spectral Embedding precomputed graph api (#1197) @aamijar
- cuvs RAPIDS dependency now use the new rapids-cmake branch info (#1189) @robertmaynard
- Allow latest OS in devcontainers (#1169) @bdice
- MG C API (#1160) @viclafargue
- Merge support for tiered index (#1155) @benfred
- Update build infra to support new branching strategy (#1143) @robertmaynard
- [Java]Binary and scalar quantization (#1104) @punAhuja
- Improve Vamana index build performance and recall (#1032) @bkarsin
- Use GCC 14 in conda builds. (#1030) @vyasr
- Update SNMG ANN API testing (#1023) @viclafargue
[NIGHTLY] v25.12.00
🔗 Links
🚨 Breaking Changes
- Update cagra C API enums to have more long term stable values (#1436) @robertmaynard
- Refactor libcuvs_c header and source locations (#1357) @robertmaynard
- Using
all_neighborsfor mutual reachability (#1234) @jinsolp
🐛 Bug Fixes
- Properly guard usage of openmp function calls (#1435) @robertmaynard
- Fix C/Python serialization for FP16. Add python tests (#1429) @lowener
- cuvs_static properly adds C include dir to target_include_directories (#1426) @robertmaynard
- ANN_BENCH: Don't throw in noexcept do_deallocate (#1417) @achirkin
- Deallocation should be noexcept (#1416) @bdice
- Remove unneeded cutlass public build/install dependency (#1411) @robertmaynard
- Allow compilation when OpenMP is disabled (#1346) @robertmaynard
🚀 New Features
- Update cagra C API enums to have more long term stable values (#1436) @robertmaynard
- Unify binding headers (#1413) @robertmaynard
- Refactor libcuvs_c header and source locations (#1357) @robertmaynard
🛠️ Improvements
- Use pinned_host_memory_resource instead of pinned_memory_resource. (#1434) @bdice
- Enable
sccache-distconnection pool (#1431) @trxcllnt - Move eigen_solvers from raft (#1402) @aamijar
- Update
RAPIDS_BRANCH, codify changes inupdate-version.sh(#1368) @KyleFromNVIDIA - Using
all_neighborsfor mutual reachability (#1234) @jinsolp - CosineExpanded Distance Metric for CAGRA (#197) @tarang-jain
v25.08.00
🚨 Breaking Changes
- [Java] Using functions for mapping (#1007) @ldematte
- Remove CUDA 11 from dependencies.yaml (#962) @KyleFromNVIDIA
- Common knn graph build params (#949) @jinsolp
- stop uploading packages to downloads.rapids.ai (#940) @jameslamb
🐛 Bug Fixes
- [BUG] Fix Large Batch Preprocessing for NN Descent (#1166) @tarang-jain
- Fix TieredIndexIT, Scoped resource access change was missed (#1156) @punAhuja
- Fix for
hellingermetric (#1128) @viclafargue - Fix go CI failures (#1114) @benfred
- Conditionally post process distances in NN Descent for use with distance epilogue (#1108) @jinsolp
- [BUG] Disable flaky cpp test
AnnIVFFlatTestF_half.AnnIVFFlat/21(#1092) @julianmi - [BUG] Fix device access check in build_sorted_mst (#1083) @tarang-jain
- Pin Faiss Version to Last Stable Release (#1029) @tarang-jain
- Fix verify-copyright precommit hook (#1017) @benfred
- Adding GH_TOKEN pass-through to summarize job (#1011) @msarahan
- Reuse
<version_config.h>instead of separate version constants inc_api.h(#1003) @mythrocks - IVF-PQ coarse search: fix integer overflow and avoid excessive batch sizes (#999) @achirkin
- Fix C compile error in
tiered_index.h(#996) @mythrocks - Fix for NN Descent negative or NaN distances (#994) @jinsolp
- Adding int64 search for MG CAGRA (#975) @viclafargue
- [ANN_BENCH] Fix OpenMP Sections in Wrappers (#911) @tarang-jain
- [BUG] cuvs-bench data_export fixes (#863) @tarang-jain
📖 Documentation
- [ANN_BENCH] [DOCS] Add Vamana / DiskANN to cuvs-bench Docs (#1164) @tarang-jain
- Add Golang build instructions to build.rst (#1116) @mythrocks
- Minor correction for Java test instructions (#1081) @mythrocks
- add docs on CI workflow inputs (#1075) @jameslamb
- [REVIEW][Java] Add instructions on how to run a single test (#1004) @ldematte
🚀 New Features
- Binary CAGRA with NN Descent (#1133) @tarang-jain
- CAGRA build heuristics for HNSW (#1125) @achirkin
- BitwiseHamming distance for NN Descent (#1101) @jinsolp
ReachabilityPostProcessdistance epilogue for NN Descent (#1073) @jinsolp- Add brute force to
all_neighborsAPI (#1062) @jinsolp - [Java] Support for tiered index (#1028) @punAhuja
- Enable
build_sorted_mstwith data on host memory (#997) @jinsolp - Add C-API method to fetch cuVS version from Java. (#935) @mythrocks
- Spectral Embedding (#871) @aamijar
- [FEA] Build Single Linkage API (#820) @tarang-jain
🛠️ 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_pqby deduplicating kernels (#1130) @jinsolp - fix(docker): use versioned
-latesttag for allrapidsaiimages (#1129) @gforsyth - SCaNN Index build (#1120) @rmaschal
- [Java] Extend
Datasetto 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_ranksin batchall_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_paramsnamespace intoall_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.xmltotarget/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
🚨 Breaking Changes
🐛 Bug Fixes
- 25.06 hotfix for SNMG (#1027) @viclafargue
- Update rust/cuvs-sys (#990) @benfred
- Fix rust publishing step (#984) @benfred
- 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
- All-neighbors API docs (#944) @jinsolp
- cagra.rst: fitered -> filtered (#866) @eli-b
- [DOCS] Fix Integration Docs (Faiss) (#782) @tarang-jain
🚀 New Features
- Add IVF-PQ support in CAGRA index params in Python (#918) @lowener
- [Feat] Expose C API for CAGRA
merge(#860) @rhdong - Use NCCL wheels from PyPI for CUDA 12 builds (#827) @divyegala
- Add support for half in CAGRA+HNSW (#813) @lowener
- [CI] Enable Java test in CI workflow (#805) @rhdong
- Wrapper for all-neighbors knn graph building (#785) @jinsolp
- Add support of half dtype in IVF-FLAT (#730) @lowener
- IVF-PQ: low-precision coarse search (#715) @achirkin
- [Feat] Add support of logical merge in Cagra (#713) @rhdong
🛠️ 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_snmgas device resource type for MG functions (#454) @viclafargue - Moving random ball cover (#218) @cjnolet
v25.06.00
🚨 Breaking Changes
🐛 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
- All-neighbors API docs (#944) @jinsolp
- cagra.rst: fitered -> filtered (#866) @eli-b
- [DOCS] Fix Integration Docs (Faiss) (#782) @tarang-jain
🚀 New Features
- Add IVF-PQ support in CAGRA index params in Python (#918) @lowener
- [Feat] Expose C API for CAGRA
merge(#860) @rhdong - Use NCCL wheels from PyPI for CUDA 12 builds (#827) @divyegala
- Add support for half in CAGRA+HNSW (#813) @lowener
- [CI] Enable Java test in CI workflow (#805) @rhdong
- Wrapper for all-neighbors knn graph building (#785) @jinsolp
- Add support of half dtype in IVF-FLAT (#730) @lowener
- IVF-PQ: low-precision coarse search (#715) @achirkin
- [Feat] Add support of logical merge in Cagra (#713) @rhdong
🛠️ 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_snmgas device resource type for MG functions (#454) @viclafargue - Moving random ball cover (#218) @cjnolet
v25.04.00
🚨 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
L2SqrtExpandedmetric support for NN Descent (#790) @jinsolp- CAGRA search: int64_t indices in the API (#769) @achirkin
- Expose IVF PQ params in CAGRA C API (#768) @divyegala
- [Feat] Expose search with bitset C API for Brute Force (#717) @rhdong
- Diskann Benchmarking Wrapper (#260) @tarang-jain
🛠️ Improvements
- Use L4 instead of V100 (#797) @bdice
- Rust publishing updates (#789) @AyodeAwe
- Removing print statement (#786) @jinsolp
- Support passing a dataset to
FromCagra(#767) @ajit283 - add function to build specific gpu-arches [REVIEW] (#766) @nvrohanv
- feat(libcuvs): port libcuvs to rattler-build (#751) @gforsyth
- Consolidate Conda environment for Rust (#745) @KyleFromNVIDIA
- rename 'sklearn' conda dependency to 'scikit-learn' (#743) @jameslamb
- Reduce memory consumption of scalar quantizer (#736) @mfoerste4
- Use conda-build instead of conda-mambabuild (#723) @bdice
- Expand NVTX annotations in CAGRA build and HNSW (#711) @achirkin
- Replace
cub::TransformInputIteratorwiththrust::transform_iterator(#707) @miscco - Consolidate more Conda solves in CI (#701) @KyleFromNVIDIA
- Require CMake 3.30.4 (#691) @robertmaynard
- Create Conda CI test env in one step (#684) @KyleFromNVIDIA
- Use shared-workflows branch-25.04 (#669) @bdice
- Add
shellcheckto pre-commit and fix warnings (#662) @gforsyth - Add build_type input field for test.yaml (#661) @gforsyth
- Use
rapids-pip-retryin CI jobs that might need retries (#648) @gforsyth - Use new rapids-logger library (#644) @vyasr
- disallow fallback to Make in Python builds (#636) @jameslamb
- Add
verify-codeownershook (#633) @KyleFromNVIDIA - Forward-merge branch-25.02 into branch-25.04 (#632) @bdice
- Account for RAFT sparse types updates (#629) @divyegala
- Migrate to NVKS for amd64 CI runners (#627) @bdice
[NIGHTLY] v25.06.00
🔗 Links
🚨 Breaking Changes
🐛 Bug Fixes
- 25.06 hotfix for SNMG (#1027) @viclafargue
- Update rust/cuvs-sys (#990) @benfred
- Fix rust publishing step (#984) @benfred
- 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
- All-neighbors API docs (#944) @jinsolp
- cagra.rst: fitered -> filtered (#866) @eli-b
- [DOCS] Fix Integration Docs (Faiss) (#782) @tarang-jain
🚀 New Features
- Add IVF-PQ support in CAGRA index params in Python (#918) @lowener
- [Feat] Expose C API for CAGRA
merge(#860) @rhdong - Use NCCL wheels from PyPI for CUDA 12 builds (#827) @divyegala
- Add support for half in CAGRA+HNSW (#813) @lowener
- [CI] Enable Java test in CI workflow (#805) @rhdong
- Wrapper for all-neighbors knn graph building (#785) @jinsolp
- Add support of half dtype in IVF-FLAT (#730) @lowener
- IVF-PQ: low-precision coarse search (#715) @achirkin
- [Feat] Add support of logical merge in Cagra (#713) @rhdong
🛠️ 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_snmgas device resource type for MG functions (#454) @viclafargue - Moving random ball cover (#218) @cjnolet