Swish-Gated Linear Unit

109 字
1 分钟
Swish-Gated Linear Unit

题面#

答案#

#include <cuda_runtime.h>
__global__ void swiglu_kernel(const float* input, float* output, int halfN) {
int idx = blockDim.x * blockIdx.x + threadIdx.x;
int half = N / 2;
if (idx >= N) return;
float x1 = input[idx];
float x2 = input[idx + half];
float sigma = 1.0 / (1.0 + exp(-x1))
float silu = x1 * sigma;
float swiglu = silu * x2;
}
// input, output are device pointers
extern "C" void solve(const float* input, float* output, int N) {
int halfN = N / 2;
int threadsPerBlock = 256;
int blocksPerGrid = (halfN + threadsPerBlock - 1) / threadsPerBlock;
swiglu_kernel<<<blocksPerGrid, threadsPerBlock>>>(input, output, halfN);
cudaDeviceSynchronize();
}
Swish-Gated Linear Unit
https://dongyanzhang.com/posts/leetgpu/swish-gated-linear-unit/
作者
阿东阿言
发布于
2026-07-14
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
阿东阿言
I share my notes | projects | experience here...
公告
欢迎来到阿东阿言的博客
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
25
分类
3
标签
5
总字数
11,186
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
v1.0.0
文章许可
CC BY-NC-SA 4.0