struct Vector { data: [[stride(4)]] array; // Stride tells the byte size of each element. u32 = unsigned integer 32-bits = 4 bytes per element. }; [[group(0), binding(0)]] var a: Vector; // Vector A - Input [[group(0), binding(1)]] var b: Vector; // Vector B - Input [[group(0), binding(2)]] var c: Vector; // Vector C - Output [[stage(compute), workgroup_size(1)]] fn main([[builtin(global_invocation_id)]] global_id: vec3) { let idx = global_id.x; c.data[idx] = a.data[idx] * b.data[idx]; }