文件最后提交记录最后更新时间
15 天前
6 个月前
2 个月前
15 天前
15 天前
7 个月前
1 个月前
README

InplaceAddLayerNorm

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT ×
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品
Atlas 训练系列产品 ×
Kirin X90 处理器系列产品
Kirin 9030 处理器系列产品

功能说明

  • 算子功能:是一种结合了原位加法和层归一化的算法。输出参数x1(对应公式中的y)、x2(对应公式中的x)复用了输入参数x1x2输入地址,实现InplaceAddLayerNorm功能。

  • 计算公式:

    x=x1+x2+biasOptionalx = x1 + x2 + biasOptional

    rstd=1Var(x)+epsrstd = {{1}\over\sqrt {Var(x)+eps}}

    y=(x−xˉ)∗rstd∗γ+βy = (x-\bar{x}) * rstd * \gamma + \beta

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x1 输入 表示AddLayerNorm中加法计算的输入,对应公式中的`x1`。 FLOAT32、FLOAT16、BFLOAT16 ND
x2 输入 表示AddLayerNorm中加法计算的输入,对应公式中的`x2`。 FLOAT32、FLOAT16、BFLOAT16 ND
gamma 输入 表示层归一化中的`gamma`参数,对应公式中的`γ`。 FLOAT32、FLOAT16、BFLOAT16 ND
beta 输入 表示层归一化中的`beta`参数,对应公式中的`β`。 FLOAT32、FLOAT16、BFLOAT16 ND
bias 可选输入 表示AddLayerNorm中加法计算的输入,对应公式中的`biasOptional`。 FLOAT32、FLOAT16、BFLOAT16 ND
epsilon 可选属性
  • 添加到分母中的值,以确保数值稳定,对应公式中的eps。
  • 默认值为1e-5。
FLOAT32 -
additional_output 可选属性
  • 表示是否开启x=x1+x2+biasOptional的输出。
  • 默认值为false。
BOOL -
x1 输出 表示LayerNorm的结果输出,对应公式中的`y`。 FLOAT32、FLOAT16、BFLOAT16 ND
mean 输出 输出LayerNorm计算过程中(x1 + x2 + biasOptional)的结果的均值,对应公式中的x的平均值。 FLOAT32 ND
rstd 输出 输出LayerNorm计算过程中`rstd`的结果,对应公式中的`rstd`。 FLOAT32 ND
x2 输出 表示LayerNorm的结果输出,对应公式中的`x`。 FLOAT32、FLOAT16、BFLOAT16 ND
  • Atlas 推理系列产品、Atlas 训练系列产品:

    • 所有的输入参数和输出参数x1x2的数据类型不支持BFLOAT16。
    • x1、x2、beta、gamma、bias五个输入的尾轴长度必须大于等于32Bytes。
  • Kirin X90/Kirin 9030处理器系列产品:所有输入、输出的数据类型不支持BFLOAT16。

约束说明

  • 是否支持空tensor:不支持空进空出。
  • 是否支持非连续tensor:输入输出不支持非连续。

调用说明

调用方式 样例代码 说明
图模式 test_geir_inplace_add_layer_norm 通过算子IR构图方式调用InplaceAddLayerNorm算子。