GeluMul【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品×Atlas 推理系列产品×Atlas 训练系列产品×Kirin X90 处理器系列产品√Kirin 9030 处理器系列产品√功能说明接口功能将输入Tensor按照最后一个维度分为左右两个Tensorx1和x2对左边的x1进行GELU计算将计算结果与x2相乘。计算公式给定输入张量input最后一维的长度为2d函数GeluMul进行以下计算将input分割为两部分$$ x_1 \text{input}[..., :d], \quad x_2 \text{input}[..., d:] $$对x1应用GELU激活函数tanh模式公式如下$$ \text{GELU}(x) 0.5 \cdot x \cdot \left( 1 \tanh\left( \sqrt{\frac{2}{\pi}} \cdot \left( x 0.044715 x^3 \right) \right) \right) $$“none”对应的erf模式公式如下$$ \text{GELU}(x) 0.5 \cdot x \left( 1 \text{erf}\left( \frac{x}{\sqrt{2}} \right) \right) $$因此计算$$ x_1 \text{GELU}(x_1) $$最终输出是x1和x2的逐元素乘积$$ \text{out} x_1 \times x_2 $$参数说明参数名输入/输出/属性描述数据类型数据格式input输入公式中的输入input。BFLOAT16、FLOAT16、FLOATNDapproximateOptional可选属性GELU计算的模式只支持“none”和“tanh”分别对应GELU的erf模式和tanh模式输入为空指针时为“none”。STRING-out输出公式中的out。BFLOAT16、FLOAT16、FLOATNDKirin X90/Kirin 9030处理器系列产品不支持BFLOAT16。约束说明典型场景尾轴为16的倍数当尾轴为非32B对齐时建议走小算子拼接逻辑。调用说明调用方式调用样例说明aclnn调用test_aclnn_gelu_mul通过aclnnGeluMul接口方式调用GeluMul算子。图模式调用-通过算子IR构图方式调用GeluMul算子。【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考