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

GetPQDistanceTable接口

API定义

int GetPQDistanceTable(char *vec, const DiskPQParams *params, float *pqDistanceTable);

功能描述

使用填充好PQ数据的params,对vec指向的query数据进行ADC PQ距离计算,并将PQ距离表写入pqDistanceTable指向的缓存区中。

输入

char *vec:指向待计算的query数据的指针。

const DiskPQParams *params:指向填充好PQ参数和训练好的PQ数据的DiskPQParams实例的指针。不能为空指针。

输出

float *pqDistanceTable:接收返回的query与每个chunk内每个centroid距离的指针。

返回值

int:返回值为0时表示流程正常;返回值为-1时表示流程异常,且会将异常日志信息打印到cerr中。

约束说明

  • 用户需保证vec指向的空间大小至少有dim * sizeof(float)字节数。目前仅支持float数据类型,即OpenGauss数据类型中的Vector数据类型。
  • params成员变量填充要求如下:
    • pqTable指向值无要求。
    • offsets必须指向内存大小为(pqChunks + 1) * sizeof(uint32_t)字节数的offsets数据。用户需要保证指向的内存大小符合,否则有段错误风险。
    • tablesTransposed必须指向内存大小为dim * 256 * sizeof(float)字节数的码本数据。用户需要保证指向的内存大小符合,否则有段错误风险。
    • centroids必须指向内存大小为dim * sizeof(float)字节数的centroids数据。用户需要保证指向的内存大小符合,否则有段错误风险。
  • 用户需保证pqDistanceTable指向的空间大小至少有pqChunks * 256 * sizeof(float)字节数。