开发者
资源
[object Object]

[object Object][object Object]undefined
[object Object]
  • 接口功能 :LayerNorm算子是大模型常用的归一化操作。LayerNormQuant算子将LayerNorm归一化输出和下游的量化算子融合起来,减少搬入搬出操作。
  • 计算公式:
    • LayerNorm操作:

      y=xE(x)Var(x)+epsilongamma+betay = {{x-E(x)}\over\sqrt {Var(x)+epsilon}} * gamma + beta E(x)=1ni=1nxiE(x) = {\frac{1}{n} \sum_{i=1}^{n} x_i } Var(x)=1ni=1n(xiE(x))2Var(x) = {\frac{1}{n} \sum_{i=1}^{n} (x_i-E(x))^2 }
    • quantMode为0时,量化模式为静态量化,输出scaleOut无实际意义:

      res=y/scale+zeroPointsOptionalres = y / scale + zeroPointsOptional
    • quantMode为1时,量化模式为动态量化:

      tmp=yscaletmp = y * scale scaleOut=row_max(abs(tmp))/dtypeMaxscaleOut = row\_max(abs(tmp))/dtypeMax res=round(y/scaleOut)res = round(y / scaleOut )
[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]
  • 确定性计算:
    • aclnnLayerNormQuant默认确定性实现。
[object Object]

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

[object Object]