昇腾社区首页
中文
注册

AscendIndexIVFSPConfig

AscendIndexIVFSP需要使用对应的AscendIndexIVFSPConfig执行对应资源的初始化。

公共参数

参数名

数据类型

参数说明

handleBatch

int

检索时每次下发计算的候选桶数量,默认值为“64”

nprobe

int

检索时总的候选桶数量,默认值为“64”

searchListSize

int

检索时每次下发计算的每个桶的最大样本数量,默认值为“32768”

若桶太大,程序会自动根据“searchListSize”将桶拆成多次算子下发计算距离。

接口说明

API定义

inline AscendIndexIVFSPConfig();

功能描述

默认构造函数,默认devices为{0},使用第0个昇腾AI处理器进行计算,默认resources为128MB。

输入

输出

返回值

约束说明

API定义

inline explicit AscendIndexIVFSPConfig(std::initializer_list<int> devices, int64_t resources = IVF_SP_DEFAULT_MEM, uint32_t blockSize = DEFAULT_BLOCK_SIZE);

功能描述

AscendIndexIVFSPConfig构造函数,生成AscendIndexIVFSPConfig,指定Device侧设备ID和资源池大小。

输入

std::initializer_list<int> devices:Device侧设备ID。

int64_t resources:设备侧预置的内存池大小,单位为Byte,计算过程中存储中间结果的内存空间,用于避免计算过程中动态申请内存造成性能波动。默认参数为头文件中的“IVF_SP_DEFAULT_MEM”。该参数通过底库大小和search的batch数共同确定,在底库大于或等于1000万且batch数大于或等于16时建议设置1024MB。

uint32_t blockSize:预置的内存块大小,单位为Byte。默认参数为头文件中的“DEFAULT_BLOCK_SIZE”

输出

返回值

约束说明

  • “devices”需要为合法有效不重复的设备ID,当前仅支持1个NPU设备。
  • “resources”配置的值不超过4 * 1024MB(4 * 1024 * 1024 * 1024字节)。

API定义

inline explicit AscendIndexIVFSPConfig(std::vector<int> devices, int64_t resources = IVF_SP_DEFAULT_MEM, uint32_t blockSize = DEFAULT_BLOCK_SIZE);

功能描述

AscendIndexIVFSPConfig构造函数,生成AscendIndexIVFSPConfig,指定Device侧设备ID和资源池大小。

输入

std::vector<int> devices:Device侧设备ID。

int64_t resources:设备侧预置的内存池大小,单位为Byte,计算过程中存储中间结果的内存空间,用于避免计算过程中动态申请内存造成性能波动。默认参数为头文件中的“IVF_SP_DEFAULT_MEM”。该参数通过底库大小和search的batch数共同确定,在底库大于或等于1000万且batch数大于或等于16时建议设置1024MB。

uint32_t blockSize:预置的内存块大小,单位为Byte。默认参数为头文件中的“DEFAULT_BLOCK_SIZE”

输出

返回值

约束说明

  • “devices”需要为合法有效不重复的设备ID,当前仅支持1个NPU设备。
  • “resources”配置的值不超过4 * 1024MB(4 * 1024 * 1024 * 1024字节)。