鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

krl_create_distance_handle

接口定义

int krl_create_distance_handle(KRLDistanceHandle** kdh, size_t accu_level, size_t blocksize, size_t codes_num, size_t dim, size_t num_base, int metric_type, const uint8_t* codes, size_t codes_size);

接口用途

初始化构建一个KRLDistanceHandle实例,稠密距离计算时使用。

参数说明

参数名称

数据类型

描述

取值范围

kdh

KRLDistanceHandle**

需要被初始化构建的KRLDistanceHandle指针。

限制为非空指针,指向一个空指针。

accu_level

size_t

计算时的量化等级。

[1,3],取值表示不同的量化等级:

  • 1:int8。
  • 2:fp16。
  • 3:fp32。

blocksize

size_t

数据分块大小。

16或32或64。选择最大能除尽底库向量数量的分块。

codes_num

size_t

每个查询向量计算的底库向量数量。

[1,2^30-1]

dim

size_t

向量维度。

[1,65535]

num_base

size_t

单次处理的向量个数。

[1,65535]

metric_type

int

距离度量类型。

[0,1],取值表示不同的距离度量类型:

  • 0:内积距离。
  • 1:欧氏距离。

codes

const uint8_t*

底库向量(float)。

限制长度为codes_size,其中“codes_size”为底库向量codes的长度。

codes_size

size_t

底库向量codes的长度。

num_base * codes_num * dim * 4,其中“num_base”为单次处理的查询向量个数,“codes_num”为每个查询向量计算的底库向量数量,“dim”为向量维度。

返回值

数据类型

说明

int

正常运行时返回0,异常退出返回对应错误码。

  • -1:非法指针。
  • -2:内存分配失败。
  • -3:非法入参。
  • -4:双重释放。
  • -5:不安全内存操作。
  • -6:IO失败。