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