结构体 faiss::gpu::IVFPQSearchCagraConfig

struct IVFPQSearchCagraConfig

公共成员

uint32_t n_probes = 20

要搜索的聚类数量。

cudaDataType_t lut_dtype = CUDA_R_32F

在搜索时动态创建的查找表的数据类型。

可能的值:[CUDA_R_32F, CUDA_R_16F, CUDA_R_8U]

使用低精度类型可以减少搜索时所需的共享内存量,因此即使对于具有较大维度的数据集,也可以使用快速共享内存内核。请注意,选择低精度类型时,召回率会略有下降。

cudaDataType_t internal_distance_dtype = CUDA_R_32F

在搜索时计算的距离/相似度的存储数据类型。

可能的值:[CUDA_R_16F, CUDA_R_32F]

如果搜索时的性能限制器是设备内存访问,选择 FP16 会略微提高性能。

double preferred_shmem_carveout = 1.0

用作共享内存的 SM 统一内存 / L1 缓存的首选比例。

可能的值:[0.0 - 1.0] 作为 sharedMemPerMultiprocessor 的一部分。

人们希望增加 carveout 以确保主搜索内核具有良好的 GPU 占用率,但不要使其过高,以便留下一些内存用作 L1 缓存。请注意,此值仅被解释为提示。 此外,GPU 通常只允许一组固定的缓存配置,因此提供的值会向上舍入到最接近的配置。 有关目标 GPU 架构,请参阅 NVIDIA 调整指南。

请注意,这是一个低级调整参数,如果调整不正确,可能会对搜索性能产生严重的负面影响。