《Born》附录B:WGSL 算子清单
Born 的 WebGPU 后端包含 53 个内嵌 WGSL compute shader,覆盖 9 个算子类别。
---
逐元素二元运算(workgroup_size=256)
| Shader | 表达式 |
|---|---|
| addShader | result[i] = a[i] + b[i] |
| subShader | result[i] = a[i] - b[i] |
| mulShader | result[i] = a[i] * b[i] |
| divShader | result[i] = a[i] / b[i] |
逐元素一元运算
| Shader | 表达式 |
|---|---|
| negShader | -a[i] |
| expShader | exp(a[i]) |
| logShader | log(a[i]) |
| sqrtShader | sqrt(a[i]) |
| reluShader | max(0.0, a[i]) |
| sigmoidShader | 1.0 / (1.0 + exp(-a[i])) |
| siluShader | a[i] / (1.0 + exp(-a[i])) |
矩阵运算
| Shader | Workgroup | 说明 |
|---|---|---|
| matmulShader | (16,16) | 标准矩阵乘法 |
| batchMatMulShader | (8,8,1) | 批量矩阵乘法 |
卷积与池化
| Shader | Workgroup | 说明 |
|---|---|---|
| conv2dShader | (16,16) | 2D 卷积 |
| maxPool2dShader | (16,16) | 最大池化 |
规约运算
| Shader | 说明 |
|---|---|
| sumShader | 全局求和 |
| globalSumShader | 跨 workgroup 求和 |
| sumDimShader | 沿轴求和 |
| argmaxShader | 沿轴取最大值索引 |
比较与逻辑
| Shader | 说明 |
|---|---|
| greaterShader, lowerShader | >, < |
| equalShader, notEqualShader | ==, != |
| andShader, orShader, notShader | 逻辑运算 |
Flash Attention
| Shader | Workgroup | 说明 |
|---|---|---|
| flashAttentionShader | (8,8,1) | 分块 Flash Attention |
总计:53 个 shader
📘 《Born》连载技术书,附录 B/4。
💬 讨论回复 (0)
推荐
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens