[BUG] cuVS Bench Faiss CAGRA b_ratio reads the wrong JSON key
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- cpp
- Domain
- performance, tooling
Research direction
Start with cpp/bench/ann/src/faiss/faiss_gpu_benchmark.cu around lines 114-126, then inspect the linked faiss_gpu_cagra_hnsw.yaml configuration. Reproduce the IVF-PQ benchmark using b_ratio without ratio and add regression coverage showing that the configuration parses and applies the requested training fraction.
Written by the indexing model from the issue text.
Description
Describe the bug
The Faiss CAGRA benchmark parser recognizes the IVF-PQ build setting b_ratio, but reads ratio instead. If the configuration contains b_ratio without an unprefixed ratio, it appears to throw nlohmann::json::out_of_range before building. Both faiss_gpu_cagra and faiss_gpu_cagra_hnsw use this parser
Steps/Code to reproduce bug
In the existing Faiss CAGRA to HNSW benchmark configuration, set the build parameters to include:
cagra_build_algo: ["IVF_PQ"]
graph_degree: [44]
intermediate_graph_degree: [192]
b_ratio: [6]
Run the benchmark against a float32 dataset. No unprefixed ratio key is configured.
The parser removes b_ and checks ivf_pq_build_conf.contains("ratio"), then reads conf.at("ratio"). The latter key is absent.
Expected behavior
b_ratio: 6 sets the IVF-PQ training fraction to 1.0 / 6, and the CAGRA build proceeds.
Environment details (please complete the following information):
Inspected the NVIDIA/cuvs main branch on October 1, 2026.
Additional context
This affects benchmark configuration, not the CAGRA builder itself. Omitting b_ratio avoids the apparent exception but does not apply the requested training fraction. The parser could read ivf_pq_build_conf.at("ratio"); a regression test with b_ratio present and ratio absent would cover the case.
- Dominant language
- Cuda
- Stars
- 863
- Forks
- 242
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 70
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA/cuvs
-
doc
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
faiss improvement
Difficulty 1/5 Under an hour Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
[BUG] NNTest: GTEST_SKIP() in compute_1nn() doesn't skip the test, so cuTile-backend cases fail when cuTile is unavailablePossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
[DOC] Lucene: clarify codec behavior and Java test commandsPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
Similar issues
-
CLI contributor: external
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
external feature request text-splitters
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
langchain-ai/langchain#41191 ·
Maintainers usually reply within 1 day
-
Bug: Sliders Re-render on Every Resize Even When Thumb-Alignment="Center"Possibly taken A pull request linked to this issue is open or already merged. Openbug confirmed perf
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
videojs/video.js#9400 · 1 comment ·
Maintainers usually reply within 1 day
-
core priority: medium
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Kuldeep2822k/cli#332 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
nightscout/AndroidAPS#5245 ·
Maintainers usually reply within 1 day