Gaussian Error Gated Linear Unit
2026/6/6大约 1 分钟
Gaussian Error Gated Linear Unit
题目描述
编写一个 GPU 程序,对一维输入向量实现 GEGLU(Gaussian Error Gated Linear Unit)激活函数的前向传播。输入张量形状为 ,元素类型为 float32。
GEGLU 的定义如下:
将输入 从中间分成两半 和 。对后半部分计算 GELU:
GEGLU 输出为:
输出张量的长度为 。
实现要求
- 不允许使用外部库。
solve函数签名必须保持不变。- 最终结果必须存储在
output张量中。
示例
示例 1
Input: [1.0, 1.0] (N=2)
Output: [0.8413447]示例 2
Input: [2.0, -1.0, 1.0, 0.5] (N=4)
Output: [1.6826895, -0.3457312]约束条件
- , 为偶数。
- 输入值 。
- 性能测试在 的规模下进行。
解题思路
GEGLU 是 GLU 家族中使用 GELU 作为门控函数的变体。erf 函数不存在直接的 GPU 硬件指令,需要通过多项式逼近或查表实现。通常使用 erff() 内置函数,但需要注意其在某些 GPU 架构上的精度-性能权衡。欢迎在 GitHub Discussions 分享你的解法。