开发者
下载
[object Object]

[object Object][object Object]
  • [object Object]Ascend 950PR/Ascend 950DT[object Object]:支持
[object Object][object Object]
  • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:不支持
[object Object][object Object]
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:不支持
[object Object][object Object]
  • [object Object]Atlas 200I/500 A2 推理产品[object Object]:不支持
[object Object][object Object]
  • [object Object]Atlas 推理系列产品[object Object]:不支持
[object Object][object Object]
  • [object Object]Atlas 训练系列产品[object Object]:不支持
[object Object][object Object]
  • 接口功能:RmsNormGrad是用于计算RmsNorm的梯度,即在反向传播过程中计算输入张量的梯度的算子。RmsNormGradQuant算子将RmsNormGrad和Quantize两个算子融合,RmsNormGrad计算完dx后进行quant计算,减少搬入搬出操作。
  • 算子公式:dxi=(dyigi1Rms(x)xiMean(y))1Rms(x), where Mean(y)=1ni=1n(dyigixi1Rms(x))dx_i= (dy_i * g_i - \frac{1}{\operatorname{Rms}(\mathbf{x})} * x_i * \operatorname{Mean}(\mathbf{y})) * \frac{1} {\operatorname{Rms}(\mathbf{x})}, \quad \text { where } \operatorname{Mean}(\mathbf{y}) = \frac{1}{n}\sum_{i=1}^n (dy_i * g_i * x_i * \frac{1}{\operatorname{Rms}(\mathbf{x})})
    • divMode为True时:

      dxi_quant=round((dxi/scales_x)+offset_x)dx_i\_quant=round((dx_i/scales\_x)+offset\_x)
    • divMode为False时:

      dxi_quant=round((dxiscales_x)+offset_x)dx_i\_quant=round((dx_i*scales\_x)+offset\_x) dgi=1Rms(x)xidyidg_i = \frac{1}{\operatorname{Rms}(\mathbf{x})} * x_i * dy_i
[object Object]

每个算子分为,必须先调用[object Object]接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用[object Object]接口执行计算。

[object Object]
[object Object]
[object Object]
  • 参数说明

    [object Object]
  • 返回值

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

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

    [object Object]
[object Object]
  • 参数说明

    [object Object]
  • 返回值

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

[object Object]
  • 各产品支持数据类型说明:

    [object Object]
    • [object Object]Ascend 950PR/Ascend 950DT[object Object]:

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

    • aclnnRmsNormGradQuant默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
[object Object]

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

[object Object]