torch_npu.contrib.module.LinearA8W8Quant
[object Object]
产品支持情况
功能说明
LinearA8W8Quant是对torch_npu.npu_quant_matmul接口的封装类,完成A8W8量化算子的矩阵乘计算。
函数原型
参数说明
计算参数
- in_features(
[object Object]):matmul计算中k轴的值。 - out_features(
[object Object]):matmul计算中n轴的值。 - bias(
[object Object]):代表是否需要bias计算参数。如果设置成False,则bias不会加入量化matmul的计算。 - offset(
[object Object]):代表是否需要offset计算参数。如果设置成False,则offset不会加入量化matmul的计算。 - pertoken_scale(
[object Object]):代表是否需要pertoken_scale计算参数。如果设置成False,则pertoken_scale不会加入量化matmul的计算。[object Object]Atlas 推理系列产品[object Object]当前不支持pertoken_scale。 - output_dtype(
[object Object]):表示输出Tensor的数据类型。默认值为None,代表输出Tensor数据类型为[object Object]。- [object Object]Atlas 推理系列产品[object Object]:支持输入
[object Object]、[object Object]。 - [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]/[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:支持输入
[object Object]、[object Object]、[object Object]。
- [object Object]Atlas 推理系列产品[object Object]:支持输入
计算输入
x1([object Object]):数据类型支持[object Object]。数据格式支持,shape需要在2-6维范围。
变量说明
weight(
[object Object]):矩阵乘中的weight。数据格式支持[object Object]。数据格式支持,shape为(batch, n, k),shape需要在2-6维范围。- [object Object]Atlas 推理系列产品[object Object]:需要调用torchair.experimental.inference.use_internal_format_weight或torch_npu.npu_format_cast完成weight(batch, n, k)高性能数据排布功能。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]/[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:需要调用torch_npu.npu_format_cast完成weight(batch,n,k)高性能数据排布功能,但不推荐使用该module方式,推荐torch_npu.npu_quant_matmul。
scale(
[object Object]):量化计算的scale。数据格式支持,shape为1维(t,),t=1或n,其中n与[object Object]的n一致。如需传入[object Object]数据类型的scale,需要提前调用torch_npu.npu_trans_quant_param接口来获取[object Object]数据类型的scale。- [object Object]Atlas 推理系列产品[object Object]:数据类型支持
[object Object]、[object Object]。 - [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]/[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:数据类型支持
[object Object]、[object Object]、[object Object]。
- [object Object]Atlas 推理系列产品[object Object]:数据类型支持
offset(
[object Object]):量化计算的offset。可选参数。数据类型支持[object Object],数据格式支持,shape为1维(t,),t=1或n,其中n与[object Object]的n一致。pertoken_scale(
[object Object]):可选参数。量化计算的pertoken。数据类型支持[object Object],数据格式支持,shape为1维(m,),其中m与[object Object]的m一致。目前仅在输出为[object Object]和[object Object]场景下可不为空。[object Object]Atlas 推理系列产品[object Object]当前不支持[object Object]。bias(
[object Object]):可选参数。矩阵乘中的bias。数据格式支持,shape支持1维(n,)或3维(batch, 1, n),n与[object Object]的n一致,同时batch值需要等于x1,weight broadcast后推导出的batch值。当输出为2、4、5、6维情况下,bias shape为1维;当输出为3维情况下,bias shape为1维或3维。- [object Object]Atlas 推理系列产品[object Object]:数据类型支持
[object Object]。 - [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]/[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:数据类型支持
[object Object]、[object Object]、[object Object]、[object Object]。
- [object Object]Atlas 推理系列产品[object Object]:数据类型支持
output_dtype(
[object Object]):可选参数。表示输出Tensor的数据类型。默认值为None,代表输出Tensor数据类型为[object Object]。- [object Object]Atlas 推理系列产品[object Object]:支持输入
[object Object]、[object Object]。 - [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]/[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:支持输入
[object Object]、[object Object]、[object Object]。
- [object Object]Atlas 推理系列产品[object Object]:支持输入
返回值说明
[object Object]
代表量化matmul的计算结果:
- 如果
[object Object]为[object Object],输出的数据类型为[object Object]。 - 如果
[object Object]为[object Object]或者None,输出的数据类型为[object Object]。 - 如果
[object Object]为[object Object],输出的数据类型为[object Object]。
约束说明
该接口支持推理场景下使用。
该接口支持图模式。
[object Object]、[object Object]、[object Object]不能是空。[object Object]与[object Object]最后一维的shape大小不能超过65535。输入参数或变量间支持的数据类型组合情况如下:
表1 [object Object]Atlas 推理系列产品[object Object]
[object Object][object Object]
[object Object]表2 [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]
[object Object][object Object]
[object Object]
调用示例
单算子模式调用
[object Object]图模式调用
[object Object]