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

aclnnDequantSwigluQuant

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:在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的后半部分。

函数原型

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

[object Object]
[object Object]

aclnnDequantSwigluQuantGetWorkspaceSize

  • 参数说明:

    [object Object]
    • weightScaleOptional参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持FLOAT,shape支持1维,shape表示为[H],且取值H和x最后一维保持一致。可选参数,支持传空指针。
    • activationScaleOptional参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持FLOAT,shape为[N..., 1],最后一维为1,其余和x保持一致。可选参数,支持传空指针。
    • quantScaleOptional参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持FLOAT、FLOAT16,当quantModeOptional为static时,shape为1维,值为1,shape表示为shape[1];quantModeOptional为dynamic时,shape维数为1维,值为x的最后一维的二分之一,shape表示为shape[H/2]。可选参数,支持传空指针。
    • quantOffsetOptional参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持FLOAT,当quantModeOptional为static时,shape为1维,值为1,shape表示为shape[1]:quantModeOptional为dynamic时,shape维数为1维,值为x的最后一维的二分之一,shape表示为shape[H/2]。可选参数,支持传空指针。
    • groupIndexOptional参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持INT32、INT64,shape支持1维Tensor。可选参数,支持传空指针。
    • quantModeOptional参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:支持“dynamic”和“static"。
    • yOut参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持INT8。
    • scaleOut参数:
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持FLOAT。
  • 返回值:

aclnnStatus:返回状态码,具体参见。 第一段接口会完成入参校验,出现以下场景时报错:

[object Object]

aclnnDequantSwigluQuant

  • 参数说明:
[object Object]
  • 返回值:

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

约束说明

  • 确定性计算:

    • 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。
  • [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]