Struct faiss::gpu::ToGpuClonerMultiple
-
struct ToGpuClonerMultiple : public faiss::Cloner, public faiss::gpu::GpuMultipleClonerOptions
Cloner specialized for CPU -> multiple GPUs.
Public Functions
-
ToGpuClonerMultiple(std::vector<GpuResourcesProvider*> &provider, std::vector<int> &devices, const GpuMultipleClonerOptions &options)
-
ToGpuClonerMultiple(const std::vector<ToGpuCloner> &sub_cloners, const GpuMultipleClonerOptions &options)
-
virtual VectorTransform *clone_VectorTransform(const VectorTransform*)
Public Members
-
std::vector<ToGpuCloner> sub_cloners
-
bool shard = false
Whether to shard the index across GPUs, versus replication across GPUs
-
int shard_type = 1
IndexIVF::copy_subset_to subset type.
-
bool common_ivf_quantizer = false
set to true if an IndexIVF is to be dispatched to multiple GPUs with a single common IVF quantizer, ie. only the inverted lists are sharded on the sub-indexes (uses an IndexShardsIVF)
-
IndicesOptions indicesOptions = INDICES_64_BIT
how should indices be stored on index types that support indices (anything but GpuIndexFlat*)?
-
bool useFloat16CoarseQuantizer = false
is the coarse quantizer in float16?
-
bool useFloat16 = false
for GpuIndexIVFFlat, is storage in float16? for GpuIndexIVFPQ, are intermediate calculations in float16?
-
bool usePrecomputed = false
use precomputed tables?
-
long reserveVecs = 0
reserve vectors in the invfiles?
-
bool storeTransposed = false
For GpuIndexFlat, store data in transposed layout?
-
bool verbose = false
Set verbose options on the index.
-
bool use_cuvs = false
use the cuVS implementation
-
bool allowCpuCoarseQuantizer = false
This flag controls the CPU fallback logic for coarse quantizer component of the index. When set to false (default), the cloner will throw an exception for indices not implemented on GPU. When set to true, it will fallback to a CPU implementation.
-
ToGpuClonerMultiple(std::vector<GpuResourcesProvider*> &provider, std::vector<int> &devices, const GpuMultipleClonerOptions &options)