开发者
资源
[object Object]

[object Object][object Object]undefined
[object Object]
  • 接口功能:在Swish门控线性单元激活函数前后添加dequant和quant操作,实现x的DequantSwigluQuant计算。
  • 计算公式: dequantOut=Dequant(x,weightScaleOptional,activationScaleOptional,biasOptional)dequantOut = Dequant(x, weightScaleOptional, activationScaleOptional, biasOptional) swigluOut=Swiglu(dequantOut)=Swish(A)BswigluOut = Swiglu(dequantOut)=Swish(A)*B out=Quant(swigluOut,quantScaleOptional,quantOffsetOptional)out = Quant(swigluOut, quantScaleOptional, quantOffsetOptional) 其中,A表示dequantOut的前半部分,B表示dequantOut的后半部分。
[object Object]

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

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

    [object Object]
  • 返回值:

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

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

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

    [object Object]
  • 返回值:

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

[object Object]
  • 确定性计算:

    • aclnnDequantSwigluQuant默认确定性实现。
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:

    • x的最后一维需要是2的倍数,且x的维数必须大于1维。
    • 当quantModeOptional为static时,quantScaleOptional和quantOffsetOptional为1维,值为1;quantModeOptional为dynamic时,quantScaleOptional和quantOffsetOptional的维数为1维,值为x的最后一维除以2。
  • Atlas 350 加速卡:

    • 输入x对应activateDim的维度需要是2的倍数,且x的维数必须大于1维。
    • 当输入x的数据类型为INT32时,weightScaleOptional不能为空;当输入x的数据类型不为INT32时,weightScaleOptional不允许输入,传入空指针。
    • 当输入x的数据类型不为INT32时,activationScaleOptional不允许输入,传入空指针。
    • 当输入x的数据类型不为INT32时,biasOptional不允许输入,传入空指针。
    • 输出yOut的尾轴不超过5120.
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:算子支持的输入张量的内存大小有上限,校验公式:weightScaleOptional张量内存大小+biasOptional张量内存大小+quantScaleOptional张量内存大小+quantOffsetOptional张量内存大小 + (activationScaleOptional张量内存大小 + scaleOut张量内存大小)/40 + x张量最后一维H内存大小 * 10 < 192KB。

[object Object]

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

[object Object]