ActivationOperation

功能

激活处理, 支持多种激活函数。

图1 ActivationOperation

约束

激活函数输入输出数据类型请参考表1进行配置。

表1 ActivationOperation激活函数数据类型对应表

激活类型

数据类型

RELU

float/bfloat16

GELU

float/float16/bfloat16

FAST_GELU

float16/bfloat16

SWISH

float16/bfloat16

LOG

float/float16/bfloat16

ACTIVATION_SWIGLU_FORWARD

float/float16/bfloat16

ACTIVATION_SWIGLU_BACKWARD

float/float16/bfloat16

定义

struct ActivationParam {
    ActivationType activationType;
    float scale = 1.0f; // for Swish
    int32_t dim = -1;   // for Swiglu
};

成员

成员名称

描述

activationType

激活函数类型,ActivationType类型枚举值。

scale

SWISH激活函数的参数。

dim

SWIGLU激活函数的参数。

输入

参数

维度

数据类型

格式

描述

x

[-1,…,-1]

-1表示当前维度的大小没有约束。

float16/float/bf16

ND

数据类型依据“activationType”的激活类型决定。

“activationType”为ACTIVATION_LOG,要求大于0。

“activationType”为ACTIVATION_SWIGLU_FORWARD时:若为Atlas 推理系列产品(配置Ascend 310P AI处理器),最后一维需为32的倍数,且不支持数据类型为BF16。

“activationType”为ACTIVATION_SWIGLU_BACKWARD时,不支持Atlas 推理系列产品(配置Ascend 310P AI处理器)

输出

参数

维度

数据类型

格式

描述

output

[-1,…,-1]

-1表示当前维度的大小没有约束。

float16/float/bf16

ND

输出和输入维度/类型/格式相同。