| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 14 天前 | ||
| 15 天前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 1 个月前 |
RmsNormDynamicQuant
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | × |
| Kirin 9030 处理器系列产品 | × |
功能说明
-
算子功能:RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicQuant算子则是为输入张量进行对称动态量化的算子。RmsNormDynamicQuant算子将RmsNorm归一化和DynamicQuant动态量化融合起来,减少搬入搬出操作。
-
计算公式:
y=RmsNorm(x)=xRms(x)⋅gamma+beta, where Rms(x)=1n∑i=1nxi2+epsilony = \operatorname{RmsNorm}(x)=\frac{x}{\operatorname{Rms}(\mathbf{x})}\cdot gamma + beta, \quad \text { where } \operatorname{Rms}(\mathbf{x})=\sqrt{\frac{1}{n} \sum_{i=1}^n x_i^2+epsilon}
- 若smooth_scales不输入,则直接对rmsnorm输出做量化:
scaleOut=row_max(abs(y))/max_val scaleOut=row\_max(abs(y))/max\_val
yOut=round(y/scaleOut) yOut=round(y/scaleOut)
- 若输入smooth_scales,则先做smooth缩放再量化:
input=y⋅smooth_scales input = y\cdot smooth\_scales
scaleOut=row_max(abs(input))/max_val scaleOut=row\_max(abs(input))/max\_val
yOut=round(input/scaleOut) yOut=round(input/scaleOut)
其中row_max代表每行求最大值。max_val在INT8时为127。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示标准化过程中的源数据张量。公式中的x。 | FLOAT16、BFLOAT16 | ND |
| gamma | 输入 | 表示标准化过程中的权重张量,公式中的gamma。shape需要与x最后一维一致。 | FLOAT16、BFLOAT16 | ND |
| smooth_scales | 可选输入 | 表示量化过程中使用的smoothScale张量,公式中的smooth_scales。 | FLOAT16、BFLOAT16 | ND |
| beta | 可选输入 | 表示标准化过程中的偏置项,公式中的beta。shape和dtype需要与gamma一致。 | FLOAT16、BFLOAT16 | ND |
| epsilon | 可选属性 |
|
FLOAT32 | - |
| dst_type | 可选属性 |
|
INT | - |
| y | 输出 | 表示量化输出Tensor,公式中的yOut。shape与x一致。 | INT8 | ND |
| scale | 输出 | 量化的scale输出,公式中的scaleOut。shape为x去掉最后一维后的shape。 | FLOAT32 | ND |
约束说明
-
输入
x的最后一维必须小于等于8192。 -
输入
x的每一行不能全为零(否则归一化后仍全为零,量化 scale 为 0 导致除法异常)。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_rms_norm_dynamic_quant | 通过aclnnRmsNormDynamicQuant接口方式调用RmsNormDynamicQuant算子。 |
| 图模式 | - | 通过算子IR构图方式调用RmsNormDynamicQuant算子。 |