Swish-Gated Linear Unit
2026/3/9小于 1 分钟
Swish-Gated Linear Unit
题面
Implement the Swish-Gated Linear Unit (SWiGLU) activation function forward pass for 1D input vectors. Given an input tensor of shape [N] where N is the number of elements, compute the output using the elementwise formula. The input and output tensor must be of type float32.
SWiGLU is defined as:
- Split input 𝑥 into two halves: 𝑥₁ and 𝑥₂
- Compute SiLU on the first half: SiLU(𝑥₁) = 𝑥₁ ⋅ σ(𝑥₁), σ(𝑥) = 1 / (1 + e^{-𝑥})
- Compute the SWiGLU output: SWiGLU(𝑥₁, 𝑥₂) = SiLU(𝑥₁) ⋅ 𝑥₂
Implementation Requirements
- Use only native features (external libraries are not permitted)
- The solve function signature must remain unchanged
- The final result must be stored in the output tensor
Examples
Example 1:
Input: [1.0, 2.0, 3.0, 4.0] (N=4)
Output: [2.1931758, 7.0463767]Example 2:
Input: [0.5, 1.0] (N=2)
Output: [0.31122968]Constraints
- 1 ≤ N ≤ 100,000
- N is an even number
- -100.0 ≤ input values ≤ 100.0
- Performance is measured with N = 100,000