文件最后提交记录最后更新时间
4 个月前
5 个月前
5 个月前
8 个月前
8 个月前
4 个月前
README

MatMulV2CompressDequant

产品支持情况

产品 是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×

功能说明

  • 算子功能:进行矩阵乘计算时,可先通过msModelSlim工具对右矩阵进行无损压缩,减少内存占用,然后通过本接口完成无损解压缩、矩阵乘和反量化计算。

  • 计算公式

    x2_unzip = unzip(x2, compressIndex, compressInfo)
    result = (x1 @ x2_unzip + bias) * deqScale
    

    其中x2表示右矩阵经过msModelSlim工具压缩后的一维数据,x2_unzip是接口内部进行无损解压缩后的数据(与原始右矩阵数据一致)。

参数说明约束说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x1 输入张量 矩阵乘的左输入,2维张量。 INT8 ND
x2 输入张量 压缩后的矩阵乘右输入,1维张量。 INT8 ND
compressIndex 输入张量 矩阵乘右输入的压缩索引表,1维张量。 INT8 ND
bias 输入张量 偏置项,支持空指针传入。 INT32 ND
deqScale 输入张量 反量化参数,数据类型为UINT64。 UINT64 ND
offsetW 输入张量 矩阵乘右输入的偏移量,当前仅支持空指针传入。 INT8 ND
offsetX 输入属性 矩阵乘左输入的偏移量,当前仅支持0。 INT32 -
compressInfo 输入数组 压缩数据相关信息,包括压缩块信息和原始shape等。 INT64 -
out 输出张量 计算结果输出。 FLOAT16 ND
  • x1和x2_unzip的Reduce维度大小必须相等。
  • 所有输入张量不支持非连续的Tensor。
  • deqScale需要将原始float类型参数转换为UINT64数据格式。
  • 当前offsetW仅支持空指针,offsetX仅支持0。

调用说明

调用方式 样例代码 说明
aclnn接口 [test_aclnn_matmul_compress_dequant](./tests/ut/op_host/
op_api/test_aclnn_matmul_compress_dequant.cpp) 通过aclnnMatmulCompressDequant接口方式调用MatmulCompressDequant算子。