昇腾社区首页
中文
注册
开发者
下载

InitWithQuantify接口

API定义

APP_ERROR InitWithQuantify(uint32_t deviceId, uint32_t dim, uint32_t tokenNum, uint64_t resources, const float *scale, AlgorithmType algType = AlgorithmType::FLAT_IP_FP16, uint32_t customAttrLen = 0, uint32_t customAttrBlockSize = 0);

功能描述

底库向量化初始化接口。

输入

uint32_t deviceId:Index使用的设备ID。

uint32_t dim:底库向量的维度。

uint32_t tokenNum:当前时空库Token的最大数量,需要和生成对应的Mask算子Token数量一致。

uint64_t resources:共享内存大小。

const float *scale:底库向量化缩放因子。缩放因子和底库相乘后转化为int8_t类型。

AlgorithmType algType:底层使用的距离比对算法。默认为“AlgorithmType:: FLAT_IP_FP16”,表示FP16Flat(IP距离),目前仅支持AlgorithmType:: FLAT_IP_FP16算法。

uint32_t customAttrLen:自定义属性长度。

uint32_t customAttrBlockSize:自定义属性blocksize的大小。

输出

返回值

APP_ERROR:调用返回状态,具体请参见接口调用返回值参考

约束说明

  • 需要紧跟在构造函数后调用。
  • “deviceId”为有效的设备ID,设置范围为[0, 1024]。
  • “tokenNum”设置范围为(0, 3e5]。
  • “uint64_t resources”合法范围为大于0小于等于4*1024*1024*1024。
  • Scale反量化时需要进行除运算,不能接近0;Scale中因子绝对值大于等于1e-6f。
  • 对于FP16Flat(IP距离)算法,dim ∈ {64, 128, 256, 384, 512, 768, 1024}。
  • 当前只支持FP16Flat(IP距离)算法的非共享模式。
  • 本接口和AddFeatureByIndice配套使用。
  • “customAttrLen”设置范围为[0, 32],默认值为“0”,设置为“0”时表示无自定义属性。
  • “customAttrBlockSize”设置范围为[0, 262144*64],需要为1024*256的整数倍。默认值为“0”,设置为“0”时表示无自定义属性。