NVIDIA / NVIDIA/cuvs

[BUG] Cannot run cuvs-bench with only --build

Open
#1,537 0 comments 0 reactions 1 assignee View on GitHub

@jnke2016 is already working on this.

Since Nov 20, 2025.

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

Description

Describe the bug
Running cuvs-bench with build index only results in a error message that indicates it's looking for something a search directory. Output folder may have existing results from previous runs.
conda run python -m cuvs_bench.run -k 10 -bs 1 --algorithms cuvs_cagra --groups test -f -m latency --dataset-configuration /data/benchmarks/datasets/miracl-10M-robust/config.yaml --dataset miracl-10M-robust --dataset-path /data/benchmarks/datasets --configuration /data/benchmarks/configs/cuvs_cagra.yaml --build

Steps/Code to reproduce bug

2025-11-07T21:23:56+00:00
Running /opt/conda/bin/ann/CUVS_CAGRA_ANN_BENCH
Run on (128 X 2395.52 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x64)
  L1 Instruction 32 KiB (x64)
  L2 Unified 512 KiB (x64)
  L3 Unified 16384 KiB (x32)
Load Average: 0.00, 0.00, 0.00
command_line: /opt/conda/bin/ann/CUVS_CAGRA_ANN_BENCH --build --data_prefix=/data/benchmarks/datasets --benchmark_out_format=json --benchmark_counters_tabular=true --benchmark_out=/data/benchmarks/datasets/miracl-10M-robust/result/build/cuvs_cagra,test.json.lock --force miracl-10M-robust_cuvs_cagra,test,k10,bs1_1172144e-bc20-11f0-8107-2af7195707cd.json
dataset: miracl-10M-robust
dim: 384
distance: euclidean
gpu_driver_version: 13.0
gpu_gpuDirectRDMASupported: 1
gpu_hostNativeAtomicSupported: 0
gpu_mem_bus_width: 5120
gpu_mem_freq: 1512000000.000000
gpu_mem_global_size: 85094825984
gpu_mem_shared_size: 167936
gpu_name: NVIDIA A100 80GB PCIe
gpu_pageableMemoryAccess: 0
gpu_pageableMemoryAccessUsesHostPageTables: 0
gpu_runtime_version: 13.0
gpu_sm_count: 108
gpu_sm_freq: 1410000000.000000
host_cores_used: 64
host_pagesize: 4096
host_processors_sysconf: 128
host_processors_used: 128
host_total_ram_size: 1081743925248
host_total_swap_size: 8589930496
n_records: 9999995
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/opt/conda/lib/python3.12/site-packages/cuvs_bench/run/__main__.py", line 221, in <module>
    main()
  File "/opt/conda/lib/python3.12/site-packages/click/core.py", line 1462, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.12/site-packages/click/core.py", line 1383, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.12/site-packages/click/core.py", line 1246, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.12/site-packages/click/core.py", line 814, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.12/site-packages/cuvs_bench/run/__main__.py", line 217, in main
    convert_json_to_csv_search(dataset, dataset_path)
  File "/opt/conda/lib/python3.12/site-packages/cuvs_bench/run/data_export.py", line 185, in convert_json_to_csv_search
    for file, algo_name, df in read_json_files(
                               ^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.12/site-packages/cuvs_bench/run/data_export.py", line 84, in read_json_files
    for file in os.listdir(dir_path):
                ^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/data/benchmarks/datasets/miracl-10M-robust/result/search'

ERROR conda.cli.main_run:execute(127): `conda run python -m cuvs_bench.run -k 10 -bs 1 --algorithms cuvs_cagra --groups test -f -m latency --dataset-configuration /data/benchmarks/datasets/miracl-10M-robust/config.yaml --dataset miracl-10M-robust --dataset-path /data/benchmarks/datasets --configuration /data/benchmarks/configs/cuvs_cagra.yaml --build` failed. (See above for error)

Expected behavior
Should be able to run index build by itself without search. Omitting the --build command will run a search after index build; however, I only want index build to occur since telemetry is being recorded with a wrapper function calling cuvs-bench commands.

Environment details (please complete the following information):
Ran within docker:

export CUVS_BENCH_DOCKER_IMG=rapidsai/cuvs-bench:25.10-cuda13.0-py3.12
export DATA_FOLDER=/raid/cuvs-embeddings
docker run --gpus all --rm -it \
  --user root \
  --shm-size=16GB \
  --entrypoint /bin/bash \
  --workdir /data/benchmarks \
  -v $DATA_FOLDER:/data/benchmarks \
  $CUVS_BENCH_DOCKER_IMG

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.