- 接口功能:完成一个输入为伪量化场景的矩阵乘计算。此接口仅支持矩阵乘的右输入矩阵为FRACTAL_NZ格式。
- 计算公式:
基础计算公式:
其中,为伪量化场景的输入,其反量化公式为
需要对输出进行量化处理时的量化公式:
每个算子分为,必须先调用“aclnnWeightQuantBatchMatmulNzGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnWeightQuantBatchMatmulNz”接口执行计算。
[object Object]
[object Object]
- 确定性说明:aclnnWeightQuantBatchMatmulNz默认确定性实现。
- 支持的量化模式:perchannel、pergroup和mx。
- 输入和输出支持以下数据类型和shape组合:
- Atlas 350 加速卡:
[object Object]undefined
- x的shape均为(m, k),y的shape均为(m, n),biasOptional的shape为null/(1, n)/(n,)。
- weight的数据类型为INT32或FLOAT时,表示紧密排布的INT4或FLOAT4_E2M1,需要满足以下约束:
- weight的数据类型为INT4或FLOAT4_E2M1时,需要满足以下约束:
- weight的数据类型为INT8时,需要满足以下约束:
- 传入本接口的FRACTAL_NZ矩阵的shape为(ceil(n/32), ceil(k/16), 16, 32)。
- k大小在[1, 65535]范围内,n大小在[2, 65535]范围内;
- weight支持转置和非转置,原始ND矩阵的shape为(n, k)或(k, n)。
- m大小在[1, 2^31-1]范围内。
- Atlas 350 加速卡:
x为FLOAT16,weight为FLOAT32调用示例,需要调用
[object Object]接口辅助完成调用:[object Object]x为FLOAT16,weight为INT8调用示例,需要调用
[object Object]接口辅助完成调用:[object Object]