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

aclnnQuantMatmulV2

该接口后续版本会废弃,请使用最新接口,接口迁移方法参考本文档

产品支持情况

[object Object]undefined

功能说明

  • 算子功能:完成量化的矩阵乘计算,最大支持输入维度为3维。相似接口有aclnnMm(仅支持2维Tensor作为输入的矩阵乘)和aclnnBatchMatMul(仅支持三维的矩阵乘,其中第一维是Batch维度)。
  • 计算公式:
out=(x1@x2+bias)deqScaleout = (x1@x2 + bias) * deqScale

函数原型

每个算子分为,必须先调用“aclnnQuantMatmulV2GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnQuantMatmulV2”接口执行计算。

[object Object]
[object Object]

aclnnQuantMatmulV2GetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnQuantMatmulV2

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 确定性说明:
    • [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:aclnnQuantMatmulV2默认确定性实现。

该接口迁移到aclnnQuantMatmulV4接口的方法:

  • 输入x1,x2,bias,adjX1和adjX2可以直接转为aclnnQuantMatmulV4接口中的x1,x2,bias,transposeX1和transposeX2。
  • 输入deqScale为UINT64的aclTensor,数据类型与aclnnQuantMatmulV4接口中的scale一致。aclnnQuantMatmulV2接口的deqScale shape是1维(t,),t = align(n, 16)。aclnnQuantMatmulV4接口中的scale shape是1维(t,),t = 1或n。直接将原始FLOAT型量化参数调用aclnnTransQuantParamV2输出数据类型为UINT64且shape为(n,)的aclTensor(参考),记为scale,对标aclnnQuantMatmulV4接口中的scale。
  • aclnnQuantMatmulV4接口中的可选输入offset/pertokenScaleOptional设置为nullptr。
  • 接口参数设置为[object Object]

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]