Releases: rapidsai/cuvs
Releases · rapidsai/cuvs
v24.12.00
🚨 Breaking Changes
- HNSW CPU Hierarchy (#465) @divyegala
- Use dashes in cuvs-bench package name. (#417) @bdice
🐛 Bug Fixes
- Skip IVF-PQ packing test for lists with not enough data (#512) @achirkin
- [BUG] Fix CAGRA filter (#489) @enp1s0
- Add
kIsSingleSource
toPairwiseDistanceEpilogueElementwise
(#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 tocuvs-bench
conda recipe (#408) @divyegala - Fix NVTX annotations (#400) @achirkin
📖 Documentation
- [Doc] Fix CAGRA search sample code (#484) @enp1s0
- Fix broken link in README.md references (#473) @Azurethi
- Adding tech stack to docs (#448) @cjnolet
- Fix Question Retrieval notebook (#352) @lowener
🚀 New Features
- Add C++ API scalar quantization (#494) @mfoerste4
- HNSW CPU Hierarchy (#465) @divyegala
- Add serialization API to brute-force (#461) @lowener
- Add Question Retrieval notebook using Milvus (#451) @lowener
- Migrate feature diff for NN Descent from RAFT to cuVS (#421) @divyegala
- Add --no-lap-sync cmd option to ann-bench (#405) @achirkin
- Add
InnerProduct
andCosineExpanded
metric support in NN Descent (#177) @divyegala
🛠️ Improvements
- Update cuvs to match raft's cutlass changes (#516) @vyasr
- add a README for wheels (#504) @jameslamb
- Move check_input_array from pylibraft (#474) @benfred
- use different wheel-size thresholds based on CUDA version (#469) @jameslamb
- Modify cuvs-bench to be able to generate ground truth in CPU systems (#466) @dantegd
- enforce wheel size limits, README formatting in CI (#464) @jameslamb
- Moving spectral embedding and kernel gramm APIs to cuVS (#463) @cjnolet
- Migrate sparse knn and distances code from raft (#457) @benfred
- Don't presume pointers location infers usability. (#441) @robertmaynard
- call
enable_testing
in root CMakeLists.txt (#437) @robertmaynard - CAGRA tech debt: distance descriptor and workspace memory (#436) @achirkin
- Add ci run_ scripts needed for build infra (#434) @robertmaynard
- Use environment variables in cache hit rate computation. (#422) @bdice
- Use dashes in cuvs-bench package name. (#417) @bdice
- We need to enable the c_api by default (#416) @robertmaynard
- print sccache stats in builds (#413) @jameslamb
- make conda installs in CI stricter (#406) @jameslamb
- Ivf c example (#404) @abner-ma
- Prune workflows based on changed files (#392) @KyleFromNVIDIA
- [WIP] Add pinned memory resource to C API (#311) @ajit283
- Dynamic Batching (#261) @achirkin
[NIGHTLY] v25.02.00
🔗 Links
🐛 Bug Fixes
🚀 New Features
🛠️ Improvements
- Branch 25.02 merge 24.12 (#526) @benfred
- Update cuda-python lower bounds to 12.6.2 / 11.8.5 (#524) @bdice
- prefer system install of UCX in devcontainers (#501) @jameslamb
- Adapt to rmm logger changes (#499) @vyasr
- Require approval to run CI on draft PRs (#498) @bdice
- Remove RAFT BUILD_ANN_BENCH option (#497) @bdice
- Update example code fetching rapids-cmake to use CUVS instead of RAFT (#493) @bdice
- Add breaking change workflow trigger (#442) @AyodeAwe
v24.10.00
🐛 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
- More doc updates for 24.10 (#396) @cjnolet
- fix 404 in documentation link in readme (#395) @benfred
- Improving getting started materials (#342) @cjnolet
- Fix broken examples link in README. (#326) @bdice
- Recommend
miniforge
for conda install (#325) @bdice
🚀 New Features
- Port remaining scripts to
cuvs_bench
(#368) @divyegala - [Feat] Relative change with
bitset
API feature #2439 in raft (#350) @rhdong - cuvs_bench plotting functions (#347) @dantegd
- CosineExpanded Metric for IVF-PQ (normalize inputs) (#346) @tarang-jain
- Python API for CAGRA+HNSW (#246) @divyegala
- C API for CAGRA+HNSW (#240) @divyegala
- SNMG ANN (#231) @viclafargue
- [FEA] Support for half-float mixed precise in brute-force (#225) @rhdong
🛠️ Improvements
- Remove cuvs-cagra-search from cuvs_static link (#388) @benfred
- Add a static library for cuvs (#382) @benfred
- Put the ann-bench large_workspace_resource in managed memory (#372) @achirkin
- Add multigpu kmeans fit function (#348) @benfred
- Update update-version.sh to use packaging lib (#344) @AyodeAwe
- remove NCCL pins in build and test environments (#341) @jameslamb
- Vamana/DiskANN index build (#339) @bkarsin
- Use CI workflow branch 'branch-24.10' again (#331) @jameslamb
- fix style checks on Python 3.12 (#328) @jameslamb
- Update flake8 to 7.1.1. (#327) @bdice
- Add function for calculating the mutual_reachability_graph (#323) @benfred
- Simplify libcuvs conda recipe. (#322) @bdice
- Refactor dependencies.yaml to use depends-on pattern. (#321) @bdice
- Update Python versions in cuvs_bench pyproject.toml. (#318) @bdice
- Brute force knn tile size heuristic (#316) @mfoerste4
- Euclidean distance example (#315) @abner-ma
- Migrate trustworthiness and silhouette_score stats from RAFT (#313) @benfred
- Add support for Python 3.12 (#312) @jameslamb
- Add
managed
option for RMM Pool memory resource to C API (#305) @ajit283 - Update rapidsai/pre-commit-hooks (#303) @KyleFromNVIDIA
- Expose search function with pre-filter for ANN (#302) @lowener
- Drop Python 3.9 support (#301) @jameslamb
- Use CUDA math wheels (#298) @KyleFromNVIDIA
- Remove NumPy <2 pin (#297) @seberg
- CAGRA - separable compilation for distance computation (#296) @achirkin
- Updating example notebooks (#294) @cjnolet
- Add RMM Pool memory resource to C API (#285) @ajit283
- Update pre-commit hooks (#283) @KyleFromNVIDIA
- Improve update-version.sh (#282) @bdice
- Use tool.scikit-build.cmake.version, set scikit-build-core minimum-version (#280) @jameslamb
- Add cuvs_bench.run python code and build (#279) @dantegd
- Add cuvs-bench to dependencies and conda environments (#275) @dantegd
- Update pip devcontainers to UCX v1.17.0 (#262) @jameslamb
- Adding example for tuning build and search params using Optuna (#257) @dpadmanabhan03
- Fixed link to build docs and corrected ivf_flat_example (#255) @mmccarty
- Merge branch-24.08 into branch-24.10 (#254) @jameslamb
- Persistent CAGRA kernel (#215) @achirkin
- [FEA] Support for Cosine distance in IVF-Flat (#179) @lowener
v24.08.00
🚨 Breaking Changes
🐛 Bug Fixes
- Remove fp16 kernels that have no public entry point (#268) @tfeher
- Use
raft::util::popc(...)
public API (#249) @divyegala - Enable building FAISS main statically (#241) @tarang-jain
- CAGRA bench: use device-side refinement when the data is on device (#228) @achirkin
- Rename
.devcontainer
s for CUDA 12.5 (#224) @jakirkham - Fix a CAGRA graph opt bug (#192) @enp1s0
📖 Documentation
- fix library name in docs ('cuvs' not 'pycuvs') (#193) @jameslamb
🚀 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
- [Opt] introduce the
masked_matmul
to prefiltered brute force. (#251) @rhdong - Add more info to ANN_BENCH context (#248) @achirkin
- split up CUDA-suffixed dependencies in dependencies.yaml (#247) @jameslamb
- Fix pinning to a different RAFT tag (#235) @benfred
- Use workflow branch 24.08 again (#234) @KyleFromNVIDIA
- chore: update search_plan.cuh (#232) @eltociear
- Enable kernel & memcpy overlapping in IVF index building (#230) @abc99lr
- CAGRA: reduce argument count in select_and_run() kernel wrappers (#227) @achirkin
- Mark the rust brute force unittest as flaky (#226) @benfred
- Add python bindings for ivf-* extend functions (#220) @benfred
- Build and test with CUDA 12.5.1 (#219) @KyleFromNVIDIA
- Add col-major support for brute force knn (#217) @benfred
- Add CUDA_STATIC_MATH_LIBRARIES (#216) @KyleFromNVIDIA
- skip CMake 3.30.0 (#214) @jameslamb
- Complete Migration of IVF Helpers / Features from RAFT (#213) @tarang-jain
- Use verify-alpha-spec hook (#209) @KyleFromNVIDIA
- Fixes for publishing rust package to crates.io (#207) @benfred
- Add rust example (#206) @benfred
- Adding IVF examples (#203) @cjnolet
- Fix compilation error when _CLK_BREAKDOWN is defined in cagra. (#202) @jiangyinzuo
- DOC: update notebook link (#191) @raybellwaves
- Change cagra.build_index to cagra.build (#187) @benfred
- Add python serialization API's for ivf-pq and ivf_flat (#186) @benfred
- resolve dependency-file-generator warning, rapids-build-backend followup (#185) @jameslamb
- Adopt CI/packaging codeowners (#183) @raydouglass
- Scaling workspace resources (#181) @achirkin
- Remove text builds of documentation (#180) @vyasr
- Add refine to the Python and C api's (#175) @benfred
- Allow serialization on streams (#173) @benfred
- Forward-merge branch-24.06 into branch-24.08 (#169) @benfred
- Use rapids-build-backend (#145) @KyleFromNVIDIA
- ANN_BENCH (#130) @achirkin
- Enable random subsampling (#122) @tfeher
v24.06.00
🐛 Bug Fixes
- Fix CAGRA OOM handling (#167) @tfeher
- Pass through raft static CMake var (#111) @vyasr
- Fix rust docs build (#84) @benfred
📖 Documentation
- chore: update Doxyfile (#162) @eltociear
- cuVS docs updates for release (#161) @cjnolet
- update: fix RAFT URL in README (#91) @hurutoriya
- Update the developer's guide with new copyright hook (#81) @KyleFromNVIDIA
- Add
lucene-cuvs
to integrations section of docs (#73) @cjnolet
🚀 New Features
- Add
refine
to public API (#154) @lowener - [FEA] support of prefiltered brute force (#146) @rhdong
- Migrate IVF-Flat from RAFT (#94) @divyegala
- Migrate IVF-PQ from RAFT to cuVS (#86) @lowener
🛠️ Improvements
- Expose serialization to the python / c-api (#164) @benfred
- Select k instantiations (#159) @benfred
- fix devcontainer name for codespaces (#153) @trxcllnt
- Accept host_mdspan for IVF-PQ build and extend (#148) @tfeher
- Add pairwise_distance api's for C, Python and Rust (#142) @benfred
- Changing RAFT_EXPLICT_* to CUVS_EXPLITI_* (#141) @cjnolet
- Speed-up rust build (#138) @benfred
- Removing
libraft.so
from libcuvs dependencies (#132) @cjnolet - CAGRA API update and allow async host refinement (#131) @mfoerste4
- Fix rust api docs (#119) @benfred
- Migrate BFKNN from raft (#118) @benfred
- Fix IVF-PQ helper functions (#116) @lowener
- Migrate
raft::cluster
tocuvs::cluster
(#115) @cjnolet - hide RAFT #pragma deprecation warnings (#114) @trxcllnt
- Enable Warnings as errors in Python tests (#102) @mroeschke
- Remove libnvjitlink dependency. (#97) @bdice
- Migrate to
{{ stdlib("c") }}
(#93) @hcho3 - update: replace to cuvs from RAFT in PULL_REQUEST_TEMPLATE (#92) @hurutoriya
- Add python and rust bindings for Ivf-Pq (#90) @benfred
- add --rm and --name to devcontainer run args (#89) @trxcllnt
- Update pip devcontainers to UCX v1.15.0 (#88) @trxcllnt
- Remove gtest from dependencies.yaml (#87) @robertmaynard
- Moving and renaming distance namespaces from raft -> cuvs (#85) @cjnolet
- Use static gtest (#83) @robertmaynard
- Add python and rust bindings for Ivf-Flat (#82) @benfred
- Forward merge branch-24.04 to branch-24.06 (#80) @benfred
- Update devcontainers to use cuda12.2 (#72) @benfred
- Forward merge branch-24.04 to branch-24.06 (#71) @benfred
- Enable forward-merger ops-bot plugin (#70) @benfred
- Adds missing files to
update-version.sh
(#69) @AyodeAwe - Add Cagra-Q compression to the python and rust api's (#68) @benfred
- ConfigureCUDA.cmake now sets CUVS_ prefixed variables (#66) @robertmaynard
- Enable all tests for
arm
jobs (#63) @galipremsagar
v24.04.00
🐛 Bug Fixes
- Fix for 24.04 release (#75) @raydouglass
- Update pre-commit-hooks to v0.0.3 (#60) @KyleFromNVIDIA
- Fix 'cuvs' conda package to only include Python artifacts and clean build.sh (#40) @dantegd
📖 Documentation
- [fix] link anchor of "Installing cuVS" (#64) @yinze00
- More docs updates for 24.04 (#54) @cjnolet
- CAGRA C example and DlPack docs (#51) @divyegala
- Add Rust API docs (#49) @benfred
quick start
andintegrations
guides for the docs (#47) @cjnolet- Docs 2404 api docs (#46) @cjnolet
- API Documentation (#44) @cjnolet
🚀 New Features
🛠️ Improvements
- Use
conda env create --yes
instead of--force
(#62) @bdice - Add CAGRA-Q compression (#61) @achirkin
- Add Brute Force KNN to Python and Rust API's (#59) @benfred
- expose cuvsResources_t to python (#58) @benfred
- Remove unused get_*.cmake files. (#57) @bdice
- Add ability to allocate with RMM to the c-api and rust api (#56) @benfred
- Update build.sh to build rust bindings (#53) @benfred
- Add upper bound to prevent usage of NumPy 2 (#52) @bdice
- add rust to conda environments (#50) @benfred
- Replace local copyright check with pre-commit-hooks verify-copyright (#48) @KyleFromNVIDIA
- Remove hard-coding of RAPIDS version where possible (#45) @KyleFromNVIDIA
- Expose exception text to C, Python and Rust API's (#39) @benfred
- Adding necessary codeowner groups (#36) @cjnolet
- Add Rust bindings for CAGRA (#34) @benfred
- KNN bruteforce and IVF methods C/C++ API (#33) @viclafargue
[NIGHTLY] v24.02.00
🔗 Links
🐛 Bug Fixes
- Update actions/labeler to v4 (#1) @raydouglass
🚀 New Features
- CAGRA C API (#27) @divyegala