Optimize recall calculation and enhance CAGRA search features - #2502
Draft
sherylll wants to merge 5 commits into
Draft
Optimize recall calculation and enhance CAGRA search features#2502sherylll wants to merge 5 commits into
sherylll wants to merge 5 commits into
Conversation
sherylll
commented
Aug 25, 2026
- add new ANN_BENCH knobs: build_quality/search_quality/hashmap_min_bitlen
- enable auto search_width selection
- increase default hashmap_min_bitlen
- fix slow recall calculation issue at low batch
Decoupes work assignment in recall calculatoin loop from batch size (n_queries) used for search. This prevents each worker from having very little to do when batch size is small.
Increase default small hashmap bit length to give interval a chance to grow. User can still set this to 8,9,10 manually.
Allow search_width=0 to scale exploration with itopk and graph degree, avoiding overly narrow SINGLE_CTA searches at large itopk while preserving MULTI_CTA's existing CTA floor.
Expose hashmap_min_bitlen through ANN benchmark configurations so hash sizing heuristics can be evaluated directly.
Add CAGRA search quality control At low batch sizes, increasing itopk adds parallel CTAs cheaply, so reduce local iterations as itopk grows. Larger candidate pools tolerate shallower traversal; reserve high iteration counts for explicit extreme-recall tuning. For multi-CTA algo, search_quality controls the iteration budget, while for single-CTA algo, it controls the iteration * search_width budget.
Author
|
E.g.
|
Contributor
|
Hi @sherylll, please also make sure any relevant configured parameters/options are also being proposed through the Python scripts where necessary (users always go through the Python scripts). I haven't looked at this PR, just pointing this out, since I know you're onboarding to cuVS. |
sherylll
marked this pull request as draft
August 26, 2026 02:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.