NVIDIA / NVIDIA/cuvs

[FEA] Provide a select-k api in cuvs

Open
#124 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

We are currently using the raft::matrix::select_k API in the CAGRA multi kernel search and brute-force knn search, and are also using the raft::matrix::detail::select_k API in the ivf_flat and ivf_pq search.

Since we're trying to not depend on libraft.so inside of cuvs anymore, we should migrate to expose our own select-k API (cuvs::selection::select_k) - so that we don't need to compile the select-k code multiple times.

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

Trace the CAGRA multi-kernel and brute-force KNN searches, plus the ivf_flat and ivf_pq searches, where the existing raft::matrix::select_k APIs are used. Compare the public and detail APIs, then determine the cuvs::selection::select_k surface needed by all four paths. Done means these searches use the cuvs API without depending on libraft.so or compiling select-k repeatedly.

Written by the indexing model from the issue text.

Assessment

Domain
search
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.