| // elementwise_mul.wgsl — a[i] = a[i] * b[i], in-place. | |
| // Used in Mamba mixer for gate: gated = hidden_y * silu(gate). | |
| struct Params { n: u32, } | |
| var<storage, read_write> a_buf: array<f32>; | |
| var<storage, read> b_buf: array<f32>; | |
| var<uniform> params: Params; | |
| fn main( gid: vec3<u32>) { | |
| let i = gid.x; | |
| if (i >= params.n) { return; } | |
| a_buf[i] = a_buf[i] * b_buf[i]; | |
| } | |