From 812fffdebdece7aca8bb1c7f8ec7f945835540c2 Mon Sep 17 00:00:00 2001 From: Dante Gama Dessavre Date: Tue, 30 Jul 2024 21:08:50 -0500 Subject: [PATCH] Add cuvs_bench python folder, config files and constraints (#244) Authors: - Dante Gama Dessavre (https://github.com/dantegd) - Corey J. Nolet (https://github.com/cjnolet) Approvers: - Corey J. Nolet (https://github.com/cjnolet) URL: https://github.com/rapidsai/cuvs/pull/244 --- .../config/algos/cuvs_brute_force.yaml | 5 + .../cuvs_bench/config/algos/cuvs_cagra.yaml | 13 + .../config/algos/cuvs_cagra_hnswlib.yaml | 11 + .../config/algos/cuvs_ivf_flat.yaml | 9 + .../cuvs_bench/config/algos/cuvs_ivf_pq.yaml | 41 + .../config/algos/faiss_cpu_flat.yaml | 5 + .../config/algos/faiss_cpu_ivf_flat.yaml | 10 + .../config/algos/faiss_cpu_ivf_pq.yaml | 18 + .../config/algos/faiss_gpu_flat.yaml | 5 + .../config/algos/faiss_gpu_ivf_flat.yaml | 21 + .../config/algos/faiss_gpu_ivf_pq.yaml | 77 ++ .../cuvs_bench/config/algos/hnswlib.yaml | 10 + .../cuvs_bench/config/bigann-100M.yaml | 295 ++++++ .../cuvs_bench/config/constraints.py | 101 ++ .../cuvs_bench/config/datasets.yaml | 127 +++ .../cuvs_bench/config/deep-100M.yaml | 896 ++++++++++++++++++ .../cuvs_bench/cuvs_bench/config/deep-1B.yaml | 26 + .../config/deep-image-96-inner.yaml | 712 ++++++++++++++ .../config/fashion-mnist-784-euclidean.yaml | 778 +++++++++++++++ .../cuvs_bench/config/gist-960-euclidean.yaml | 777 +++++++++++++++ .../cuvs_bench/config/glove-100-angular.yaml | 777 +++++++++++++++ .../cuvs_bench/config/glove-100-inner.yaml | 777 +++++++++++++++ .../cuvs_bench/config/glove-50-angular.yaml | 777 +++++++++++++++ .../cuvs_bench/config/glove-50-inner.yaml | 777 +++++++++++++++ .../cuvs_bench/config/lastfm-65-angular.yaml | 777 +++++++++++++++ .../config/mnist-784-euclidean.yaml | 778 +++++++++++++++ .../config/nytimes-256-angular.yaml | 778 +++++++++++++++ .../cuvs_bench/config/nytimes-256-inner.yaml | 778 +++++++++++++++ .../cuvs_bench/config/sift-128-euclidean.yaml | 562 +++++++++++ .../cuvs_bench/config/wiki_all_10M.yaml | 357 +++++++ .../cuvs_bench/config/wiki_all_1M.yaml | 371 ++++++++ .../cuvs_bench/config/wiki_all_88M.yaml | 357 +++++++ 32 files changed, 11803 insertions(+) create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/cuvs_brute_force.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra_hnswlib.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_flat.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_pq.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_flat.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_flat.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_pq.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_flat.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_flat.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_pq.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/algos/hnswlib.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/bigann-100M.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/constraints.py create mode 100644 python/cuvs_bench/cuvs_bench/config/datasets.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/deep-100M.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/deep-1B.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/deep-image-96-inner.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/fashion-mnist-784-euclidean.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/gist-960-euclidean.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/glove-100-angular.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/glove-100-inner.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/glove-50-angular.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/glove-50-inner.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/lastfm-65-angular.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/mnist-784-euclidean.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/nytimes-256-angular.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/nytimes-256-inner.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/sift-128-euclidean.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/wiki_all_10M.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/wiki_all_1M.yaml create mode 100644 python/cuvs_bench/cuvs_bench/config/wiki_all_88M.yaml diff --git a/python/cuvs_bench/cuvs_bench/config/algos/cuvs_brute_force.yaml b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_brute_force.yaml new file mode 100644 index 000000000..df6855fb4 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_brute_force.yaml @@ -0,0 +1,5 @@ +name: cuvs_brute_force +groups: + base: + build: + search: diff --git a/python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra.yaml b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra.yaml new file mode 100644 index 000000000..e7b049d0c --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra.yaml @@ -0,0 +1,13 @@ +name: cuvs_cagra +constraints: + build: cuvs_bench.constraints.raft_cagra_build_constraints + search: cuvs_bench.constraints.raft_cagra_search_constraints +groups: + base: + build: + graph_degree: [32, 64, 128, 256] + 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] diff --git a/python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra_hnswlib.yaml b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra_hnswlib.yaml new file mode 100644 index 000000000..70e344dfd --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_cagra_hnswlib.yaml @@ -0,0 +1,11 @@ +name: cuvs_cagra_hnswlib +constraints: + search: cuvs_bench.constraints.hnswlib_search +groups: + base: + build: + graph_degree: [32, 64, 128, 256] + intermediate_graph_degree: [32, 64, 96, 128] + graph_build_algo: ["NN_DESCENT"] + search: + ef: [10, 20, 40, 60, 80, 120, 200, 400, 600, 800] diff --git a/python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_flat.yaml b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_flat.yaml new file mode 100644 index 000000000..22afc79ab --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_flat.yaml @@ -0,0 +1,9 @@ +name: cuvs_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] diff --git a/python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_pq.yaml b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_pq.yaml new file mode 100644 index 000000000..aa95d6716 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/cuvs_ivf_pq.yaml @@ -0,0 +1,41 @@ +name: cuvs_ivf_pq +constraints: + build: cuvs_bench.constraints.cuvs_ivf_pq_build + search: cuvs_bench.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] diff --git a/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_flat.yaml b/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_flat.yaml new file mode 100644 index 000000000..25eaf03d4 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_flat.yaml @@ -0,0 +1,5 @@ +name: faiss_cpu_flat +groups: + base: + build: + search: diff --git a/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_flat.yaml b/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_flat.yaml new file mode 100644 index 000000000..29c145f86 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_flat.yaml @@ -0,0 +1,10 @@ +name: faiss_cpu_ivf_flat +groups: + base: + build: + nlist: [2048] + ratio: [10] + useFloat16: [False] + search: + nprobe: [1, 5, 10, 50, 100, 200] + refine_ratio: [1] \ No newline at end of file diff --git a/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_pq.yaml b/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_pq.yaml new file mode 100644 index 000000000..a531ec829 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/faiss_cpu_ivf_pq.yaml @@ -0,0 +1,18 @@ +name: faiss_cpu_ivf_pq +groups: + base: + build: + nlist: [1024, 2048, 4096, 8192] + M: [48, 32, 16] + ratio: [10] + bitsPerCode: [8, 6, 5, 4] + search: + nprobe: [1, 5, 10, 50, 100, 200] + large: + build: + nlist: [8192, 16384, 32768, 65536] + M: [48, 32, 16] + ratio: [10] + bitsPerCode: [8, 6, 5, 4] + search: + nprobe: [20, 30, 40, 50, 100, 200, 500, 1000] diff --git a/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_flat.yaml b/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_flat.yaml new file mode 100644 index 000000000..a722e1b91 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_flat.yaml @@ -0,0 +1,5 @@ +name: faiss_gpu_flat +groups: + base: + build: + search: diff --git a/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_flat.yaml b/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_flat.yaml new file mode 100644 index 000000000..e4abc35f5 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_flat.yaml @@ -0,0 +1,21 @@ +name: faiss_gpu_ivf_flat +groups: + base: + build: + nlist: [2048] + ratio: [10] + useFloat16: [False, True] + use_raft: [False] + search: + nprobe: [1, 5, 10, 50, 100, 200] + refine_ratio: [1] +groups: + baseraft: + build: + nlist: [2048] + ratio: [10] + useFloat16: [False, True] + use_raft: [True] + search: + nprobe: [1, 5, 10, 50, 100, 200] + refine_ratio: [1] \ No newline at end of file diff --git a/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_pq.yaml b/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_pq.yaml new file mode 100644 index 000000000..1bd78b736 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/faiss_gpu_ivf_pq.yaml @@ -0,0 +1,77 @@ +name: faiss_gpu_ivf_pq +constraints: + build: cuvs_bench.constraints.faiss_gpu_ivf_pq_build + search: cuvs_bench.constraints.faiss_gpu_ivf_pq_search +groups: + base: + build: + nlist: [1024, 2048, 4096, 8192] + M: [64, 32, 16] + ratio: [10] + usePrecomputed: [False, True] + useFloat16: [False, True] + use_raft: [False] + bitsPerCode: [8] + search: + nprobe: [1, 5, 10, 50, 100, 200] + refine_ratio: [1, 2, 4] + baseraft: + build: + nlist: [1024, 2048, 4096, 8192] + M: [64, 32, 16] + ratio: [10] + usePrecomputed: [False] + useFloat16: [False, True] + use_raft: [True] + bitsPerCode: [8, 6, 5, 4] + search: + nprobe: [1, 5, 10, 50, 100, 200] + refine_ratio: [1, 2, 4] + large: + build: + nlist: [8192, 16384, 32768, 65536] + M: [48, 32, 16] + ratio: [4] + usePrecomputed: [False, True] + useFloat16: [False, True] + use_raft: [False] + bitsPerCode: [8] + search: + nprobe: [20, 30, 40, 50, 100, 200, 500, 1000] + refine_ratio: [1, 2, 4] + largeraft: + build: + nlist: [8192, 16384, 32768, 65536] + M: [48, 32, 16] + ratio: [4] + usePrecomputed: [False] + useFloat16: [False, True] + use_raft: [True] + bitsPerCode: [8, 6, 5, 4] + search: + nprobe: [20, 30, 40, 50, 100, 200, 500, 1000] + refine_ratio: [1, 2, 4] + 100M: + build: + nlist: [50000] + M: [48] + ratio: [10] + usePrecomputed: [False, True] + useFloat16: [False, True] + use_raft: [False] + bitsPerCode: [8] + search: + nprobe: [20, 30, 40, 50, 100, 200, 500, 1000] + refine_ratio: [1] + 100Mraft: + build: + nlist: [50000] + M: [48] + ratio: [10] + usePrecomputed: [False, True] + useFloat16: [False, True] + use_raft: [True] + bitsPerCode: [8, 6, 5, 4] + search: + nprobe: [20, 30, 40, 50, 100, 200, 500, 1000] + refine_ratio: [1] diff --git a/python/cuvs_bench/cuvs_bench/config/algos/hnswlib.yaml b/python/cuvs_bench/cuvs_bench/config/algos/hnswlib.yaml new file mode 100644 index 000000000..dbd73155d --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/algos/hnswlib.yaml @@ -0,0 +1,10 @@ +name: hnswlib +constraints: + search: cuvs_bench.constraints.hnswlib_search +groups: + base: + build: + M: [12, 16, 24, 36] + efConstruction: [64, 128, 256, 512] + search: + ef: [10, 20, 40, 60, 80, 120, 200, 400, 600, 800] diff --git a/python/cuvs_bench/cuvs_bench/config/bigann-100M.yaml b/python/cuvs_bench/cuvs_bench/config/bigann-100M.yaml new file mode 100644 index 000000000..69f75d1f7 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/bigann-100M.yaml @@ -0,0 +1,295 @@ +dataset: + base_file: bigann-1B/base.1B.u8bin + distance: euclidean + groundtruth_neighbors_file: bigann-100M/groundtruth.neighbors.ibin + name: bigann-100M + query_file: bigann-1B/query.public.10K.u8bin + subset_size: 100000000 +index: +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 5000 + pq_dim: 64 + ratio: 10 + file: bigann-100M/raft_ivf_pq/dimpq64-cluster5K + name: raft_ivf_pq.dimpq64-cluster5K + search_params: + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 20 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1000 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 10000 + pq_dim: 64 + ratio: 10 + file: bigann-100M/raft_ivf_pq/dimpq64-cluster5K + name: raft_ivf_pq.dimpq64-cluster10K + search_params: + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 20 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1000 + smemLutDtype: half +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: bigann-100M/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: bigann-100M/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: bigann-100M/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: bigann-100M/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 100000 + ratio: 5 + file: bigann-100M/raft_ivf_flat/nlist100K + name: raft_ivf_flat.nlist100K + search_params: + - max_batch: 10000 + max_k: 10 + nprobe: 20 + - max_batch: 10000 + max_k: 10 + nprobe: 30 + - max_batch: 10000 + max_k: 10 + nprobe: 40 + - max_batch: 10000 + max_k: 10 + nprobe: 50 + - max_batch: 10000 + max_k: 10 + nprobe: 100 + - max_batch: 10000 + max_k: 10 + nprobe: 200 + - max_batch: 10000 + max_k: 10 + nprobe: 500 + - max_batch: 10000 + max_k: 10 + nprobe: 1000 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: bigann-100M/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: bigann-100M/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 +search_basic_param: + batch_size: 10000 + k: 10 diff --git a/python/cuvs_bench/cuvs_bench/config/constraints.py b/python/cuvs_bench/cuvs_bench/config/constraints.py new file mode 100644 index 000000000..ff451c056 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/constraints.py @@ -0,0 +1,101 @@ +# +# Copyright (c) 2023-2024, NVIDIA CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +############################################################################### +# Utilities # +############################################################################### + +dtype_sizes = { + "float": 4, + "fp8": 1, + "half": 2, +} + + +############################################################################### +# cuVS constraints # +############################################################################### + + +def cuvs_cagra_build(params, dims): + if "graph_degree" in params and "intermediate_graph_degree" in params: + return params["graph_degree"] <= params["intermediate_graph_degree"] + return True + + +def cuvs_ivf_pq_build(params, dims): + if "pq_dim" in params: + return params["pq_dim"] <= dims + return True + + +def cuvs_ivf_pq_search(params, build_params, k, batch_size): + ret = True + if "internalDistanceDtype" in params and "smemLutDtype" in params: + ret = ( + dtype_sizes[params["smemLutDtype"]] + <= dtype_sizes[params["internalDistanceDtype"]] + ) + + if "nlist" in build_params and "nprobe" in params: + ret = ret and build_params["nlist"] >= params["nprobe"] + return ret + + +def cuvs_cagra_search(params, build_params, k, batch_size): + if "itopk" in params: + return params["itopk"] >= k + return True + + +############################################################################### +# FAISS constraints # +############################################################################### + + +def faiss_gpu_ivf_pq_build(params, dims): + ret = True + # M must be defined + ret = params["M"] <= dims and dims % params["M"] == 0 + if "use_cuvs" in params and params["use_cuvs"]: + return ret + pq_bits = 8 + if "bitsPerCode" in params: + pq_bits = params["bitsPerCode"] + lookup_table_size = 4 + if "useFloat16" in params and params["useFloat16"]: + lookup_table_size = 2 + # FAISS constraint to check if lookup table fits in shared memory + # for now hard code maximum shared memory per block to 49 kB + # (the value for A100 and V100) + return ret and lookup_table_size * params["M"] * (2**pq_bits) <= 49152 + + +def faiss_gpu_ivf_pq_search(params, build_params, k, batch_size): + ret = True + if "nlist" in build_params and "nprobe" in params: + ret = ret and build_params["nlist"] >= params["nprobe"] + return ret + + +############################################################################### +# hnswlib constraints # +############################################################################### + + +def hnswlib_search(params, build_params, k, batch_size): + if "ef" in params: + return params["ef"] >= k diff --git a/python/cuvs_bench/cuvs_bench/config/datasets.yaml b/python/cuvs_bench/cuvs_bench/config/datasets.yaml new file mode 100644 index 000000000..188d24d20 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/datasets.yaml @@ -0,0 +1,127 @@ +- name: bigann-1B + base_file: bigann-1B/base.1B.u8bin + subset_size: 100000000 + dims: 128 + query_file: bigann-1B/query.public.10K.u8bin + groundtruth_neighbors_file: bigann-1B/groundtruth.neighbors.ibin + distance: euclidean + +- name: deep-1B + base_file: deep-1B/base.1B.fbin + query_file: deep-1B/query.public.10K.fbin + dims: 96 + groundtruth_neighbors_file: deep-1B/groundtruth.neighbors.ibin + distance: inner_product + +- name: bigann-100M + base_file: bigann-100M/base.1B.u8bin + subset_size: 100000000 + dims: 128 + query_file: bigann-100M/query.public.10K.u8bin + groundtruth_neighbors_file: bigann-100M/groundtruth.neighbors.ibin + distance: euclidean + +- name: deep-image-96-inner + base_file: deep-image-96-inner/base.fbin + query_file: deep-image-96-inner/query.fbin + dims: 96 + groundtruth_neighbors_file: deep-image-96-inner/groundtruth.neighbors.ibin + distance: euclidean + +- name: fashion-mnist-784-euclidean + dims: 784 + base_file: fashion-mnist-784-euclidean/base.fbin + query_file: fashion-mnist-784-euclidean/query.fbin + groundtruth_neighbors_file: fashion-mnist-784-euclidean/groundtruth.neighbors.ibin + distance: euclidean + +- name: gist-960-euclidean + dims: 960 + base_file: gist-960-euclidean/base.fbin + query_file: gist-960-euclidean/query.fbin + groundtruth_neighbors_file: gist-960-euclidean/groundtruth.neighbors.ibin + distance: euclidean + +- name: glove-50-angular + dims: 50 + base_file: glove-50-angular/base.fbin + query_file: glove-50-angular/query.fbin + groundtruth_neighbors_file: glove-50-angular/groundtruth.neighbors.ibin + distance: euclidean + +- name: glove-50-inner + dims: 50 + base_file: glove-50-inner/base.fbin + query_file: glove-50-inner/query.fbin + groundtruth_neighbors_file: glove-50-inner/groundtruth.neighbors.ibin + distance: euclidean + +- name: glove-100-angular + dims: 100 + base_file: glove-100-angular/base.fbin + query_file: glove-100-angular/query.fbin + groundtruth_neighbors_file: glove-100-angular/groundtruth.neighbors.ibin + distance: euclidean + +- name: glove-100-inner + dims: 100 + base_file: glove-100-inner/base.fbin + query_file: glove-100-inner/query.fbin + groundtruth_neighbors_file: glove-100-inner/groundtruth.neighbors.ibin + distance: euclidean + +- name: lastfm-65-angular + dims: 65 + base_file: lastfm-65-angular/base.fbin + query_file: lastfm-65-angular/query.fbin + groundtruth_neighbors_file: lastfm-65-angular/groundtruth.neighbors.ibin + distance: euclidean + +- name: mnist-784-euclidean + dims: 784 + base_file: mnist-784-euclidean/base.fbin + query_file: mnist-784-euclidean/query.fbin + groundtruth_neighbors_file: mnist-784-euclidean/groundtruth.neighbors.ibin + distance: euclidean + +- name: nytimes-256-angular + dims: 256 + base_file: nytimes-256-angular/base.fbin + query_file: nytimes-256-angular/query.fbin + groundtruth_neighbors_file: nytimes-256-angular/groundtruth.neighbors.ibin + distance: euclidean + +- name: nytimes-256-inner + dims: 256 + base_file: nytimes-256-inner/base.fbin + query_file: nytimes-256-inner/query.fbin + groundtruth_neighbors_file: nytimes-256-inner/groundtruth.neighbors.ibin + distance: euclidean + +- name: sift-128-euclidean + dims: 128 + base_file: sift-128-euclidean/base.fbin + query_file: sift-128-euclidean/query.fbin + groundtruth_neighbors_file: sift-128-euclidean/groundtruth.neighbors.ibin + distance: euclidean + +- name: wiki_all_1M + dims: 768 + base_file: wiki_all_1M/base.1M.fbin + query_file: wiki_all_1M/queries.fbin + groundtruth_neighbors_file: wiki_all_1M/groundtruth.1M.neighbors.ibin + distance: euclidean + +- name: wiki_all_10M + dims: 768 + base_file: wiki_all_10M/base.10M.fbin + query_file: wiki_all_10M/queries.fbin + groundtruth_neighbors_file: wiki_all_10M/groundtruth.10M.neighbors.ibin + distance: euclidean + +- name: wiki_all_88M + dims: 768 + base_file: wiki_all_88M/base.88M.fbin + query_file: wiki_all_88M/queries.fbin + groundtruth_neighbors_file: wiki_all_88M/groundtruth.88M.neighbors.ibin + distance: euclidean diff --git a/python/cuvs_bench/cuvs_bench/config/deep-100M.yaml b/python/cuvs_bench/cuvs_bench/config/deep-100M.yaml new file mode 100644 index 000000000..90b1f9721 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/deep-100M.yaml @@ -0,0 +1,896 @@ +dataset: + base_file: deep-100M/base.1B.fbin + distance: euclidean + groundtruth_neighbors_file: deep-100M/groundtruth.neighbors.ibin + name: deep-100M + query_file: deep-100M/query.public.10K.fbin + subset_size: 100000000 +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: deep-100M/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: deep-100M/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: deep-100M/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: deep-100M/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 50000 + file: deep-100M/faiss_gpu_ivf_flat/nlist50K + name: faiss_gpu_ivf_flat.nlist50K + search_params: + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 100000 + file: deep-100M/faiss_gpu_ivf_flat/nlist100K + name: faiss_gpu_ivf_flat.nlist100K + search_params: + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 200000 + file: deep-100M/faiss_gpu_ivf_flat/nlist200K + name: faiss_gpu_ivf_flat.nlist200K + search_params: + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_pq + build_param: + M: 48 + nlist: 16384 + file: deep-100M/faiss_gpu_ivf_pq/M48-nlist16K + name: faiss_gpu_ivf_pq.M48-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: faiss_gpu_ivf_pq + build_param: + M: 48 + nlist: 50000 + file: deep-100M/faiss_gpu_ivf_pq/M48-nlist50K + name: faiss_gpu_ivf_pq.M48-nlist50K + search_params: + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_pq + build_param: + M: 48 + nlist: 100000 + file: deep-100M/faiss_gpu_ivf_pq/M48-nlist100K + name: faiss_gpu_ivf_pq.M48-nlist100K + search_params: + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_pq + build_param: + M: 48 + nlist: 200000 + file: deep-100M/faiss_gpu_ivf_pq/M48-nlist200K + name: faiss_gpu_ivf_pq.M48-nlist200K + search_params: + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 50000 + ratio: 5 + file: deep-100M/raft_ivf_flat/nlist50K + name: raft_ivf_flat.nlist50K + search_params: + - max_batch: 10000 + max_k: 10 + nprobe: 20 + - max_batch: 10000 + max_k: 10 + nprobe: 30 + - max_batch: 10000 + max_k: 10 + nprobe: 40 + - max_batch: 10000 + max_k: 10 + nprobe: 50 + - max_batch: 10000 + max_k: 10 + nprobe: 100 + - max_batch: 10000 + max_k: 10 + nprobe: 200 + - max_batch: 10000 + max_k: 10 + nprobe: 500 + - max_batch: 10000 + max_k: 10 + nprobe: 1000 +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 100000 + ratio: 5 + file: deep-100M/raft_ivf_flat/nlist100K + name: raft_ivf_flat.nlist100K + search_params: + - max_batch: 10000 + max_k: 10 + nprobe: 20 + - max_batch: 10000 + max_k: 10 + nprobe: 30 + - max_batch: 10000 + max_k: 10 + nprobe: 40 + - max_batch: 10000 + max_k: 10 + nprobe: 50 + - max_batch: 10000 + max_k: 10 + nprobe: 100 + - max_batch: 10000 + max_k: 10 + nprobe: 200 + - max_batch: 10000 + max_k: 10 + nprobe: 500 + - max_batch: 10000 + max_k: 10 + nprobe: 1000 +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 200000 + ratio: 5 + file: deep-100M/raft_ivf_flat/nlist200K + name: raft_ivf_flat.nlist200K + search_params: + - max_batch: 10000 + max_k: 10 + nprobe: 20 + - max_batch: 10000 + max_k: 10 + nprobe: 30 + - max_batch: 10000 + max_k: 10 + nprobe: 40 + - max_batch: 10000 + max_k: 10 + nprobe: 50 + - max_batch: 10000 + max_k: 10 + nprobe: 100 + - max_batch: 10000 + max_k: 10 + nprobe: 200 + - max_batch: 10000 + max_k: 10 + nprobe: 500 + - max_batch: 10000 + max_k: 10 + nprobe: 1000 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 50000 + pq_bits: 5 + pq_dim: 96 + ratio: 10 + file: deep-100M/raft_ivf_pq/d96b5n50K + name: raft_ivf_pq.d96b5n50K + search_params: + - internalDistanceDtype: float + nprobe: 20 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 30 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 40 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1000 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 2000 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 5000 + refine_ratio: 2 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 20 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 30 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 40 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 50 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 100 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 200 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 1000 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 2000 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 5000 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 20 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 30 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 40 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1000 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 2000 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 5000 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1000 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 2000 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 5000 + refine_ratio: 2 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 1000 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 2000 + refine_ratio: 2 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 5000 + refine_ratio: 2 + smemLutDtype: fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 50000 + pq_bits: 5 + pq_dim: 64 + ratio: 10 + file: deep-100M/raft_ivf_pq/d64b5n50K + name: raft_ivf_pq.d64b5n50K + search_params: + - internalDistanceDtype: float + nprobe: 20 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 30 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 40 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1000 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 2000 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 5000 + refine_ratio: 4 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 20 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 1000 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 2000 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 5000 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 20 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 30 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 40 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1000 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 2000 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 5000 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1000 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 2000 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 5000 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 1000 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 2000 + refine_ratio: 4 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 5000 + refine_ratio: 4 + smemLutDtype: fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/deep-image-96-angular/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: float + search_result_file: result/deep-image-96-angular/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_cagra + build_param: + graph_degree: 32 + intermediate_graph_degree: 48 + file: deep-100M/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - algo: single_cta + itopk: 32 + max_iterations: 0 + search_width: 1 + - algo: single_cta + itopk: 32 + max_iterations: 32 + search_width: 1 + - algo: single_cta + itopk: 64 + max_iterations: 16 + search_width: 4 + - algo: single_cta + itopk: 64 + max_iterations: 64 + search_width: 1 + - algo: single_cta + itopk: 96 + max_iterations: 48 + search_width: 2 + - algo: single_cta + itopk: 128 + max_iterations: 16 + search_width: 8 + - algo: single_cta + itopk: 128 + max_iterations: 64 + search_width: 2 + - algo: single_cta + itopk: 192 + max_iterations: 24 + search_width: 8 + - algo: single_cta + itopk: 192 + max_iterations: 96 + search_width: 2 + - algo: single_cta + itopk: 256 + max_iterations: 32 + search_width: 8 + - algo: single_cta + itopk: 384 + max_iterations: 48 + search_width: 8 + - algo: single_cta + itopk: 512 + max_iterations: 64 + search_width: 8 +- algo: raft_cagra + build_param: + graph_degree: 32 + intermediate_graph_degree: 48 + file: deep-100M/raft_cagra/dim32 + name: raft_cagra.dim32.multi_cta + search_params: + - algo: multi_cta + itopk: 32 + max_iterations: 0 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 1 + - algo: multi_cta + itopk: 64 + max_iterations: 16 + search_width: 4 + - algo: multi_cta + itopk: 64 + max_iterations: 64 + search_width: 1 + - algo: multi_cta + itopk: 96 + max_iterations: 48 + search_width: 2 + - algo: multi_cta + itopk: 128 + max_iterations: 16 + search_width: 8 + - algo: multi_cta + itopk: 128 + max_iterations: 64 + search_width: 2 + - algo: multi_cta + itopk: 192 + max_iterations: 24 + search_width: 8 + - algo: multi_cta + itopk: 192 + max_iterations: 96 + search_width: 2 + - algo: multi_cta + itopk: 256 + max_iterations: 32 + search_width: 8 + - algo: multi_cta + itopk: 384 + max_iterations: 48 + search_width: 8 + - algo: multi_cta + itopk: 512 + max_iterations: 64 + search_width: 8 +- algo: raft_cagra + build_param: + graph_degree: 32 + intermediate_graph_degree: 48 + file: deep-100M/raft_cagra/dim32 + name: raft_cagra.dim32.multi_kernel + search_params: + - algo: multi_kernel + itopk: 32 + max_iterations: 0 + search_width: 1 + - algo: multi_kernel + itopk: 32 + max_iterations: 32 + search_width: 1 + - algo: multi_kernel + itopk: 64 + max_iterations: 16 + search_width: 4 + - algo: multi_kernel + itopk: 64 + max_iterations: 64 + search_width: 1 + - algo: multi_kernel + itopk: 96 + max_iterations: 48 + search_width: 2 + - algo: multi_kernel + itopk: 128 + max_iterations: 16 + search_width: 8 + - algo: multi_kernel + itopk: 128 + max_iterations: 64 + search_width: 2 + - algo: multi_kernel + itopk: 192 + max_iterations: 24 + search_width: 8 + - algo: multi_kernel + itopk: 192 + max_iterations: 96 + search_width: 2 + - algo: multi_kernel + itopk: 256 + max_iterations: 32 + search_width: 8 + - algo: multi_kernel + itopk: 384 + max_iterations: 48 + search_width: 8 + - algo: multi_kernel + itopk: 512 + max_iterations: 64 + search_width: 8 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: deep-100M/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + max_iterations: 0 + search_width: 1 + - itopk: 32 + max_iterations: 32 + search_width: 1 + - itopk: 64 + max_iterations: 16 + search_width: 4 + - itopk: 64 + max_iterations: 64 + search_width: 1 + - itopk: 96 + max_iterations: 48 + search_width: 2 + - itopk: 128 + max_iterations: 16 + search_width: 8 + - itopk: 128 + max_iterations: 64 + search_width: 2 + - itopk: 192 + max_iterations: 24 + search_width: 8 + - itopk: 192 + max_iterations: 96 + search_width: 2 + - itopk: 256 + max_iterations: 32 + search_width: 8 + - itopk: 384 + max_iterations: 48 + search_width: 8 + - itopk: 512 + max_iterations: 64 + search_width: 8 +search_basic_param: + batch_size: 10000 + k: 10 diff --git a/python/cuvs_bench/cuvs_bench/config/deep-1B.yaml b/python/cuvs_bench/cuvs_bench/config/deep-1B.yaml new file mode 100644 index 000000000..061677e62 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/deep-1B.yaml @@ -0,0 +1,26 @@ +dataset: + base_file: deep-1B/base.1B.fbin + distance: inner_product + groundtruth_neighbors_file: deep-1B/groundtruth.neighbors.ibin + name: deep-1B + query_file: deep-1B/query.public.10K.fbin +index: +- algo: faiss_gpu_ivf_pq + build_param: + M: 48 + nlist: 50000 + file: deep-1B/faiss_gpu_ivf_pq/M48-nlist50K + name: faiss_gpu_ivf_pq.M48-nlist50K + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 +search_basic_param: + batch_size: 10000 + k: 10 diff --git a/python/cuvs_bench/cuvs_bench/config/deep-image-96-inner.yaml b/python/cuvs_bench/cuvs_bench/config/deep-image-96-inner.yaml new file mode 100644 index 000000000..2ec584eb5 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/deep-image-96-inner.yaml @@ -0,0 +1,712 @@ +dataset: + base_file: deep-image-96-inner/base.fbin + distance: euclidean + groundtruth_neighbors_file: deep-image-96-inner/groundtruth.neighbors.ibin + name: deep-image-96-inner + query_file: deep-image-96-inner/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/deep-image-96-inner/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/deep-image-96-inner/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/deep-image-96-inner/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/deep-image-96-inner/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/deep-image-96-inner/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/deep-image-96-inner/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/deep-image-96-inner/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/deep-image-96-inner/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/deep-image-96-inner/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/deep-image-96-inner/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/deep-image-96-inner/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/deep-image-96-inner/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/deep-image-96-inner/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/deep-image-96-inner/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/deep-image-96-inner/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/deep-image-96-inner/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/deep-image-96-inner/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/deep-image-96-inner/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/deep-image-96-inner/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/deep-image-96-inner/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/deep-image-96-inner/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1024 + smemLutDtype: half + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 5 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: float + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: half + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: half + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: half + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: half + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: half + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: half + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: half + nprobe: 1024 + smemLutDtype: float + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1024 + smemLutDtype: float + search_result_file: result/deep-image-96-inner/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/deep-image-96-inner/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/deep-image-96-inner/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/deep-image-96-inner/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/deep-image-96-inner/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/deep-image-96-inner/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/deep-image-96-inner/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/deep-image-96-inner/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/deep-image-96-inner/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/fashion-mnist-784-euclidean.yaml b/python/cuvs_bench/cuvs_bench/config/fashion-mnist-784-euclidean.yaml new file mode 100644 index 000000000..e92d3badc --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/fashion-mnist-784-euclidean.yaml @@ -0,0 +1,778 @@ +dataset: + base_file: fashion-mnist-784-euclidean/base.fbin + distance: euclidean + groundtruth_neighbors_file: fashion-mnist-784-euclidean/groundtruth.neighbors.ibin + name: fashion-mnist-784-euclidean + query_file: fashion-mnist-784-euclidean/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/fashion-mnist-784-euclidean/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/fashion-mnist-784-euclidean/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/fashion-mnist-784-euclidean/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/fashion-mnist-784-euclidean/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/fashion-mnist-784-euclidean/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/fashion-mnist-784-euclidean/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/fashion-mnist-784-euclidean/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/fashion-mnist-784-euclidean/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/fashion-mnist-784-euclidean/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/fashion-mnist-784-euclidean/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/fashion-mnist-784-euclidean/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/fashion-mnist-784-euclidean/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/fashion-mnist-784-euclidean/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/fashion-mnist-784-euclidean/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/fashion-mnist-784-euclidean/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/fashion-mnist-784-euclidean/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/fashion-mnist-784-euclidean/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/fashion-mnist-784-euclidean/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/fashion-mnist-784-euclidean/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/gist-960-euclidean.yaml b/python/cuvs_bench/cuvs_bench/config/gist-960-euclidean.yaml new file mode 100644 index 000000000..d72dff74d --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/gist-960-euclidean.yaml @@ -0,0 +1,777 @@ +dataset: + base_file: gist-960-euclidean/base.fbin + distance: euclidean + name: gist-960-euclidean + query_file: gist-960-euclidean/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/gist-960-euclidean/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/gist-960-euclidean/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/gist-960-euclidean/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/gist-960-euclidean/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/gist-960-euclidean/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/gist-960-euclidean/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/gist-960-euclidean/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/gist-960-euclidean/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/gist-960-euclidean/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/gist-960-euclidean/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/gist-960-euclidean/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/gist-960-euclidean/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/gist-960-euclidean/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/gist-960-euclidean/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/gist-960-euclidean/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/gist-960-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/gist-960-euclidean/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/gist-960-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/gist-960-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/gist-960-euclidean/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/gist-960-euclidean/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/gist-960-euclidean/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/gist-960-euclidean/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/gist-960-euclidean/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/gist-960-euclidean/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/gist-960-euclidean/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/gist-960-euclidean/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/gist-960-euclidean/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/gist-960-euclidean/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/gist-960-euclidean/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/glove-100-angular.yaml b/python/cuvs_bench/cuvs_bench/config/glove-100-angular.yaml new file mode 100644 index 000000000..dab60ed4c --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/glove-100-angular.yaml @@ -0,0 +1,777 @@ +dataset: + base_file: glove-100-angular/base.fbin + distance: euclidean + name: glove-100-angular + query_file: glove-100-angular/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-angular/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-angular/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-angular/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-angular/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-angular/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-angular/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-angular/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-angular/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/glove-100-angular/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/glove-100-angular/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/glove-100-angular/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/glove-100-angular/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/glove-100-angular/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/glove-100-angular/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/glove-100-angular/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/glove-100-angular/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/glove-100-angular/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/glove-100-angular/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-angular/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/glove-100-angular/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/glove-100-angular/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/glove-100-angular/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-100-angular/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/glove-100-angular/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-angular/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/glove-100-angular/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-angular/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/glove-100-angular/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-100-angular/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/glove-100-angular/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-100-angular/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/glove-100-inner.yaml b/python/cuvs_bench/cuvs_bench/config/glove-100-inner.yaml new file mode 100644 index 000000000..972703735 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/glove-100-inner.yaml @@ -0,0 +1,777 @@ +dataset: + base_file: glove-100-inner/base.fbin + distance: euclidean + name: glove-100-inner + query_file: glove-100-inner/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-inner/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-inner/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-inner/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-inner/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-inner/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-inner/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/glove-100-inner/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-100-inner/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/glove-100-inner/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/glove-100-inner/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: glove-100-inner/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: glove-100-inner/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: glove-100-inner/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: glove-100-inner/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/glove-100-inner/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-inner/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/glove-100-inner/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/glove-100-inner/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/glove-100-inner/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: glove-100-inner/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-inner/faiss_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: glove-100-inner/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/glove-100-inner/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-100-inner/raft_gpu_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/glove-100-inner/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-100-inner/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/glove-100-inner/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-100-inner/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/glove-100-inner/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-100-inner/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/glove-100-inner/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-100-inner/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/glove-100-inner/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-100-inner/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/glove-50-angular.yaml b/python/cuvs_bench/cuvs_bench/config/glove-50-angular.yaml new file mode 100644 index 000000000..d68d1700c --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/glove-50-angular.yaml @@ -0,0 +1,777 @@ +dataset: + base_file: glove-50-angular/base.fbin + distance: euclidean + name: glove-50-angular + query_file: glove-50-angular/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-angular/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-angular/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-angular/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-angular/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-angular/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-angular/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-angular/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-angular/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/glove-50-angular/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/glove-50-angular/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/glove-50-angular/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/glove-50-angular/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/glove-50-angular/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/glove-50-angular/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/glove-50-angular/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/glove-50-angular/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/glove-50-angular/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/glove-50-angular/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-angular/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/glove-50-angular/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/glove-50-angular/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/glove-50-angular/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-50-angular/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/glove-50-angular/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-angular/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/glove-50-angular/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-angular/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/glove-50-angular/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-50-angular/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/glove-50-angular/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-50-angular/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/glove-50-inner.yaml b/python/cuvs_bench/cuvs_bench/config/glove-50-inner.yaml new file mode 100644 index 000000000..379c79796 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/glove-50-inner.yaml @@ -0,0 +1,777 @@ +dataset: + base_file: glove-50-inner/base.fbin + distance: euclidean + name: glove-50-inner + query_file: glove-50-inner/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-inner/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-inner/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-inner/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-inner/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-inner/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-inner/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/glove-50-inner/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/glove-50-inner/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/glove-50-inner/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/glove-50-inner/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/glove-50-inner/faiss_ivf_flat/nlist1024 + name: faiss_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/glove-50-inner/faiss_ivf_flat/nlist2048 + name: faiss_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/glove-50-inner/faiss_ivf_flat/nlist4096 + name: faiss_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/glove-50-inner/faiss_ivf_flat/nlist8192 + name: faiss_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/glove-50-inner/faiss_ivf_flat/nlist16384 + name: faiss_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-inner/faiss_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/glove-50-inner/faiss_ivf_pq/M64-nlist1024 + name: faiss_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/glove-50-inner/faiss_ivf_pq/M64-nlist1024.noprecomp + name: faiss_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/glove-50-inner/faiss_ivf_sq/nlist1024-fp16 + name: faiss_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/glove-50-inner/faiss_ivf_sq/nlist2048-fp16 + name: faiss_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/glove-50-inner/faiss_ivf_sq/nlist4096-fp16 + name: faiss_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/glove-50-inner/faiss_ivf_sq/nlist8192-fp16 + name: faiss_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/glove-50-inner/faiss_ivf_sq/nlist16384-fp16 + name: faiss_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/glove-50-inner/faiss_ivf_sq/nlist1024-int8 + name: faiss_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/glove-50-inner/faiss_ivf_sq/nlist2048-int8 + name: faiss_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/glove-50-inner/faiss_ivf_sq/nlist4096-int8 + name: faiss_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/glove-50-inner/faiss_ivf_sq/nlist8192-int8 + name: faiss_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/glove-50-inner/faiss_ivf_sq/nlist16384-int8 + name: faiss_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-inner/faiss_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/glove-50-inner/faiss_flat/flat + name: faiss_flat + search_params: + - {} + search_result_file: result/glove-50-inner/faiss_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: half + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: fp8 + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/glove-50-inner/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + nprobe: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + nprobe: 1024 + smemLutDtype: float + search_result_file: result/glove-50-inner/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/glove-50-inner/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/glove-50-inner/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/glove-50-inner/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/glove-50-inner/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/glove-50-inner/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-50-inner/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/glove-50-inner/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/glove-50-inner/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/lastfm-65-angular.yaml b/python/cuvs_bench/cuvs_bench/config/lastfm-65-angular.yaml new file mode 100644 index 000000000..f28dc5850 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/lastfm-65-angular.yaml @@ -0,0 +1,777 @@ +dataset: + base_file: lastfm-65-angular/base.fbin + distance: euclidean + name: lastfm-65-angular + query_file: lastfm-65-angular/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/lastfm-65-angular/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/lastfm-65-angular/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/lastfm-65-angular/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/lastfm-65-angular/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/lastfm-65-angular/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/lastfm-65-angular/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/lastfm-65-angular/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/lastfm-65-angular/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/lastfm-65-angular/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/lastfm-65-angular/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/lastfm-65-angular/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/lastfm-65-angular/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/lastfm-65-angular/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/lastfm-65-angular/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/lastfm-65-angular/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/lastfm-65-angular/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/lastfm-65-angular/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/lastfm-65-angular/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/lastfm-65-angular/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/lastfm-65-angular/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/lastfm-65-angular/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/lastfm-65-angular/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/lastfm-65-angular/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/lastfm-65-angular/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/lastfm-65-angular/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/lastfm-65-angular/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/lastfm-65-angular/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/lastfm-65-angular/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/lastfm-65-angular/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/lastfm-65-angular/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/mnist-784-euclidean.yaml b/python/cuvs_bench/cuvs_bench/config/mnist-784-euclidean.yaml new file mode 100644 index 000000000..1ffdd2124 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/mnist-784-euclidean.yaml @@ -0,0 +1,778 @@ +dataset: + base_file: mnist-784-euclidean/base.fbin + distance: euclidean + groundtruth_neighbors_file: mnist-784-euclidean/groundtruth.neighbors.ibin + name: mnist-784-euclidean + query_file: mnist-784-euclidean/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/mnist-784-euclidean/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/mnist-784-euclidean/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/mnist-784-euclidean/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/mnist-784-euclidean/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/mnist-784-euclidean/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/mnist-784-euclidean/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/mnist-784-euclidean/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/mnist-784-euclidean/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/mnist-784-euclidean/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/mnist-784-euclidean/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/mnist-784-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/mnist-784-euclidean/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/mnist-784-euclidean/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/mnist-784-euclidean/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/mnist-784-euclidean/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/mnist-784-euclidean/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/mnist-784-euclidean/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/mnist-784-euclidean/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/mnist-784-euclidean/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/mnist-784-euclidean/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/mnist-784-euclidean/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/mnist-784-euclidean/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/nytimes-256-angular.yaml b/python/cuvs_bench/cuvs_bench/config/nytimes-256-angular.yaml new file mode 100644 index 000000000..e9dcd8317 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/nytimes-256-angular.yaml @@ -0,0 +1,778 @@ +dataset: + base_file: nytimes-256-angular/base.fbin + distance: euclidean + groundtruth_neighbors_file: nytimes-256-angular/groundtruth.neighbors.ibin + name: nytimes-256-angular + query_file: nytimes-256-angular/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-angular/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-angular/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-angular/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-angular/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-angular/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-angular/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-angular/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-angular/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/nytimes-256-angular/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/nytimes-256-angular/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/nytimes-256-angular/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/nytimes-256-angular/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/nytimes-256-angular/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/nytimes-256-angular/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/nytimes-256-angular/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/nytimes-256-angular/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/nytimes-256-angular/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/nytimes-256-angular/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-angular/faiss_gpu_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/nytimes-256-angular/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} + search_result_file: result/nytimes-256-angular/faiss_gpu_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/nytimes-256-angular/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/nytimes-256-angular/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-angular/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/nytimes-256-angular/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-angular/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/nytimes-256-angular/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/nytimes-256-angular/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/nytimes-256-angular/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/nytimes-256-angular/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/nytimes-256-inner.yaml b/python/cuvs_bench/cuvs_bench/config/nytimes-256-inner.yaml new file mode 100644 index 000000000..fa0094e11 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/nytimes-256-inner.yaml @@ -0,0 +1,778 @@ +dataset: + base_file: nytimes-256-inner/base.fbin + distance: euclidean + groundtruth_neighbors_file: nytimes-256-inner/groundtruth.neighbors.ibin + name: nytimes-256-inner + query_file: nytimes-256-inner/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-inner/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-inner/hnswlib/M12 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-inner/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-inner/hnswlib/M16 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-inner/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-inner/hnswlib/M24 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: index/nytimes-256-inner/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 + search_result_file: result/nytimes-256-inner/hnswlib/M36 +- algo: raft_bfknn + build_param: {} + file: index/nytimes-256-inner/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 + search_result_file: result/nytimes-256-inner/raft_bfknn/bfknn +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: index/nytimes-256-inner/faiss_ivf_flat/nlist1024 + name: faiss_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_flat/nlist1024 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: index/nytimes-256-inner/faiss_ivf_flat/nlist2048 + name: faiss_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_flat/nlist2048 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: index/nytimes-256-inner/faiss_ivf_flat/nlist4096 + name: faiss_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_flat/nlist4096 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: index/nytimes-256-inner/faiss_ivf_flat/nlist8192 + name: faiss_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_flat/nlist8192 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: index/nytimes-256-inner/faiss_ivf_flat/nlist16384 + name: faiss_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-inner/faiss_ivf_flat/nlist16384 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: index/nytimes-256-inner/faiss_ivf_pq/M64-nlist1024 + name: faiss_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: index/nytimes-256-inner/faiss_ivf_pq/M64-nlist1024.noprecomp + name: faiss_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_pq/M64-nlist1024 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist1024-fp16 + name: faiss_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist1024-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist2048-fp16 + name: faiss_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist2048-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist4096-fp16 + name: faiss_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist4096-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist8192-fp16 + name: faiss_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist8192-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist16384-fp16 + name: faiss_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist16384-fp16 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist1024-int8 + name: faiss_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist1024-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist2048-int8 + name: faiss_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist2048-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist4096-int8 + name: faiss_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist4096-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist8192-int8 + name: faiss_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist8192-int8 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: index/nytimes-256-inner/faiss_ivf_sq/nlist16384-int8 + name: faiss_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-inner/faiss_ivf_sq/nlist16384-int8 +- algo: faiss_gpu_flat + build_param: {} + file: index/nytimes-256-inner/faiss_flat/flat + name: faiss_flat + search_params: + - {} + search_result_file: result/nytimes-256-inner/faiss_flat/flat +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024 + name: raft_ivf_pq.dimpq128-cluster1024 + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-float-float + name: raft_ivf_pq.dimpq128-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 5 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-float-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-float-half + name: raft_ivf_pq.dimpq128-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq128-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq64-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq64-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 64 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq64-cluster1024-float-half + name: raft_ivf_pq.dimpq64-cluster1024-float-half + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: half + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: half + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq64-cluster1024-float-half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 32 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq32-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq32-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 16 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 + name: raft_ivf_pq.dimpq16-cluster1024-float-fp8 + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: fp8 + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq16-cluster1024-float-fp8 +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 128 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-half-float + name: raft_ivf_pq.dimpq128-cluster1024-half-float + search_params: + - internalDistanceDtype: half + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: half + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq128-cluster1024-half-float +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1024 + pq_dim: 512 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_pq/dimpq512-cluster1024-float-float + name: raft_ivf_pq.dimpq512-cluster1024-float-float + search_params: + - internalDistanceDtype: float + k: 10 + numProbes: 10 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 50 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 100 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 200 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 500 + smemLutDtype: float + - internalDistanceDtype: float + k: 10 + numProbes: 1024 + smemLutDtype: float + search_result_file: result/nytimes-256-inner/raft_ivf_pq/dimpq512-cluster1024-float-float +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: index/nytimes-256-inner/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + search_result_file: result/nytimes-256-inner/raft_ivf_flat/nlist1024 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: index/nytimes-256-inner/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 + search_result_file: result/nytimes-256-inner/raft_ivf_flat/nlist16384 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: index/nytimes-256-inner/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/nytimes-256-inner/raft_cagra/dim32 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: index/nytimes-256-inner/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 + search_result_file: result/nytimes-256-inner/raft_cagra/dim64 +search_basic_param: + batch_size: 5000 + k: 10 + run_count: 3 diff --git a/python/cuvs_bench/cuvs_bench/config/sift-128-euclidean.yaml b/python/cuvs_bench/cuvs_bench/config/sift-128-euclidean.yaml new file mode 100644 index 000000000..2588d8a36 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/sift-128-euclidean.yaml @@ -0,0 +1,562 @@ +dataset: + base_file: sift-128-euclidean/base.fbin + distance: euclidean + groundtruth_neighbors_file: sift-128-euclidean/groundtruth.neighbors.ibin + name: sift-128-euclidean + query_file: sift-128-euclidean/query.fbin +index: +- algo: hnswlib + build_param: + M: 12 + efConstruction: 500 + numThreads: 32 + file: sift-128-euclidean/hnswlib/M12 + name: hnswlib.M12 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 16 + efConstruction: 500 + numThreads: 32 + file: sift-128-euclidean/hnswlib/M16 + name: hnswlib.M16 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 24 + efConstruction: 500 + numThreads: 32 + file: sift-128-euclidean/hnswlib/M24 + name: hnswlib.M24 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: hnswlib + build_param: + M: 36 + efConstruction: 500 + numThreads: 32 + file: sift-128-euclidean/hnswlib/M36 + name: hnswlib.M36 + search_params: + - ef: 10 + - ef: 20 + - ef: 40 + - ef: 60 + - ef: 80 + - ef: 120 + - ef: 200 + - ef: 400 + - ef: 600 + - ef: 800 +- algo: raft_bfknn + build_param: {} + file: sift-128-euclidean/raft_bfknn/bfknn + name: raft_bfknn + search_params: + - probe: 1 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 1024 + file: sift-128-euclidean/faiss_gpu_ivf_flat/nlist1024 + name: faiss_gpu_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 2048 + file: sift-128-euclidean/faiss_gpu_ivf_flat/nlist2048 + name: faiss_gpu_ivf_flat.nlist2048 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 4096 + file: sift-128-euclidean/faiss_gpu_ivf_flat/nlist4096 + name: faiss_gpu_ivf_flat.nlist4096 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 8192 + file: sift-128-euclidean/faiss_gpu_ivf_flat/nlist8192 + name: faiss_gpu_ivf_flat.nlist8192 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_flat + build_param: + nlist: 16384 + file: sift-128-euclidean/faiss_gpu_ivf_flat/nlist16384 + name: faiss_gpu_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: true + file: sift-128-euclidean/faiss_gpu_ivf_pq/M64-nlist1024 + name: faiss_gpu_ivf_pq.M64-nlist1024 + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 1024 + useFloat16: true + usePrecomputed: false + file: sift-128-euclidean/faiss_gpu_ivf_pq/M64-nlist1024.noprecomp + name: faiss_gpu_ivf_pq.M64-nlist1024.noprecomp + search_params: + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: fp16 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist1024-fp16 + name: faiss_gpu_ivf_sq.nlist1024-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: fp16 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist2048-fp16 + name: faiss_gpu_ivf_sq.nlist2048-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: fp16 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist4096-fp16 + name: faiss_gpu_ivf_sq.nlist4096-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: fp16 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist8192-fp16 + name: faiss_gpu_ivf_sq.nlist8192-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: fp16 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist16384-fp16 + name: faiss_gpu_ivf_sq.nlist16384-fp16 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 1024 + quantizer_type: int8 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist1024-int8 + name: faiss_gpu_ivf_sq.nlist1024-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 2048 + quantizer_type: int8 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist2048-int8 + name: faiss_gpu_ivf_sq.nlist2048-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 4096 + quantizer_type: int8 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist4096-int8 + name: faiss_gpu_ivf_sq.nlist4096-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 8192 + quantizer_type: int8 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist8192-int8 + name: faiss_gpu_ivf_sq.nlist8192-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: faiss_gpu_ivf_sq + build_param: + nlist: 16384 + quantizer_type: int8 + file: sift-128-euclidean/faiss_gpu_ivf_sq/nlist16384-int8 + name: faiss_gpu_ivf_sq.nlist16384-int8 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 +- algo: faiss_gpu_flat + build_param: {} + file: sift-128-euclidean/faiss_gpu_flat/flat + name: faiss_gpu_flat + search_params: + - {} +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1000 + pq_bits: 8 + pq_dim: 64 + ratio: 1 + file: sift-128-euclidean/raft_ivf_pq/dimpq64-bitpq8-cluster1K + name: raft_ivf_pq.dimpq64-bitpq8-cluster1K + search_params: + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 20 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1000 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 25 + nlist: 1000 + pq_bits: 6 + pq_dim: 128 + ratio: 1 + file: sift-128-euclidean/raft_ivf_pq/dimpq128-bitpq6-cluster1K + name: raft_ivf_pq.dimpq128-bitpq6-cluster1K + search_params: + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: float + - internalDistanceDtype: float + nprobe: 20 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 30 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 40 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 50 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 100 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 200 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 500 + smemLutDtype: fp8 + - internalDistanceDtype: float + nprobe: 1000 + smemLutDtype: fp8 + - internalDistanceDtype: half + nprobe: 20 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 1000 + smemLutDtype: half +- algo: raft_ivf_flat + build_param: + niter: 25 + nlist: 1024 + ratio: 1 + file: sift-128-euclidean/raft_ivf_flat/nlist1024 + name: raft_ivf_flat.nlist1024 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 +- algo: raft_ivf_flat + build_param: + niter: 20 + nlist: 16384 + ratio: 2 + file: sift-128-euclidean/raft_ivf_flat/nlist16384 + name: raft_ivf_flat.nlist16384 + search_params: + - nprobe: 1 + - nprobe: 5 + - nprobe: 10 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 + - nprobe: 1000 + - nprobe: 2000 +- algo: raft_cagra + build_param: + graph_degree: 32 + file: sift-128-euclidean/raft_cagra/dim32 + name: raft_cagra.dim32 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 +- algo: raft_cagra + build_param: + graph_degree: 64 + file: sift-128-euclidean/raft_cagra/dim64 + name: raft_cagra.dim64 + search_params: + - itopk: 32 + - itopk: 64 + - itopk: 128 +search_basic_param: + batch_size: 5000 + k: 10 diff --git a/python/cuvs_bench/cuvs_bench/config/wiki_all_10M.yaml b/python/cuvs_bench/cuvs_bench/config/wiki_all_10M.yaml new file mode 100644 index 000000000..090247be9 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/wiki_all_10M.yaml @@ -0,0 +1,357 @@ +dataset: + base_file: wiki_all_10M/base.88M.fbin + distance: euclidean + groundtruth_neighbors_file: wiki_all_10M/groundtruth.88M.neighbors.ibin + name: wiki_all_10M + query_file: wiki_all_10M/queries.fbin +index: +- algo: hnswlib + build_param: + M: 16 + efConstruction: 50 + numThreads: 56 + file: wiki_all_10M/hnswlib/M16.ef50 + name: hnswlib.M16.ef50 + search_params: + - ef: 10 + numThreads: 56 + - ef: 20 + numThreads: 56 + - ef: 40 + numThreads: 56 + - ef: 60 + numThreads: 56 + - ef: 80 + numThreads: 56 + - ef: 120 + numThreads: 56 + - ef: 200 + numThreads: 56 + - ef: 400 + numThreads: 56 + - ef: 600 + numThreads: 56 + - ef: 800 + numThreads: 56 +- algo: faiss_gpu_ivf_pq + build_param: + M: 32 + nlist: 16384 + ratio: 2 + file: wiki_all_10M/faiss_ivf_pq/M32-nlist16K_ratio2 + name: faiss_ivf_pq.M32-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 16384 + ratio: 2 + file: wiki_all_10M/faiss_ivf_pq/M64-nlist16K_ratio2 + name: faiss_ivf_pq.M64-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 128 + ratio: 10 + file: wiki_all_10M/raft_ivf_pq/d128-nlist16K + name: raft_ivf_pq.d128-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 1 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 64 + ratio: 10 + file: wiki_all_10M/raft_ivf_pq/d64-nlist16K + name: raft_ivf_pq.d64-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 4 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 32 + ratio: 10 + file: wiki_all_10M/raft_ivf_pq/d32-nlist16K + name: raft_ivf_pq.d32-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 32 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 32 + ratio: 10 + file: wiki_all_10M/raft_ivf_pq/d32-nlist16K + name: raft_ivf_pq.d32X-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 4 + smemLutDtype: half +- algo: raft_cagra + build_param: + graph_degree: 32 + intermediate_graph_degree: 48 + file: wiki_all_10M/raft_cagra/dim32.ibin + name: raft_cagra.dim32.multi_cta + search_params: + - algo: multi_cta + itopk: 32 + max_iterations: 0 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 36 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 40 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 44 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 48 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 16 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 24 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 26 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 2 + - algo: multi_cta + itopk: 64 + max_iterations: 16 + search_width: 4 + - algo: multi_cta + itopk: 64 + max_iterations: 64 + search_width: 1 + - algo: multi_cta + itopk: 96 + max_iterations: 48 + search_width: 2 + - algo: multi_cta + itopk: 128 + max_iterations: 16 + search_width: 8 + - algo: multi_cta + itopk: 128 + max_iterations: 64 + search_width: 2 + - algo: multi_cta + itopk: 192 + max_iterations: 24 + search_width: 8 + - algo: multi_cta + itopk: 192 + max_iterations: 96 + search_width: 2 + - algo: multi_cta + itopk: 256 + max_iterations: 32 + search_width: 8 + - algo: multi_cta + itopk: 384 + max_iterations: 48 + search_width: 8 + - algo: multi_cta + itopk: 512 + max_iterations: 64 + search_width: 8 +search_basic_param: + batch_size: 10000 + k: 10 diff --git a/python/cuvs_bench/cuvs_bench/config/wiki_all_1M.yaml b/python/cuvs_bench/cuvs_bench/config/wiki_all_1M.yaml new file mode 100644 index 000000000..bc5abaca2 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/wiki_all_1M.yaml @@ -0,0 +1,371 @@ +dataset: + base_file: wiki_all_1M/base.1M.fbin + distance: euclidean + groundtruth_neighbors_file: wiki_all_1M/groundtruth.1M.neighbors.ibin + name: wiki_all_1M + query_file: wiki_all_1M/queries.fbin + subset_size: 1000000 +index: +- algo: hnswlib + build_param: + M: 16 + efConstruction: 50 + numThreads: 56 + file: wiki_all_1M/hnswlib/M16.ef50 + name: hnswlib.M16.ef50 + search_params: + - ef: 10 + numThreads: 56 + - ef: 20 + numThreads: 56 + - ef: 40 + numThreads: 56 + - ef: 60 + numThreads: 56 + - ef: 80 + numThreads: 56 + - ef: 120 + numThreads: 56 + - ef: 200 + numThreads: 56 + - ef: 400 + numThreads: 56 + - ef: 600 + numThreads: 56 + - ef: 800 + numThreads: 56 +- algo: faiss_gpu_ivf_pq + build_param: + M: 32 + nlist: 16384 + ratio: 2 + file: wiki_all_1M/faiss_ivf_pq/M32-nlist16K_ratio2 + name: faiss_ivf_pq.M32-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 16384 + ratio: 2 + file: wiki_all_1M/faiss_ivf_pq/M64-nlist16K_ratio2 + name: faiss_ivf_pq.M64-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 128 + ratio: 10 + file: wiki_all_1M/raft_ivf_pq/d128-nlist16K + name: raft_ivf_pq.d128-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 1 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 64 + ratio: 10 + file: wiki_all_1M/raft_ivf_pq/d64-nlist16K + name: raft_ivf_pq.d64-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 4 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 32 + ratio: 10 + file: wiki_all_1M/raft_ivf_pq/d32-nlist16K + name: raft_ivf_pq.d32-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 32 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 32 + ratio: 10 + file: wiki_all_1M/raft_ivf_pq/d32-nlist16K + name: raft_ivf_pq.d32X-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 4 + smemLutDtype: half +- algo: raft_cagra + build_param: + graph_build_algo: NN_DESCENT + graph_degree: 32 + intermediate_graph_degree: 48 + ivf_pq_build_niter: 10 + ivf_pq_build_nlist: 16384 + ivf_pq_build_pq_bits: 8 + ivf_pq_build_pq_dim: 32 + ivf_pq_build_ratio: 10 + ivf_pq_search_internalDistanceDtype: half + ivf_pq_search_nprobe: 30 + ivf_pq_search_refine_ratio: 8 + ivf_pq_search_smemLutDtype: half + nn_descent_intermediate_graph_degree: 72 + nn_descent_max_iterations: 10 + nn_descent_termination_threshold: 0.001 + file: wiki_all_1M/raft_cagra/dim32.ibin + name: raft_cagra.dim32.multi_cta + search_params: + - algo: multi_cta + itopk: 32 + max_iterations: 0 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 36 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 40 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 44 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 48 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 16 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 24 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 26 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 2 + - algo: multi_cta + itopk: 64 + max_iterations: 16 + search_width: 4 + - algo: multi_cta + itopk: 64 + max_iterations: 64 + search_width: 1 + - algo: multi_cta + itopk: 96 + max_iterations: 48 + search_width: 2 + - algo: multi_cta + itopk: 128 + max_iterations: 16 + search_width: 8 + - algo: multi_cta + itopk: 128 + max_iterations: 64 + search_width: 2 + - algo: multi_cta + itopk: 192 + max_iterations: 24 + search_width: 8 + - algo: multi_cta + itopk: 192 + max_iterations: 96 + search_width: 2 + - algo: multi_cta + itopk: 256 + max_iterations: 32 + search_width: 8 + - algo: multi_cta + itopk: 384 + max_iterations: 48 + search_width: 8 + - algo: multi_cta + itopk: 512 + max_iterations: 64 + search_width: 8 +search_basic_param: + batch_size: 10000 + k: 10 diff --git a/python/cuvs_bench/cuvs_bench/config/wiki_all_88M.yaml b/python/cuvs_bench/cuvs_bench/config/wiki_all_88M.yaml new file mode 100644 index 000000000..a06d6de54 --- /dev/null +++ b/python/cuvs_bench/cuvs_bench/config/wiki_all_88M.yaml @@ -0,0 +1,357 @@ +dataset: + base_file: wiki_all_88M/base.88M.fbin + distance: euclidean + groundtruth_neighbors_file: wiki_all_88M/groundtruth.88M.neighbors.ibin + name: wiki_all_88M + query_file: wiki_all_88M/queries.fbin +index: +- algo: hnswlib + build_param: + M: 16 + efConstruction: 50 + numThreads: 56 + file: wiki_all_88M/hnswlib/M16.ef50 + name: hnswlib.M16.ef50 + search_params: + - ef: 10 + numThreads: 56 + - ef: 20 + numThreads: 56 + - ef: 40 + numThreads: 56 + - ef: 60 + numThreads: 56 + - ef: 80 + numThreads: 56 + - ef: 120 + numThreads: 56 + - ef: 200 + numThreads: 56 + - ef: 400 + numThreads: 56 + - ef: 600 + numThreads: 56 + - ef: 800 + numThreads: 56 +- algo: faiss_gpu_ivf_pq + build_param: + M: 32 + nlist: 16384 + ratio: 2 + file: wiki_all_88M/faiss_ivf_pq/M32-nlist16K_ratio2 + name: faiss_ivf_pq.M32-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: faiss_gpu_ivf_pq + build_param: + M: 64 + nlist: 16384 + ratio: 2 + file: wiki_all_88M/faiss_ivf_pq/M64-nlist16K_ratio2 + name: faiss_ivf_pq.M64-nlist16K + search_params: + - nprobe: 10 + - nprobe: 20 + - nprobe: 30 + - nprobe: 40 + - nprobe: 50 + - nprobe: 100 + - nprobe: 200 + - nprobe: 500 +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 128 + ratio: 10 + file: wiki_all_88M/raft_ivf_pq/d128-nlist16K + name: raft_ivf_pq.d128-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 1 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 1 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 64 + ratio: 10 + file: wiki_all_88M/raft_ivf_pq/d64-nlist16K + name: raft_ivf_pq.d64-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 4 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 32 + ratio: 10 + file: wiki_all_88M/raft_ivf_pq/d32-nlist16K + name: raft_ivf_pq.d32-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 32 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 32 + smemLutDtype: half +- algo: raft_ivf_pq + build_param: + niter: 10 + nlist: 16384 + pq_bits: 8 + pq_dim: 32 + ratio: 10 + file: wiki_all_88M/raft_ivf_pq/d32-nlist16K + name: raft_ivf_pq.d32X-nlist16K + search_params: + - internalDistanceDtype: half + nprobe: 20 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 16 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 8 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 30 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 40 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 50 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 100 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 200 + refine_ratio: 4 + smemLutDtype: half + - internalDistanceDtype: half + nprobe: 500 + refine_ratio: 4 + smemLutDtype: half +- algo: raft_cagra + build_param: + graph_degree: 32 + intermediate_graph_degree: 48 + file: wiki_all_88M/raft_cagra/dim32.ibin + name: raft_cagra.dim32.multi_cta + search_params: + - algo: multi_cta + itopk: 32 + max_iterations: 0 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 36 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 40 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 44 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 48 + search_width: 1 + - algo: multi_cta + itopk: 32 + max_iterations: 16 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 24 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 26 + search_width: 2 + - algo: multi_cta + itopk: 32 + max_iterations: 32 + search_width: 2 + - algo: multi_cta + itopk: 64 + max_iterations: 16 + search_width: 4 + - algo: multi_cta + itopk: 64 + max_iterations: 64 + search_width: 1 + - algo: multi_cta + itopk: 96 + max_iterations: 48 + search_width: 2 + - algo: multi_cta + itopk: 128 + max_iterations: 16 + search_width: 8 + - algo: multi_cta + itopk: 128 + max_iterations: 64 + search_width: 2 + - algo: multi_cta + itopk: 192 + max_iterations: 24 + search_width: 8 + - algo: multi_cta + itopk: 192 + max_iterations: 96 + search_width: 2 + - algo: multi_cta + itopk: 256 + max_iterations: 32 + search_width: 8 + - algo: multi_cta + itopk: 384 + max_iterations: 48 + search_width: 8 + - algo: multi_cta + itopk: 512 + max_iterations: 64 + search_width: 8 +search_basic_param: + batch_size: 10000 + k: 10