aclnnWeightQuantBatchMatmulV3
产品支持情况
功能说明
算子功能:完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。相较于aclnnWeightQuantBatchMatmulV2接口,此接口变化点为:
新增innerPrecise参数,用于支持高精度或者高性能计算模式选择。A16W4 per_group场景在batchSize<=16的场景下可设置为1, 提升性能。
计算公式:
公式中的为伪量化场景的输入,其反量化公式为
当用户配置quantScaleOptional输入时,会对输出进行量化处理, 其量化公式为
当用户配置quantScaleOptional输入为nullptr, 则直接输出:
函数原型
每个算子分为,必须先调用“aclnnWeightQuantBatchMatmulV3GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnWeightQuantBatchMatmulV3”接口执行计算。
[object Object]
[object Object]
aclnnWeightQuantBatchMatmulV3GetWorkspaceSize
aclnnWeightQuantBatchMatmulV3
约束说明
确定性说明:
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:aclnnWeightQuantBatchMatmulV3默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
per_channel模式:为提高性能,推荐使用transpose后的weight输入。m范围为[65, 96]时,推荐使用数据类型为UINT64/INT64的antiquantScale。
per_group模式:在A16W4,batchSize<=16的场景下可设置innerPrecise参数为1,并且weight数据格式设为FRACTAL_NZ,来提升性能,但会存在一定的精度下降。
调用示例
[object Object]