NVIDIA / NVIDIA/cuvs

Lucene: Investigate performance of concurrent CAGRA search with batch size of 1

Open
#2,454 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Given the lack of support in Lucene for batched queries, it should still be possible to improve GPU utilization by running search queries from multiple host threads. After a concurrency bug fix in cuVS (https://github.com/rapidsai/cuvs/pull/1771/), we can now run multiple CAGRA search queries concurrently. However, the impact of any overhead in cuvs-lucene remains to be assessed.

Proposed evaluation grid:

  • Workload: 5M vectors, 64 dimesions, FP16
  • Hardware: AWS g6e.16xlarge (1xL40S GPU, 64 vCPU, 512 GB RAM)
  • Software: cuVS C++ (baseline) vs. cuvs-lucene (test)
  • Search config: k = 1000, batch_size = 1, n_threads up to 64
  • Recall targets: 80%, 90%, 95%, 99%

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 by reproducing the proposed evaluation for 5M FP16 vectors on an AWS g6e.16xlarge, comparing cuVS C++ with cuvs-lucene at batch_size=1 and up to 64 host threads. Measure utilization, throughput, overhead, and recall at 80%, 90%, 95%, and 99%; done means a clear comparison of results and conclusions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance, search
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.