Skip to content

Commit

Permalink
Add MG algos to cuvs-bench + update doc
Browse files Browse the repository at this point in the history
  • Loading branch information
viclafargue committed Oct 4, 2024
1 parent 5adf264 commit 5ec8789
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 0 deletions.
19 changes: 19 additions & 0 deletions docs/source/cuvs_bench/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,25 @@ The usage of `python -m cuvs_bench.split_groundtruth` is:
--groundtruth GROUNDTRUTH
Path to billion-scale dataset groundtruth file (default: None)
Running the MG versions of benchmarks
-------------------------------------
cuVS implements the single node multi-GPU versions of IVF-Flat, IVF-PQ and CAGRA.
.. list-table::
* - ANN type
- algorithms names
* - IVF-Flat
- `cuvs_mg_ivf_flat`
* - IVF-PQ
- `cuvs_mg_ivf_pq`
* - CAGRA
- `cuvs_mg_cagra`
Running with Docker containers
------------------------------
Expand Down
9 changes: 9 additions & 0 deletions python/cuvs_bench/cuvs_bench/config/algorithms.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@ cuvs_cagra:
cuvs_brute_force:
executable: CUVS_BRUTE_FORCE_ANN_BENCH
requires_gpu: true
cuvs_mg_ivf_flat:
executable: CUVS_MG_ANN_BENCH
requires_gpu: true
cuvs_mg_ivf_pq:
executable: CUVS_MG_ANN_BENCH
requires_gpu: true
cuvs_mg_cagra:
executable: CUVS_MG_ANN_BENCH
requires_gpu: true
ggnn:
executable: GGNN_ANN_BENCH
requires_gpu: true
Expand Down
13 changes: 13 additions & 0 deletions python/cuvs_bench/cuvs_bench/config/algos/cuvs_mg_cagra.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: cuvs_mg_cagra
constraints:
build: cuvs_bench.config.algos.constraints.cuvs_cagra_build
search: cuvs_bench.config.algos.constraints.cuvs_cagra_search
groups:
base:
build:
graph_degree: [32, 64, 96, 128]
intermediate_graph_degree: [32, 64, 96, 128]
graph_build_algo: ["NN_DESCENT"]
search:
itopk: [32, 64, 128, 256, 512]
search_width: [1, 2, 4, 8, 16, 32, 64]
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: cuvs_mg_ivf_flat
groups:
base:
build:
nlist: [1024, 2048, 4096, 8192, 16384, 32000, 64000]
ratio: [1, 2, 4]
niter: [20, 25]
search:
nprobe: [1, 5, 10, 50, 100, 200, 500, 1000, 2000]
41 changes: 41 additions & 0 deletions python/cuvs_bench/cuvs_bench/config/algos/cuvs_mg_ivf_pq.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: cuvs_mg_ivf_pq
constraints:
build: cuvs_bench.config.algos.constraints.cuvs_ivf_pq_build
search: cuvs_bench.config.algos.constraints.cuvs_ivf_pq_search
groups:
base:
build:
nlist: [1024, 2048, 4096, 8192]
pq_dim: [64, 32, 16]
pq_bits: [8, 6, 5, 4]
ratio: [10]
niter: [25]
search:
nprobe: [1, 5, 10, 50, 100, 200]
internalDistanceDtype: ["float"]
smemLutDtype: ["float", "fp8", "half"]
refine_ratio: [1, 2, 4]
large:
build:
nlist: [8192, 16384, 32768, 65536]
pq_dim: [48, 32, 16]
pq_bits: [8, 6, 5, 4]
ratio: [4]
niter: [20]
search:
nprobe: [20, 30, 40, 50, 100, 200, 500, 1000]
internalDistanceDtype: ["float"]
smemLutDtype: ["float", "fp8", "half"]
refine_ratio: [1, 2, 4]
100M:
build:
nlist: [50000]
pq_dim: [48]
pq_bits: [8, 6, 5, 4]
ratio: [10]
niter: [10]
search:
nprobe: [20, 30, 40, 50, 100, 200, 500, 1000]
internalDistanceDtype: ["float"]
smemLutDtype: ["float", "fp8", "half"]
refine_ratio: [1]

0 comments on commit 5ec8789

Please sign in to comment.