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

aclnnQuantMatmul

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

产品支持情况

[object Object]undefined

功能说明

  • 算子功能:完成量化的矩阵乘计算,最小支持维度为2维,最大支持输入维度为3维。

    相似接口有aclnnMm(仅支持2维Tensor作为输入的矩阵乘)和aclnnBatchMatMul(仅支持三维的矩阵乘,其中第一维是Batch维度)。

  • 计算公式:

out=(x1@x2+bias)deqScaleout = (x1@x2 + bias) * deqScale

函数原型

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

[object Object]
[object Object]

aclnnQuantMatmulGetWorkspaceSize

  • 参数说明

    [object Object]
  • 返回值:

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

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

    [object Object]

aclnnQuantMatmul

  • 参数说明:

    [object Object]
  • 返回值:

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

约束说明

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

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

  • 输入x1,x2,bias可以直接转为aclnnQuantMatmulV4接口中的x1,x2,bias。
  • 输入deqScale为FLOAT型,将这个FLOAT数构造成shape为(1,)的FLOAT型aclTensor(参考中的CreateAclTensor), 再利用aclnnTransQuantParamV2转为shape为(1,)的uint64_t的aclTensor(参考),记为scale,对标aclnnQuantMatmulV4接口中的scale。
  • aclnnQuantMatmulV4接口中的可选输入offset/pertokenScaleOptional设置为nullptr,transposeX1和transposeX2均设置为false。
  • 接口参数设置为[object Object]

调用示例

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

[object Object]