| enable chromium_experimental_subgroup_matrix, subgroups; |
| |
| @group(0) @binding(0) var<storage, read_write> s_var : array<f32>; |
| |
| override o : u32 = 1024; |
| |
| var<workgroup> wg_var : array<f32, o>; |
| |
| @compute @workgroup_size(32) |
| fn main() { |
| let m = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>, row_major>(&(s_var), 0, 8); |
| subgroupMatrixStore<row_major>(&(wg_var), 0, m, 8); |
| workgroupBarrier(); |
| let m2 = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>, col_major>(&(wg_var), 0, 8); |
| subgroupMatrixStore<col_major>(&(s_var), 0, m2, 8); |
| } |