name: faiss_gpu_ivf_pq
constraints:
  build: raft-ann-bench.constraints.faiss_gpu_ivf_pq_build_constraints
  search: raft-ann-bench.constraints.faiss_gpu_ivf_pq_search_constraints
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]