昇腾社区首页
中文
注册
开发者
下载

aclnnAddRmsNormQuantV2

产品支持情况

[object Object]undefined

功能描述

  • 接口功能:RmsNorm是大模型常用的标准化操作,相比LayerNorm,其去掉了减去均值的部分。AddRmsNormQuant算子将RmsNorm前的Add算子以及RmsNorm归一化的输出给到1个或2个Quantize算子融合起来,减少搬入搬出操作。AddRmsNormQuantV2算子相较于AddRmsNormQuant在RmsNorm计算过程中增加了偏置项betaOptional参数,即计算公式中的[object Object]

  • 计算公式:

    xi=x1i+x2ix_i={x1}_i+{x2}_i yi=1Rms(x)xigammai+beta, where Rms(x)=1ni=1nxi2+epsilony_i=\frac{1}{\operatorname{Rms}(\mathbf{x})} * x_i * gamma_i + beta, \quad \text { where } \operatorname{Rms}(\mathbf{x})=\sqrt{\frac{1}{n} \sum_{i=1}^n x_i^2+epsilon} rmsNormOuti=1Rms(xi)xigammairmsNormOut_i=\frac{1}{\operatorname{Rms}(x_i)} * x_i * gamma_i
    • divMode为True时:y1Out=round((y/scales1)+zeroPoints1Optional)y1Out=round((y/scales1)+zeroPoints1Optional) y2Out=round((y/scales2)+zeroPoints2Optional)y2Out=round((y/scales2)+zeroPoints2Optional)
    • divMode为False时:y1Out=round((yscales1)+zeroPoints1Optional)y1Out=round((y*scales1)+zeroPoints1Optional) y2Out=round((yscales2)+zeroPoints2Optional)y2Out=round((y*scales2)+zeroPoints2Optional)

函数原型

每个算子分为,必须先调用[object Object]接口获取入参并根据计算流程所需workspace大小,再调用[object Object]接口执行计算。

[object Object]
[object Object]

aclnnAddRmsNormQuantV2GetWorkspaceSize

  • 参数说明

    [object Object]
    • [object Object]Atlas 推理系列产品[object Object]:参数[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]的数据类型不支持BFLOAT16。
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnAddRmsNormQuantV2

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码。(具体参见

约束说明

  • [object Object]Atlas 推理系列产品[object Object]:[object Object][object Object]需要norm的维度数据个数不能小于32。[object Object][object Object][object Object][object Object][object Object][object Object]的数据个数不能小于32。

  • 输入gamma、scales1、scales2Optional、zeroPoints1Optional、zeroPoints2Optional、betaOptional、divMode、y1Out、y2Out、xOut、rmsNormOut支持的场景和组合如下所示:

    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:

      [object Object]undefined
    • [object Object]Atlas 推理系列产品[object Object]:

      [object Object]undefined
  • 边界值场景说明:

    • [object Object]Atlas 推理系列产品[object Object]:输入不支持包含inf和NaN。
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:当输入是inf时,输出为inf。当输入是NaN时,输出为NaN。
  • 维度的边界说明:

    参数[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]的shape中每一维大小都不大于INT32的最大值2147483647。

  • 数据格式说明:

    所有输入输出Tensor的数据格式推荐使用ND格式,其他数据格式会由框架默认转换成ND格式进行处理。

  • 各产品型号支持数据类型说明:

    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:

      [object Object]undefined
    • [object Object]Atlas 推理系列产品[object Object]:

      [object Object]undefined
  • 确定性计算:

    • aclnnAddRmsNormQuantV2默认确定性实现。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]