NVIDIA / NVIDIA/cuvs

[FEA] Reduce duplicate distance computations in Vamana GreedySearch build

Open
#2,604 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Cuda
Stars
854
Forks
236
Avg merge
3d 3h
Merged PRs (30d)
62

Description

Is your feature request related to a problem? Please describe.
The Vamana GPU build is dominated by GreedySearch on high-dimensional datasets. During each search, nodes reachable through more than one path are re-checked against the visited set and have their distances recomputed each time, which is redundant work that scales with graph degree.

Describe the solution you'd like
Reduce the per-search visited-set handling so each node's distance is computed at most once, lowering build latency for high-dimensional workloads without changing search results.

Describe alternatives you've considered
Keeping the current visited-list handling and accepting the redundant distance computations is the baseline; it is simple but leaves build time higher than necessary on high-dimensional data.

Additional context
Measured on NVIDIA L4 (graph_degree=64, visited_size=128): build time reduced 14-34% on sift/cohere/gist/openai with no change in recall@10.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the Vamana GPU build's GreedySearch entry point and inspect the current per-search visited-set handling and distance computation path. Run the existing build measurements on sift, cohere, gist, and openai, then verify reduced build time with unchanged recall@10.

Written by the indexing model from the issue text.

Assessment

Domain
performance, search
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.