结构体 faiss::gpu::ToGpuClonerMultiple
-
struct ToGpuClonerMultiple : public faiss::Cloner, public faiss::gpu::GpuMultipleClonerOptions
专门用于 CPU -> 多个 GPU 的 Cloner。
公共函数
-
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*)
公共成员
-
std::vector<ToGpuCloner> sub_cloners
-
bool shard = false
是否将索引分片到 GPU 上,而不是在 GPU 上复制
-
int shard_type = 1
IndexIVF::copy_subset_to 子集类型。
-
bool common_ivf_quantizer = false
如果 IndexIVF 将被分发到多个 GPU,且使用单个通用的 IVF 量化器,则设置为 true,即只有倒排列表在子索引上分片(使用 IndexShardsIVF)。
-
IndicesOptions indicesOptions = INDICES_64_BIT
索引应该如何在支持索引的索引类型上存储(除了 GpuIndexFlat* 之外的任何类型)?
-
bool useFloat16CoarseQuantizer = false
粗量化器是否使用 float16?
-
bool useFloat16 = false
对于 GpuIndexIVFFlat,存储是否使用 float16? 对于 GpuIndexIVFPQ,中间计算是否使用 float16?
-
bool usePrecomputed = false
使用预计算表?
-
long reserveVecs = 0
在 invfile 中保留向量?
-
bool storeTransposed = false
对于 GpuIndexFlat,是否以转置布局存储数据?
-
bool verbose = false
在索引上设置 verbose 选项。
-
bool use_cuvs = false
使用 cuVS 实现
-
bool allowCpuCoarseQuantizer = false
此标志控制索引的粗量化器组件的 CPU 回退逻辑。 当设置为 false(默认)时,克隆器将为未在 GPU 上实现的索引抛出异常。 当设置为 true 时,它将回退到 CPU 实现。
-
ToGpuClonerMultiple(std::vector<GpuResourcesProvider*> &provider, std::vector<int> &devices, const GpuMultipleClonerOptions &options)