算子功能:完成一个输入为伪量化场景的矩阵乘计算,并可以实现对于输出的量化计算。相较于aclnnWeightQuantBatchMatmulV2接口,此接口变化点为:
新增innerPrecise参数,用于支持高精度或者高性能计算模式选择。A16W4 per_group场景在batchSize<=16的场景下可设置为1, 提升性能。
计算公式:
公式中的为伪量化场景的输入,其反量化公式为
当用户配置quantScaleOptional输入时,会对输出进行量化处理, 其量化公式为
当用户配置quantScaleOptional输入为nullptr, 则直接输出:
每个算子分为,必须先调用“aclnnWeightQuantBatchMatmulV3GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnWeightQuantBatchMatmulV3”接口执行计算。
参数说明
[object Object]Atlas 350 加速卡:
- 上表数据类型列中的角标“1”代表该系列不支持的数据类型。
[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
- 上表数据类型列中的角标“2”代表该系列不支持的数据类型。
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
[object Object][object Object]
[object Object]确定性说明:默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
公共约束
- 当weight数据格式为FRACTAL_NZ且数据类型为INT4/INT32时,或者当weight数据格式为ND且数据类型为INT32时,仅在INT4Pack场景支持,需要配合aclnnConvertWeightToINT4Pack接口完成从INT32到INT4Pack的转换,以及从ND到FRACTAL_NZ的转换,[object Object]详情可参考[object Object],若数据类型为INT4,则weight的内轴应为偶数。
- 对于不同伪量化算法模式,weight的数据格式为FRACTAL_NZ仅在如下场景下支持:
- per_channel模式: weight的数据类型为INT8,y的数据类型为非INT8。 weight的数据类型为INT4/INT32,weight转置,y的数据类型为非INT8。
- per_group模式:weight的数据类型为INT4/INT32,weight非转置,x非转置,antiquantGroupSize为64或128,k为antiquantGroupSize对齐,n为64对齐,y的数据类型为非INT8。
性能优化建议
- per_channel模式:为提高性能,推荐使用transpose后的weight输入。m范围为[65, 96]时,推荐使用数据类型为UINT64/INT64的antiquantScale。
- per_group模式:在A16W4,batchSize<=16的场景下可设置innerPrecise参数为1,并且weight数据格式设为FRACTAL_NZ,来提升性能,但会存在一定的精度下降。[object Object]
[object Object][object Object]
[object Object]确定性说明:默认确定性实现。
公共约束
[object Object]和[object Object]矩阵m、k、n大小在[1, 2^31-1]范围内。[object Object]的Reduce维度k需要与[object Object]的Reduce维度k大小相等。- 支持的量化模式:pertensor、perchannel、pergroup和mx。
[object Object]不支持转置,因此不支持,weight仅转置场景支持非连续的Tensor;antiquantScale、antiquantOffsetOptional非连续Tensor仅支持转置场景并且连续性要求和weight保持一致。[object Object]不同量化模式支持的shape:[object Object]和[object Object]为预留参数,暂未使用,固定传入空指针。
[object Object][object Object]
[object Object]- 输入和输出数据类型组合要求
[object Object]undefined
[object Object][object Object][object Object]
[object Object]- 输入和输出数据类型组合要求
[object Object]undefined
[object Object][object Object]
性能优化建议
[object Object]
[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、Atlas 350 加速卡: A16W8调用示例。
[object Object]Atlas 350 加速卡: A16MxFp4调用示例。
[object Object]