NVIDIA / NVIDIA/cuvs

[FEA] Use `warp_select` inside of faiss_select inside of fusedL2KNN, haversine_knn and RBC

Open
#125 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 should upgrade the fusedL2KNN code, haversine_knn and RBC code to use our warp_select from raft (aka GridSelect from https://dl.acm.org/doi/10.1145/3581784.3607062 ), instead of using the existing faiss_select code.

Our warp_select code has shown itself to be substantially faster than faiss select, especially on smaller numbers of input rows.

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

Locate fusedL2KNN, haversine_knn, and RBC and trace their existing faiss_select calls. Compare those call sites with raft's warp_select, also called GridSelect in the linked paper, and confirm all three paths use it without changing results. Benchmark smaller input-row cases to check the intended speedup.

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
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.