Skip to content
8 changes: 4 additions & 4 deletions cpp/bench/ann/src/diskann/diskann_benchmark.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ template <typename T>
void parse_build_param(const nlohmann::json& conf,
typename cuvs::bench::diskann_memory<T>::build_param& param)
{
param.R = conf.at("R");
if (conf.contains("L_build")) { param.L_build = conf.at("L_build"); }
param.R = conf.at("R");
param.L_build = conf.at("L_build");
if (conf.contains("alpha")) { param.num_threads = conf.at("alpha"); }
if (conf.contains("num_threads")) { param.num_threads = conf.at("num_threads"); }
}
Expand All @@ -45,8 +45,8 @@ template <typename T>
void parse_build_param(const nlohmann::json& conf,
typename cuvs::bench::diskann_ssd<T>::build_param& param)
{
param.R = conf.at("R");
if (conf.contains("L_build")) { param.L_build = conf.at("L_build"); }
param.R = conf.at("R");
param.L_build = conf.at("L_build");
if (conf.contains("alpha")) { param.num_threads = conf.at("alpha"); }
if (conf.contains("num_threads")) { param.num_threads = conf.at("num_threads"); }
if (conf.contains("QD")) { param.QD = conf.at("QD"); }
Expand Down
9 changes: 6 additions & 3 deletions docs/source/cuvs_bench/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -432,19 +432,22 @@ The table below contains all algorithms supported by cuVS. Each unique algorithm
- Algorithms

* - FAISS_GPU
- `faiss_gpu_flat`, `faiss_gpu_ivf_flat`, `faiss_gpu_ivf_pq`
- `faiss_gpu_flat`, `faiss_gpu_ivf_flat`, `faiss_gpu_ivf_pq`, `faiss_gpu_cagra`

* - FAISS_CPU
- `faiss_cpu_flat`, `faiss_cpu_ivf_flat`, `faiss_cpu_ivf_pq`
- `faiss_cpu_flat`, `faiss_cpu_ivf_flat`, `faiss_cpu_ivf_pq`, `faiss_cpu_hnsw_flat`

* - GGNN
- `ggnn`

* - HNSWLIB
- `hnswlib`

* - DiskANN
- `diskann_memory`, `diskann_ssd`

* - cuVS
- `cuvs_brute_force`, `cuvs_cagra`, `cuvs_ivf_flat`, `cuvs_ivf_pq`, `cuvs_cagra_hnswlib`
- `cuvs_brute_force`, `cuvs_cagra`, `cuvs_ivf_flat`, `cuvs_ivf_pq`, `cuvs_cagra_hnswlib`, `cuvs_vamana`


Multi-GPU benchmarks
Expand Down
94 changes: 94 additions & 0 deletions docs/source/cuvs_bench/param_tuning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,48 @@ This is a benchmark that enables interoperability between `CAGRA` built `HNSW` s

`search` : Same as `search` of Hnswlib

cuvs_vamana
-----------

Benchmark for building an in-memory Vamana graph based index on the GPU and interoperability with DiskANN for search.

.. list-table::

* - Parameter
- Type
- Required
- Data Type
- Default
- Description

* - `graph_degree`
- `build`
- N
- Positive integer >0
- 32
- Maximum degree of the graph index

* - `visited_size`
- `build`
- N
- Positive integer >0
- 64
- Maximum number of visited nodes per search corresponds to the L parameter in the Vamana literature

* - `alpha`
- `build`
- N
- Positive float >0
- 1.2
- Alpha for pruning parameter

* - `L_search`
- `search`
- Y
- Positive integer >0
-
- Maximum number of visited nodes per search corresponds to the L parameter in the Vamana literature. Larger values improve recall at the cost of search time.

FAISS Indexes
=============

Expand Down Expand Up @@ -672,3 +714,55 @@ hnswlib
- Number of threads to use for queries.

Please refer to `HNSW algorithm parameters guide <https://github.com/nmslib/hnswlib/blob/master/ALGO_PARAMS.md>`_ from `hnswlib` to learn more about these arguments.

DiskANN
=======

diskann_memory
--------------

Use DiskANN in-memory index for approximate search.

.. list-table::

* - Parameter
- Type
- Required
- Data Type
- Default
- Description

* - `R`
- `build`
- Y
- Positive integer >0
-
- Maximum degree of the graph index

* - `L_build`
- `build`
- Y
- Positive integer >0
-
- number of visited nodes per greedy search during graph construction

* - `alpha`
- `build`
- N
- Positive number >=1
- 1.2
- controls the pruning parameter of the graph construction

* - `num_threads`
- `build`
- N
- Positive integer >0
- omp_get_max_threads()
- Number of CPU threads to use to build the index.

* - `L_search`
- `search`
- Y
- Positive integer >0
-
- visited list size during search