|
|
| const arcface = (() => { |
| const getTensorBuffer = (safetensorBuffer, tensorMetadata) => { |
| return safetensorBuffer.subarray(...tensorMetadata.data_offsets); |
| }; |
|
|
| const getTensorMetadata = (safetensorBuffer) => { |
| const metadataLength = Number(new DataView(safetensorBuffer.buffer).getBigUint64(0, true)); |
| const metadata = JSON.parse(new TextDecoder("utf8").decode(safetensorBuffer.subarray(8, 8 + metadataLength))); |
| return Object.fromEntries(Object.entries(metadata).filter(([k, v]) => k !== "__metadata__").map(([k, v]) => [k, {...v, data_offsets: v.data_offsets.map(x => 8 + metadataLength + x)}])); |
| }; |
|
|
| const createEmptyBuf = (device, size) => { |
| return device.createBuffer({size, usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST }); |
| }; |
|
|
| const createUniformBuf = (device, size) => { |
| return device.createBuffer({size, usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST}) |
| } |
|
|
| const createInfinityUniformBuf = (device) => { |
| const size = 4; |
| const buf = device.createBuffer({ |
| mappedAtCreation: true, |
| size, |
| usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST |
| }); |
| new Float32Array(buf.getMappedRange())[0] = Infinity; |
| buf.unmap(); |
| return buf; |
| }; |
|
|
| const createWeightBuf = (device, size, data) => { |
| const buf = device.createBuffer({ size, usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST, mappedAtCreation: true }); |
| new Uint8Array(buf.getMappedRange()).set(data); buf.unmap(); |
| return buf; |
| }; |
|
|
| const addComputePass = (device, commandEncoder, pipeline, layout, infinityUniformBuf, bufs, workgroup) => { |
| const bindGroup = device.createBindGroup({ |
| layout: layout, |
| entries: [ |
| { binding: 0, resource: { buffer: infinityUniformBuf } }, |
| ...bufs.map((buffer, index) => ({ binding: index + 1, resource: { buffer } })) |
| ] |
| }); |
|
|
| const passEncoder = commandEncoder.beginComputePass(); |
| passEncoder.setPipeline(pipeline); |
| passEncoder.setBindGroup(0, bindGroup); |
| passEncoder.dispatchWorkgroups(...workgroup); |
| passEncoder.end(); |
| }; |
|
|
| const r_8_7_7_2_16_4_4_4_3_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_802816:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_37632:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_1728:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_64:array<f32>; |
| @compute @workgroup_size(2,16,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 8 */ |
| var lidx0 = i32(lindex.x); /* 2 */ |
| var lidx1 = i32(lindex.y); /* 16 */ |
| var lidx2 = i32(lindex.z); /* 4 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var alu0 = (bitcast<i32>((cast0<<4u))+bitcast<i32>((bitcast<u32>(lidx2)<<2u))+(gidx1*1792)+(lidx1*112)); |
| var alu1 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<4u)))<111); |
| var alu2 = ((lidx2+bitcast<i32>((cast0<<2u)))<27); |
| var alu3 = (0<(gidx0+lidx2)); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 3; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*12544)); |
| var val0 = select(0.0f, data1_37632[(alu21+-113)], (alu3&alu4)); |
| var alu22 = ((gidx2*216)+(lidx0*108)+(Ridx0*9)); |
| var val1 = data2_1728[alu22]; |
| var val2 = select(0.0f, data1_37632[(alu21+-112)], alu4); |
| var val3 = data2_1728[(alu22+1)]; |
| var val4 = select(0.0f, data1_37632[(alu21+-111)], alu4); |
| var val5 = data2_1728[(alu22+2)]; |
| var val6 = select(0.0f, data1_37632[(alu21+-1)], alu3); |
| var val7 = data2_1728[(alu22+3)]; |
| var val8 = data1_37632[alu21]; |
| var val9 = data2_1728[(alu22+4)]; |
| var val10 = data1_37632[(alu21+1)]; |
| var val11 = data2_1728[(alu22+5)]; |
| var val12 = select(0.0f, data1_37632[(alu21+111)], (alu3&alu1)); |
| var val13 = data2_1728[(alu22+6)]; |
| var val14 = select(0.0f, data1_37632[(alu21+112)], alu1); |
| var val15 = data2_1728[(alu22+7)]; |
| var val16 = select(0.0f, data1_37632[(alu21+113)], alu1); |
| var val17 = data2_1728[(alu22+8)]; |
| var val18 = data2_1728[(alu22+27)]; |
| var val19 = data2_1728[(alu22+28)]; |
| var val20 = data2_1728[(alu22+29)]; |
| var val21 = data2_1728[(alu22+30)]; |
| var val22 = data2_1728[(alu22+31)]; |
| var val23 = data2_1728[(alu22+32)]; |
| var val24 = data2_1728[(alu22+33)]; |
| var val25 = data2_1728[(alu22+34)]; |
| var val26 = data2_1728[(alu22+35)]; |
| var val27 = data2_1728[(alu22+54)]; |
| var val28 = data2_1728[(alu22+55)]; |
| var val29 = data2_1728[(alu22+56)]; |
| var val30 = data2_1728[(alu22+57)]; |
| var val31 = data2_1728[(alu22+58)]; |
| var val32 = data2_1728[(alu22+59)]; |
| var val33 = data2_1728[(alu22+60)]; |
| var val34 = data2_1728[(alu22+61)]; |
| var val35 = data2_1728[(alu22+62)]; |
| var val36 = data2_1728[(alu22+81)]; |
| var val37 = data2_1728[(alu22+82)]; |
| var val38 = data2_1728[(alu22+83)]; |
| var val39 = data2_1728[(alu22+84)]; |
| var val40 = data2_1728[(alu22+85)]; |
| var val41 = data2_1728[(alu22+86)]; |
| var val42 = data2_1728[(alu22+87)]; |
| var val43 = data2_1728[(alu22+88)]; |
| var val44 = data2_1728[(alu22+89)]; |
| var val45 = select(0.0f, data1_37632[(alu21+-110)], alu4); |
| var val46 = data1_37632[(alu21+2)]; |
| var val47 = select(0.0f, data1_37632[(alu21+114)], alu1); |
| var val48 = select(0.0f, data1_37632[(alu21+-109)], alu4); |
| var val49 = data1_37632[(alu21+3)]; |
| var val50 = select(0.0f, data1_37632[(alu21+115)], alu1); |
| var val51 = select(0.0f, data1_37632[(alu21+-108)], (alu2&alu4)); |
| var val52 = select(0.0f, data1_37632[(alu21+4)], alu2); |
| var val53 = select(0.0f, data1_37632[(alu21+116)], (alu2&alu1)); |
| acc0[0] = (acc0[0]+(val0*val1)+(val2*val3)+(val4*val5)+(val6*val7)+(val8*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val2*val19)+(val4*val20)+(val6*val21)+(val8*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val2*val28)+(val4*val29)+(val6*val30)+(val8*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val2*val37)+(val4*val38)+(val6*val39)+(val8*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val2*val1)+(val4*val3)+(val45*val5)+(val8*val7)+(val10*val9)+(val46*val11)+(val14*val13)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val2*val18)+(val4*val19)+(val45*val20)+(val8*val21)+(val10*val22)+(val46*val23)+(val14*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val2*val27)+(val4*val28)+(val45*val29)+(val8*val30)+(val10*val31)+(val46*val32)+(val14*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val2*val36)+(val4*val37)+(val45*val38)+(val8*val39)+(val10*val40)+(val46*val41)+(val14*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val4*val1)+(val45*val3)+(val48*val5)+(val10*val7)+(val46*val9)+(val49*val11)+(val16*val13)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val4*val18)+(val45*val19)+(val48*val20)+(val10*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val4*val27)+(val45*val28)+(val48*val29)+(val10*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val4*val36)+(val45*val37)+(val48*val38)+(val10*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val1)+(val48*val3)+(val51*val5)+(val46*val7)+(val49*val9)+(val52*val11)+(val47*val13)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var alu40 = (bitcast<i32>((bitcast<u32>(gidx2)<<3u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val54 = data3_64[alu40]; |
| var val55 = data4_64[alu40]; |
| var alu41 = (alu40+1); |
| var val56 = data3_64[alu41]; |
| var alu42 = (alu40+2); |
| var val57 = data3_64[alu42]; |
| var val58 = data4_64[alu41]; |
| var val59 = data4_64[alu42]; |
| var alu43 = (alu40+3); |
| var val60 = data3_64[alu43]; |
| var val61 = data4_64[alu43]; |
| var alu44 = (alu0+(gidx2*100352)+(lidx0*50176)); |
| var alu45 = (acc0[0]+val54); |
| var alu46 = (acc0[4]+val54); |
| var alu47 = (acc0[8]+val54); |
| var alu48 = (acc0[12]+val54); |
| var alu49 = select((alu45*val55),alu45,(0.0f<alu45)); |
| var alu50 = select((alu46*val55),alu46,(0.0f<alu46)); |
| var alu51 = select((alu47*val55),alu47,(0.0f<alu47)); |
| var alu52 = select((alu48*val55),alu48,(0.0f<alu48)); |
| data0_802816[alu44] = alu49; |
| data0_802816[(alu44+1)] = alu50; |
| data0_802816[(alu44+2)] = alu51; |
| data0_802816[(alu44+3)] = alu52; |
| var alu57 = (acc0[1]+val56); |
| var alu58 = (acc0[5]+val56); |
| var alu59 = (acc0[9]+val56); |
| var alu60 = (acc0[13]+val56); |
| var alu61 = select((alu57*val58),alu57,(0.0f<alu57)); |
| var alu62 = select((alu58*val58),alu58,(0.0f<alu58)); |
| var alu63 = select((alu59*val58),alu59,(0.0f<alu59)); |
| var alu64 = select((alu60*val58),alu60,(0.0f<alu60)); |
| data0_802816[(alu44+12544)] = alu61; |
| data0_802816[(alu44+12545)] = alu62; |
| data0_802816[(alu44+12546)] = alu63; |
| data0_802816[(alu44+12547)] = alu64; |
| var alu69 = (acc0[2]+val57); |
| var alu70 = (acc0[6]+val57); |
| var alu71 = (acc0[10]+val57); |
| var alu72 = (acc0[14]+val57); |
| var alu73 = select((alu69*val59),alu69,(0.0f<alu69)); |
| var alu74 = select((alu70*val59),alu70,(0.0f<alu70)); |
| var alu75 = select((alu71*val59),alu71,(0.0f<alu71)); |
| var alu76 = select((alu72*val59),alu72,(0.0f<alu72)); |
| data0_802816[(alu44+25088)] = alu73; |
| data0_802816[(alu44+25089)] = alu74; |
| data0_802816[(alu44+25090)] = alu75; |
| data0_802816[(alu44+25091)] = alu76; |
| var alu81 = (acc0[3]+val60); |
| var alu82 = (acc0[7]+val60); |
| var alu83 = (acc0[11]+val60); |
| var alu84 = (acc0[15]+val60); |
| var alu85 = select((alu81*val61),alu81,(0.0f<alu81)); |
| var alu86 = select((alu82*val61),alu82,(0.0f<alu82)); |
| var alu87 = select((alu83*val61),alu83,(0.0f<alu83)); |
| var alu88 = select((alu84*val61),alu84,(0.0f<alu84)); |
| data0_802816[(alu44+37632)] = alu85; |
| data0_802816[(alu44+37633)] = alu86; |
| data0_802816[(alu44+37634)] = alu87; |
| data0_802816[(alu44+37635)] = alu88; |
| }`; |
|
|
| const E_8_196_8_16_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_802816:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_802816:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_64:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_64:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_64:array<f32>; |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var gidx0 = i32(gindex.x); /* 196 */ |
| var gidx1 = i32(gindex.y); /* 8 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 16 */ |
| var alu0 = (bitcast<i32>((bitcast<u32>(gidx0)<<6u))+bitcast<i32>((bitcast<u32>(lidx1)<<2u))+(gidx1*100352)+(lidx0*12544)); |
| var val0 = data1_802816[alu0]; |
| var alu1 = (lidx0+bitcast<i32>((bitcast<u32>(gidx1)<<3u))); |
| var val1 = data2_64[alu1]; |
| var val2 = data3_64[alu1]; |
| var val3 = data4_64[alu1]; |
| var val4 = data5_64[alu1]; |
| var alu2 = (alu0+1); |
| var val5 = data1_802816[alu2]; |
| var alu3 = (alu0+2); |
| var val6 = data1_802816[alu3]; |
| var alu4 = (alu0+3); |
| var val7 = data1_802816[alu4]; |
| var alu5 = (1/sqrt((val3+9.999999747378752e-06f))); |
| data0_802816[alu0] = (((val0-val1)*val2*alu5)+val4); |
| data0_802816[alu2] = (((val5-val1)*val2*alu5)+val4); |
| data0_802816[alu3] = (((val6-val1)*val2*alu5)+val4); |
| data0_802816[alu4] = (((val7-val1)*val2*alu5)+val4); |
| }`; |
|
|
| const r_8_7_7_2_16_4_4_4_64_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_802816:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_802816:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_36864:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_64:array<f32>; |
| @compute @workgroup_size(2,16,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 8 */ |
| var lidx0 = i32(lindex.x); /* 2 */ |
| var lidx1 = i32(lindex.y); /* 16 */ |
| var lidx2 = i32(lindex.z); /* 4 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var alu0 = (bitcast<i32>((cast0<<4u))+bitcast<i32>((bitcast<u32>(lidx2)<<2u))+(gidx1*1792)+(lidx1*112)); |
| var alu1 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<4u)))<111); |
| var alu2 = ((lidx2+bitcast<i32>((cast0<<2u)))<27); |
| var alu3 = (0<(gidx0+lidx2)); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*12544)); |
| var val0 = select(0.0f, data1_802816[(alu21+-113)], (alu3&alu4)); |
| var alu22 = ((gidx2*4608)+(lidx0*2304)+(Ridx0*9)); |
| var val1 = data2_36864[alu22]; |
| var val2 = data1_802816[alu21]; |
| var val3 = select(0.0f, data1_802816[(alu21+-112)], alu4); |
| var val4 = data2_36864[(alu22+1)]; |
| var val5 = select(0.0f, data1_802816[(alu21+-111)], alu4); |
| var val6 = data2_36864[(alu22+2)]; |
| var val7 = select(0.0f, data1_802816[(alu21+-1)], alu3); |
| var val8 = data2_36864[(alu22+3)]; |
| var val9 = data2_36864[(alu22+4)]; |
| var val10 = data1_802816[(alu21+1)]; |
| var val11 = data2_36864[(alu22+5)]; |
| var val12 = select(0.0f, data1_802816[(alu21+111)], (alu3&alu1)); |
| var val13 = data2_36864[(alu22+6)]; |
| var val14 = select(0.0f, data1_802816[(alu21+112)], alu1); |
| var val15 = data2_36864[(alu22+7)]; |
| var val16 = select(0.0f, data1_802816[(alu21+113)], alu1); |
| var val17 = data2_36864[(alu22+8)]; |
| var val18 = data2_36864[(alu22+576)]; |
| var val19 = data2_36864[(alu22+577)]; |
| var val20 = data2_36864[(alu22+578)]; |
| var val21 = data2_36864[(alu22+579)]; |
| var val22 = data2_36864[(alu22+580)]; |
| var val23 = data2_36864[(alu22+581)]; |
| var val24 = data2_36864[(alu22+582)]; |
| var val25 = data2_36864[(alu22+583)]; |
| var val26 = data2_36864[(alu22+584)]; |
| var val27 = data2_36864[(alu22+1152)]; |
| var val28 = data2_36864[(alu22+1153)]; |
| var val29 = data2_36864[(alu22+1154)]; |
| var val30 = data2_36864[(alu22+1155)]; |
| var val31 = data2_36864[(alu22+1156)]; |
| var val32 = data2_36864[(alu22+1157)]; |
| var val33 = data2_36864[(alu22+1158)]; |
| var val34 = data2_36864[(alu22+1159)]; |
| var val35 = data2_36864[(alu22+1160)]; |
| var val36 = data2_36864[(alu22+1728)]; |
| var val37 = data2_36864[(alu22+1729)]; |
| var val38 = data2_36864[(alu22+1730)]; |
| var val39 = data2_36864[(alu22+1731)]; |
| var val40 = data2_36864[(alu22+1732)]; |
| var val41 = data2_36864[(alu22+1733)]; |
| var val42 = data2_36864[(alu22+1734)]; |
| var val43 = data2_36864[(alu22+1735)]; |
| var val44 = data2_36864[(alu22+1736)]; |
| var val45 = select(0.0f, data1_802816[(alu21+-110)], alu4); |
| var val46 = data1_802816[(alu21+2)]; |
| var val47 = select(0.0f, data1_802816[(alu21+114)], alu1); |
| var val48 = select(0.0f, data1_802816[(alu21+-109)], alu4); |
| var val49 = data1_802816[(alu21+3)]; |
| var val50 = select(0.0f, data1_802816[(alu21+115)], alu1); |
| var val51 = select(0.0f, data1_802816[(alu21+-108)], (alu2&alu4)); |
| var val52 = select(0.0f, data1_802816[(alu21+4)], alu2); |
| var val53 = select(0.0f, data1_802816[(alu21+116)], (alu2&alu1)); |
| acc0[0] = (acc0[0]+(val0*val1)+(val3*val4)+(val5*val6)+(val7*val8)+(val2*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val3*val19)+(val5*val20)+(val7*val21)+(val2*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val3*val28)+(val5*val29)+(val7*val30)+(val2*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val3*val37)+(val5*val38)+(val7*val39)+(val2*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val3*val1)+(val5*val4)+(val45*val6)+(val2*val8)+(val10*val9)+(val46*val11)+(val14*val13)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val3*val18)+(val5*val19)+(val45*val20)+(val2*val21)+(val10*val22)+(val46*val23)+(val14*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val3*val27)+(val5*val28)+(val45*val29)+(val2*val30)+(val10*val31)+(val46*val32)+(val14*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val3*val36)+(val5*val37)+(val45*val38)+(val2*val39)+(val10*val40)+(val46*val41)+(val14*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val5*val1)+(val45*val4)+(val48*val6)+(val10*val8)+(val46*val9)+(val49*val11)+(val16*val13)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val5*val18)+(val45*val19)+(val48*val20)+(val10*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val5*val27)+(val45*val28)+(val48*val29)+(val10*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val5*val36)+(val45*val37)+(val48*val38)+(val10*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val1)+(val48*val4)+(val51*val6)+(val46*val8)+(val49*val9)+(val52*val11)+(val47*val13)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var alu40 = (bitcast<i32>((bitcast<u32>(gidx2)<<3u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val54 = data3_64[alu40]; |
| var val55 = data4_64[alu40]; |
| var alu41 = (alu40+1); |
| var val56 = data3_64[alu41]; |
| var alu42 = (alu40+2); |
| var val57 = data3_64[alu42]; |
| var val58 = data4_64[alu41]; |
| var val59 = data4_64[alu42]; |
| var alu43 = (alu40+3); |
| var val60 = data3_64[alu43]; |
| var val61 = data4_64[alu43]; |
| var alu44 = (alu0+(gidx2*100352)+(lidx0*50176)); |
| var alu45 = (acc0[0]+val54); |
| var alu46 = (acc0[4]+val54); |
| var alu47 = (acc0[8]+val54); |
| var alu48 = (acc0[12]+val54); |
| var alu49 = select((alu45*val55),alu45,(0.0f<alu45)); |
| var alu50 = select((alu46*val55),alu46,(0.0f<alu46)); |
| var alu51 = select((alu47*val55),alu47,(0.0f<alu47)); |
| var alu52 = select((alu48*val55),alu48,(0.0f<alu48)); |
| data0_802816[alu44] = alu49; |
| data0_802816[(alu44+1)] = alu50; |
| data0_802816[(alu44+2)] = alu51; |
| data0_802816[(alu44+3)] = alu52; |
| var alu57 = (acc0[1]+val56); |
| var alu58 = (acc0[5]+val56); |
| var alu59 = (acc0[9]+val56); |
| var alu60 = (acc0[13]+val56); |
| var alu61 = select((alu57*val58),alu57,(0.0f<alu57)); |
| var alu62 = select((alu58*val58),alu58,(0.0f<alu58)); |
| var alu63 = select((alu59*val58),alu59,(0.0f<alu59)); |
| var alu64 = select((alu60*val58),alu60,(0.0f<alu60)); |
| data0_802816[(alu44+12544)] = alu61; |
| data0_802816[(alu44+12545)] = alu62; |
| data0_802816[(alu44+12546)] = alu63; |
| data0_802816[(alu44+12547)] = alu64; |
| var alu69 = (acc0[2]+val57); |
| var alu70 = (acc0[6]+val57); |
| var alu71 = (acc0[10]+val57); |
| var alu72 = (acc0[14]+val57); |
| var alu73 = select((alu69*val59),alu69,(0.0f<alu69)); |
| var alu74 = select((alu70*val59),alu70,(0.0f<alu70)); |
| var alu75 = select((alu71*val59),alu71,(0.0f<alu71)); |
| var alu76 = select((alu72*val59),alu72,(0.0f<alu72)); |
| data0_802816[(alu44+25088)] = alu73; |
| data0_802816[(alu44+25089)] = alu74; |
| data0_802816[(alu44+25090)] = alu75; |
| data0_802816[(alu44+25091)] = alu76; |
| var alu81 = (acc0[3]+val60); |
| var alu82 = (acc0[7]+val60); |
| var alu83 = (acc0[11]+val60); |
| var alu84 = (acc0[15]+val60); |
| var alu85 = select((alu81*val61),alu81,(0.0f<alu81)); |
| var alu86 = select((alu82*val61),alu82,(0.0f<alu82)); |
| var alu87 = select((alu83*val61),alu83,(0.0f<alu83)); |
| var alu88 = select((alu84*val61),alu84,(0.0f<alu84)); |
| data0_802816[(alu44+37632)] = alu85; |
| data0_802816[(alu44+37633)] = alu86; |
| data0_802816[(alu44+37634)] = alu87; |
| data0_802816[(alu44+37635)] = alu88; |
| }`; |
|
|
| const r_2_7_7_8_8_2_4_4_64_3_3_16_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_200704:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_802816:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_36864:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_802816:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_4096:array<f32>; |
| @group(0) @binding(7)var<storage,read_write>data6_64:array<f32>; |
| @compute @workgroup_size(8,8,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var acc1: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 8 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var cast1 = bitcast<u32>(lidx2); |
| var alu0 = (bitcast<i32>((cast0<<4u))+bitcast<i32>((cast1<<3u))); |
| var alu1 = ((gidx1*1792)+(lidx1*224)); |
| acc1[0] = 0.0f; |
| acc1[1] = 0.0f; |
| acc1[2] = 0.0f; |
| acc1[3] = 0.0f; |
| acc1[4] = 0.0f; |
| acc1[5] = 0.0f; |
| acc1[6] = 0.0f; |
| acc1[7] = 0.0f; |
| acc1[8] = 0.0f; |
| acc1[9] = 0.0f; |
| acc1[10] = 0.0f; |
| acc1[11] = 0.0f; |
| acc1[12] = 0.0f; |
| acc1[13] = 0.0f; |
| acc1[14] = 0.0f; |
| acc1[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { |
| var alu18 = (0<(gidx1+lidx1+Ridx1)); |
| for (var Ridx2 = 0; Ridx2 < 3; Ridx2++) { |
| var alu19 = (alu0+Ridx2+alu1+(Ridx1*112)+(Ridx0*12544)); |
| var val0 = select(0.0f, data1_802816[(alu19+-113)], ((0<(gidx0+lidx2+Ridx2))&alu18)); |
| var alu20 = ((Ridx1*3)+Ridx2+(Ridx0*9)+(gidx2*18432)+(lidx0*2304)); |
| var val1 = data2_36864[(alu20+576)]; |
| var val2 = data2_36864[(alu20+1152)]; |
| var val3 = data2_36864[alu20]; |
| var val4 = data2_36864[(alu20+1728)]; |
| var val5 = select(0.0f, data1_802816[(alu19+-111)], alu18); |
| var val6 = select(0.0f, data1_802816[(alu19+-109)], alu18); |
| var val7 = select(0.0f, data1_802816[(alu19+-107)], alu18); |
| acc1[0] = (acc1[0]+(val0*val3)); |
| acc1[1] = (acc1[1]+(val0*val1)); |
| acc1[2] = (acc1[2]+(val0*val2)); |
| acc1[3] = (acc1[3]+(val0*val4)); |
| acc1[4] = (acc1[4]+(val5*val3)); |
| acc1[5] = (acc1[5]+(val5*val1)); |
| acc1[6] = (acc1[6]+(val5*val2)); |
| acc1[7] = (acc1[7]+(val5*val4)); |
| acc1[8] = (acc1[8]+(val6*val3)); |
| acc1[9] = (acc1[9]+(val6*val1)); |
| acc1[10] = (acc1[10]+(val6*val2)); |
| acc1[11] = (acc1[11]+(val6*val4)); |
| acc1[12] = (acc1[12]+(val7*val3)); |
| acc1[13] = (acc1[13]+(val7*val1)); |
| acc1[14] = (acc1[14]+(val7*val2)); |
| acc1[15] = (acc1[15]+(val7*val4)); |
| } |
| } |
| } |
| var cast2 = bitcast<u32>(gidx2); |
| var cast3 = bitcast<u32>(lidx0); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx3 = 0; Ridx3 < 16; Ridx3++) { |
| var alu56 = (alu0+alu1+(Ridx3*50176)); |
| var val8 = data4_802816[alu56]; |
| var alu57 = (bitcast<i32>((cast2<<11u))+bitcast<i32>((cast3<<8u))+bitcast<i32>((bitcast<u32>(Ridx3)<<2u))); |
| var val9 = data5_4096[alu57]; |
| var val10 = data4_802816[(alu56+12544)]; |
| var val11 = data5_4096[(alu57+1)]; |
| var val12 = data4_802816[(alu56+25088)]; |
| var val13 = data5_4096[(alu57+2)]; |
| var val14 = data4_802816[(alu56+37632)]; |
| var val15 = data5_4096[(alu57+3)]; |
| var val16 = data5_4096[(alu57+64)]; |
| var val17 = data5_4096[(alu57+65)]; |
| var val18 = data5_4096[(alu57+66)]; |
| var val19 = data5_4096[(alu57+67)]; |
| var val20 = data5_4096[(alu57+128)]; |
| var val21 = data5_4096[(alu57+129)]; |
| var val22 = data5_4096[(alu57+130)]; |
| var val23 = data5_4096[(alu57+131)]; |
| var val24 = data5_4096[(alu57+192)]; |
| var val25 = data5_4096[(alu57+193)]; |
| var val26 = data5_4096[(alu57+194)]; |
| var val27 = data5_4096[(alu57+195)]; |
| var val28 = data4_802816[(alu56+2)]; |
| var val29 = data4_802816[(alu56+12546)]; |
| var val30 = data4_802816[(alu56+25090)]; |
| var val31 = data4_802816[(alu56+37634)]; |
| var val32 = data4_802816[(alu56+4)]; |
| var val33 = data4_802816[(alu56+12548)]; |
| var val34 = data4_802816[(alu56+25092)]; |
| var val35 = data4_802816[(alu56+37636)]; |
| var val36 = data4_802816[(alu56+6)]; |
| var val37 = data4_802816[(alu56+12550)]; |
| var val38 = data4_802816[(alu56+25094)]; |
| var val39 = data4_802816[(alu56+37638)]; |
| acc0[0] = (acc0[0]+(val8*val9)+(val10*val11)+(val12*val13)+(val14*val15)); |
| acc0[1] = (acc0[1]+(val8*val16)+(val10*val17)+(val12*val18)+(val14*val19)); |
| acc0[2] = (acc0[2]+(val8*val20)+(val10*val21)+(val12*val22)+(val14*val23)); |
| acc0[3] = (acc0[3]+(val8*val24)+(val10*val25)+(val12*val26)+(val14*val27)); |
| acc0[4] = (acc0[4]+(val28*val9)+(val29*val11)+(val30*val13)+(val31*val15)); |
| acc0[5] = (acc0[5]+(val28*val16)+(val29*val17)+(val30*val18)+(val31*val19)); |
| acc0[6] = (acc0[6]+(val28*val20)+(val29*val21)+(val30*val22)+(val31*val23)); |
| acc0[7] = (acc0[7]+(val28*val24)+(val29*val25)+(val30*val26)+(val31*val27)); |
| acc0[8] = (acc0[8]+(val32*val9)+(val33*val11)+(val34*val13)+(val35*val15)); |
| acc0[9] = (acc0[9]+(val32*val16)+(val33*val17)+(val34*val18)+(val35*val19)); |
| acc0[10] = (acc0[10]+(val32*val20)+(val33*val21)+(val34*val22)+(val35*val23)); |
| acc0[11] = (acc0[11]+(val32*val24)+(val33*val25)+(val34*val26)+(val35*val27)); |
| acc0[12] = (acc0[12]+(val36*val9)+(val37*val11)+(val38*val13)+(val39*val15)); |
| acc0[13] = (acc0[13]+(val36*val16)+(val37*val17)+(val38*val18)+(val39*val19)); |
| acc0[14] = (acc0[14]+(val36*val20)+(val37*val21)+(val38*val22)+(val39*val23)); |
| acc0[15] = (acc0[15]+(val36*val24)+(val37*val25)+(val38*val26)+(val39*val27)); |
| } |
| var alu75 = (bitcast<i32>((cast2<<5u))+bitcast<i32>((cast3<<2u))); |
| var val40 = data3_64[alu75]; |
| var val41 = data6_64[alu75]; |
| var alu76 = (alu75+1); |
| var val42 = data3_64[alu76]; |
| var alu77 = (alu75+2); |
| var val43 = data3_64[alu77]; |
| var alu78 = (alu75+3); |
| var val44 = data3_64[alu78]; |
| var val45 = data6_64[alu76]; |
| var val46 = data6_64[alu77]; |
| var val47 = data6_64[alu78]; |
| var alu79 = (bitcast<i32>((cast0<<3u))+bitcast<i32>((cast1<<2u))+(gidx1*448)+(lidx1*56)+(gidx2*100352)+(lidx0*12544)); |
| data0_200704[alu79] = (acc1[0]+val40+acc0[0]+val41); |
| data0_200704[(alu79+1)] = (acc1[4]+val40+acc0[4]+val41); |
| data0_200704[(alu79+2)] = (acc1[8]+val40+acc0[8]+val41); |
| data0_200704[(alu79+3)] = (acc1[12]+val40+acc0[12]+val41); |
| data0_200704[(alu79+3136)] = (acc1[1]+val42+acc0[1]+val45); |
| data0_200704[(alu79+3137)] = (acc1[5]+val42+acc0[5]+val45); |
| data0_200704[(alu79+3138)] = (acc1[9]+val42+acc0[9]+val45); |
| data0_200704[(alu79+3139)] = (acc1[13]+val42+acc0[13]+val45); |
| data0_200704[(alu79+6272)] = (acc1[2]+val43+acc0[2]+val46); |
| data0_200704[(alu79+6273)] = (acc1[6]+val43+acc0[6]+val46); |
| data0_200704[(alu79+6274)] = (acc1[10]+val43+acc0[10]+val46); |
| data0_200704[(alu79+6275)] = (acc1[14]+val43+acc0[14]+val46); |
| data0_200704[(alu79+9408)] = (acc1[3]+val44+acc0[3]+val47); |
| data0_200704[(alu79+9409)] = (acc1[7]+val44+acc0[7]+val47); |
| data0_200704[(alu79+9410)] = (acc1[11]+val44+acc0[11]+val47); |
| data0_200704[(alu79+9411)] = (acc1[15]+val44+acc0[15]+val47); |
| }`; |
|
|
| const E_8_49_8_16_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_200704:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_200704:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_64:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_64:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_64:array<f32>; |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var gidx0 = i32(gindex.x); /* 49 */ |
| var gidx1 = i32(gindex.y); /* 8 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 16 */ |
| var alu0 = (bitcast<i32>((bitcast<u32>(gidx0)<<6u))+bitcast<i32>((bitcast<u32>(lidx1)<<2u))+(gidx1*25088)+(lidx0*3136)); |
| var val0 = data1_200704[alu0]; |
| var alu1 = (lidx0+bitcast<i32>((bitcast<u32>(gidx1)<<3u))); |
| var val1 = data2_64[alu1]; |
| var val2 = data3_64[alu1]; |
| var val3 = data4_64[alu1]; |
| var val4 = data5_64[alu1]; |
| var alu2 = (alu0+1); |
| var val5 = data1_200704[alu2]; |
| var alu3 = (alu0+2); |
| var val6 = data1_200704[alu3]; |
| var alu4 = (alu0+3); |
| var val7 = data1_200704[alu4]; |
| var alu5 = (1/sqrt((val3+9.999999747378752e-06f))); |
| data0_200704[alu0] = (((val0-val1)*val2*alu5)+val4); |
| data0_200704[alu2] = (((val5-val1)*val2*alu5)+val4); |
| data0_200704[alu3] = (((val6-val1)*val2*alu5)+val4); |
| data0_200704[alu4] = (((val7-val1)*val2*alu5)+val4); |
| }`; |
|
|
| const r_2_7_7_8_8_2_4_4_64_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_200704:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_200704:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_36864:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_64:array<f32>; |
| @compute @workgroup_size(8,8,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 8 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var alu0 = (bitcast<i32>((cast0<<3u))+bitcast<i32>((bitcast<u32>(lidx2)<<2u))+(gidx1*448)+(lidx1*56)); |
| var alu1 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<3u)))<55); |
| var alu2 = ((lidx2+bitcast<i32>((cast0<<1u)))<13); |
| var alu3 = (0<(gidx0+lidx2)); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*3136)); |
| var val0 = select(0.0f, data1_200704[(alu21+-57)], (alu3&alu4)); |
| var alu22 = ((gidx2*18432)+(lidx0*2304)+(Ridx0*9)); |
| var val1 = data2_36864[alu22]; |
| var val2 = select(0.0f, data1_200704[(alu21+-56)], alu4); |
| var val3 = data2_36864[(alu22+1)]; |
| var val4 = select(0.0f, data1_200704[(alu21+-55)], alu4); |
| var val5 = data2_36864[(alu22+2)]; |
| var val6 = select(0.0f, data1_200704[(alu21+-1)], alu3); |
| var val7 = data2_36864[(alu22+3)]; |
| var val8 = data1_200704[alu21]; |
| var val9 = data2_36864[(alu22+4)]; |
| var val10 = data1_200704[(alu21+1)]; |
| var val11 = data2_36864[(alu22+5)]; |
| var val12 = select(0.0f, data1_200704[(alu21+55)], (alu3&alu1)); |
| var val13 = data2_36864[(alu22+6)]; |
| var val14 = select(0.0f, data1_200704[(alu21+56)], alu1); |
| var val15 = data2_36864[(alu22+7)]; |
| var val16 = select(0.0f, data1_200704[(alu21+57)], alu1); |
| var val17 = data2_36864[(alu22+8)]; |
| var val18 = data2_36864[(alu22+576)]; |
| var val19 = data2_36864[(alu22+577)]; |
| var val20 = data2_36864[(alu22+578)]; |
| var val21 = data2_36864[(alu22+579)]; |
| var val22 = data2_36864[(alu22+580)]; |
| var val23 = data2_36864[(alu22+581)]; |
| var val24 = data2_36864[(alu22+582)]; |
| var val25 = data2_36864[(alu22+583)]; |
| var val26 = data2_36864[(alu22+584)]; |
| var val27 = data2_36864[(alu22+1152)]; |
| var val28 = data2_36864[(alu22+1153)]; |
| var val29 = data2_36864[(alu22+1154)]; |
| var val30 = data2_36864[(alu22+1155)]; |
| var val31 = data2_36864[(alu22+1156)]; |
| var val32 = data2_36864[(alu22+1157)]; |
| var val33 = data2_36864[(alu22+1158)]; |
| var val34 = data2_36864[(alu22+1159)]; |
| var val35 = data2_36864[(alu22+1160)]; |
| var val36 = data2_36864[(alu22+1728)]; |
| var val37 = data2_36864[(alu22+1729)]; |
| var val38 = data2_36864[(alu22+1730)]; |
| var val39 = data2_36864[(alu22+1731)]; |
| var val40 = data2_36864[(alu22+1732)]; |
| var val41 = data2_36864[(alu22+1733)]; |
| var val42 = data2_36864[(alu22+1734)]; |
| var val43 = data2_36864[(alu22+1735)]; |
| var val44 = data2_36864[(alu22+1736)]; |
| var val45 = select(0.0f, data1_200704[(alu21+-54)], alu4); |
| var val46 = data1_200704[(alu21+2)]; |
| var val47 = select(0.0f, data1_200704[(alu21+58)], alu1); |
| var val48 = select(0.0f, data1_200704[(alu21+-53)], alu4); |
| var val49 = data1_200704[(alu21+3)]; |
| var val50 = select(0.0f, data1_200704[(alu21+59)], alu1); |
| var val51 = select(0.0f, data1_200704[(alu21+-52)], (alu2&alu4)); |
| var val52 = select(0.0f, data1_200704[(alu21+4)], alu2); |
| var val53 = select(0.0f, data1_200704[(alu21+60)], (alu2&alu1)); |
| acc0[0] = (acc0[0]+(val0*val1)+(val2*val3)+(val4*val5)+(val6*val7)+(val8*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val2*val19)+(val4*val20)+(val6*val21)+(val8*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val2*val28)+(val4*val29)+(val6*val30)+(val8*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val2*val37)+(val4*val38)+(val6*val39)+(val8*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val2*val1)+(val4*val3)+(val45*val5)+(val8*val7)+(val10*val9)+(val46*val11)+(val14*val13)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val2*val18)+(val4*val19)+(val45*val20)+(val8*val21)+(val10*val22)+(val46*val23)+(val14*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val2*val27)+(val4*val28)+(val45*val29)+(val8*val30)+(val10*val31)+(val46*val32)+(val14*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val2*val36)+(val4*val37)+(val45*val38)+(val8*val39)+(val10*val40)+(val46*val41)+(val14*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val4*val1)+(val45*val3)+(val48*val5)+(val10*val7)+(val46*val9)+(val49*val11)+(val16*val13)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val4*val18)+(val45*val19)+(val48*val20)+(val10*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val4*val27)+(val45*val28)+(val48*val29)+(val10*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val4*val36)+(val45*val37)+(val48*val38)+(val10*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val1)+(val48*val3)+(val51*val5)+(val46*val7)+(val49*val9)+(val52*val11)+(val47*val13)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var alu40 = (bitcast<i32>((bitcast<u32>(gidx2)<<5u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val54 = data3_64[alu40]; |
| var val55 = data4_64[alu40]; |
| var alu41 = (alu40+1); |
| var val56 = data3_64[alu41]; |
| var alu42 = (alu40+2); |
| var val57 = data3_64[alu42]; |
| var val58 = data4_64[alu41]; |
| var val59 = data4_64[alu42]; |
| var alu43 = (alu40+3); |
| var val60 = data3_64[alu43]; |
| var val61 = data4_64[alu43]; |
| var alu44 = (alu0+(gidx2*100352)+(lidx0*12544)); |
| var alu45 = (acc0[0]+val54); |
| var alu46 = (acc0[4]+val54); |
| var alu47 = (acc0[8]+val54); |
| var alu48 = (acc0[12]+val54); |
| var alu49 = select((alu45*val55),alu45,(0.0f<alu45)); |
| var alu50 = select((alu46*val55),alu46,(0.0f<alu46)); |
| var alu51 = select((alu47*val55),alu47,(0.0f<alu47)); |
| var alu52 = select((alu48*val55),alu48,(0.0f<alu48)); |
| data0_200704[alu44] = alu49; |
| data0_200704[(alu44+1)] = alu50; |
| data0_200704[(alu44+2)] = alu51; |
| data0_200704[(alu44+3)] = alu52; |
| var alu57 = (acc0[1]+val56); |
| var alu58 = (acc0[5]+val56); |
| var alu59 = (acc0[9]+val56); |
| var alu60 = (acc0[13]+val56); |
| var alu61 = select((alu57*val58),alu57,(0.0f<alu57)); |
| var alu62 = select((alu58*val58),alu58,(0.0f<alu58)); |
| var alu63 = select((alu59*val58),alu59,(0.0f<alu59)); |
| var alu64 = select((alu60*val58),alu60,(0.0f<alu60)); |
| data0_200704[(alu44+3136)] = alu61; |
| data0_200704[(alu44+3137)] = alu62; |
| data0_200704[(alu44+3138)] = alu63; |
| data0_200704[(alu44+3139)] = alu64; |
| var alu69 = (acc0[2]+val57); |
| var alu70 = (acc0[6]+val57); |
| var alu71 = (acc0[10]+val57); |
| var alu72 = (acc0[14]+val57); |
| var alu73 = select((alu69*val59),alu69,(0.0f<alu69)); |
| var alu74 = select((alu70*val59),alu70,(0.0f<alu70)); |
| var alu75 = select((alu71*val59),alu71,(0.0f<alu71)); |
| var alu76 = select((alu72*val59),alu72,(0.0f<alu72)); |
| data0_200704[(alu44+6272)] = alu73; |
| data0_200704[(alu44+6273)] = alu74; |
| data0_200704[(alu44+6274)] = alu75; |
| data0_200704[(alu44+6275)] = alu76; |
| var alu81 = (acc0[3]+val60); |
| var alu82 = (acc0[7]+val60); |
| var alu83 = (acc0[11]+val60); |
| var alu84 = (acc0[15]+val60); |
| var alu85 = select((alu81*val61),alu81,(0.0f<alu81)); |
| var alu86 = select((alu82*val61),alu82,(0.0f<alu82)); |
| var alu87 = select((alu83*val61),alu83,(0.0f<alu83)); |
| var alu88 = select((alu84*val61),alu84,(0.0f<alu84)); |
| data0_200704[(alu44+9408)] = alu85; |
| data0_200704[(alu44+9409)] = alu86; |
| data0_200704[(alu44+9410)] = alu87; |
| data0_200704[(alu44+9411)] = alu88; |
| }`; |
|
|
| const r_2_7_7_8_8_2_4_4_64_3_3n1 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_200704:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_200704:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_36864:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_64:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_200704:array<f32>; |
| @compute @workgroup_size(8,8,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 8 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var alu0 = (bitcast<i32>((cast0<<3u))+bitcast<i32>((bitcast<u32>(lidx2)<<2u))+(gidx1*448)+(lidx1*56)); |
| var alu1 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<3u)))<55); |
| var alu2 = ((lidx2+bitcast<i32>((cast0<<1u)))<13); |
| var alu3 = (0<(gidx0+lidx2)); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*3136)); |
| var val0 = select(0.0f, data1_200704[(alu21+-57)], (alu3&alu4)); |
| var alu22 = ((gidx2*18432)+(lidx0*2304)+(Ridx0*9)); |
| var val1 = data2_36864[alu22]; |
| var val2 = data1_200704[alu21]; |
| var val3 = select(0.0f, data1_200704[(alu21+-56)], alu4); |
| var val4 = data2_36864[(alu22+1)]; |
| var val5 = select(0.0f, data1_200704[(alu21+-55)], alu4); |
| var val6 = data2_36864[(alu22+2)]; |
| var val7 = select(0.0f, data1_200704[(alu21+-1)], alu3); |
| var val8 = data2_36864[(alu22+3)]; |
| var val9 = data2_36864[(alu22+4)]; |
| var val10 = data1_200704[(alu21+1)]; |
| var val11 = data2_36864[(alu22+5)]; |
| var val12 = select(0.0f, data1_200704[(alu21+55)], (alu3&alu1)); |
| var val13 = data2_36864[(alu22+6)]; |
| var val14 = select(0.0f, data1_200704[(alu21+56)], alu1); |
| var val15 = data2_36864[(alu22+7)]; |
| var val16 = select(0.0f, data1_200704[(alu21+57)], alu1); |
| var val17 = data2_36864[(alu22+8)]; |
| var val18 = data2_36864[(alu22+576)]; |
| var val19 = data2_36864[(alu22+577)]; |
| var val20 = data2_36864[(alu22+578)]; |
| var val21 = data2_36864[(alu22+579)]; |
| var val22 = data2_36864[(alu22+580)]; |
| var val23 = data2_36864[(alu22+581)]; |
| var val24 = data2_36864[(alu22+582)]; |
| var val25 = data2_36864[(alu22+583)]; |
| var val26 = data2_36864[(alu22+584)]; |
| var val27 = data2_36864[(alu22+1152)]; |
| var val28 = data2_36864[(alu22+1153)]; |
| var val29 = data2_36864[(alu22+1154)]; |
| var val30 = data2_36864[(alu22+1155)]; |
| var val31 = data2_36864[(alu22+1156)]; |
| var val32 = data2_36864[(alu22+1157)]; |
| var val33 = data2_36864[(alu22+1158)]; |
| var val34 = data2_36864[(alu22+1159)]; |
| var val35 = data2_36864[(alu22+1160)]; |
| var val36 = data2_36864[(alu22+1728)]; |
| var val37 = data2_36864[(alu22+1729)]; |
| var val38 = data2_36864[(alu22+1730)]; |
| var val39 = data2_36864[(alu22+1731)]; |
| var val40 = data2_36864[(alu22+1732)]; |
| var val41 = data2_36864[(alu22+1733)]; |
| var val42 = data2_36864[(alu22+1734)]; |
| var val43 = data2_36864[(alu22+1735)]; |
| var val44 = data2_36864[(alu22+1736)]; |
| var val45 = select(0.0f, data1_200704[(alu21+-54)], alu4); |
| var val46 = data1_200704[(alu21+2)]; |
| var val47 = select(0.0f, data1_200704[(alu21+58)], alu1); |
| var val48 = select(0.0f, data1_200704[(alu21+-53)], alu4); |
| var val49 = data1_200704[(alu21+3)]; |
| var val50 = select(0.0f, data1_200704[(alu21+59)], alu1); |
| var val51 = select(0.0f, data1_200704[(alu21+-52)], (alu2&alu4)); |
| var val52 = select(0.0f, data1_200704[(alu21+4)], alu2); |
| var val53 = select(0.0f, data1_200704[(alu21+60)], (alu2&alu1)); |
| acc0[0] = (acc0[0]+(val0*val1)+(val3*val4)+(val5*val6)+(val7*val8)+(val2*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val3*val19)+(val5*val20)+(val7*val21)+(val2*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val3*val28)+(val5*val29)+(val7*val30)+(val2*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val3*val37)+(val5*val38)+(val7*val39)+(val2*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val3*val1)+(val5*val4)+(val45*val6)+(val2*val8)+(val10*val9)+(val46*val11)+(val14*val13)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val3*val18)+(val5*val19)+(val45*val20)+(val2*val21)+(val10*val22)+(val46*val23)+(val14*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val3*val27)+(val5*val28)+(val45*val29)+(val2*val30)+(val10*val31)+(val46*val32)+(val14*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val3*val36)+(val5*val37)+(val45*val38)+(val2*val39)+(val10*val40)+(val46*val41)+(val14*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val5*val1)+(val45*val4)+(val48*val6)+(val10*val8)+(val46*val9)+(val49*val11)+(val16*val13)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val5*val18)+(val45*val19)+(val48*val20)+(val10*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val5*val27)+(val45*val28)+(val48*val29)+(val10*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val5*val36)+(val45*val37)+(val48*val38)+(val10*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val1)+(val48*val4)+(val51*val6)+(val46*val8)+(val49*val9)+(val52*val11)+(val47*val13)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var alu40 = (bitcast<i32>((bitcast<u32>(gidx2)<<5u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val54 = data3_64[alu40]; |
| var alu41 = (alu0+(gidx2*100352)+(lidx0*12544)); |
| var val55 = data4_200704[alu41]; |
| var alu42 = (alu41+1); |
| var val56 = data4_200704[alu42]; |
| var alu43 = (alu41+2); |
| var val57 = data4_200704[alu43]; |
| var alu44 = (alu41+3); |
| var val58 = data4_200704[alu44]; |
| var val59 = data3_64[(alu40+1)]; |
| var alu45 = (alu41+3136); |
| var val60 = data4_200704[alu45]; |
| var alu46 = (alu41+3137); |
| var val61 = data4_200704[alu46]; |
| var alu47 = (alu41+3138); |
| var val62 = data4_200704[alu47]; |
| var alu48 = (alu41+3139); |
| var val63 = data4_200704[alu48]; |
| var val64 = data3_64[(alu40+2)]; |
| var alu49 = (alu41+6272); |
| var val65 = data4_200704[alu49]; |
| var alu50 = (alu41+6273); |
| var val66 = data4_200704[alu50]; |
| var alu51 = (alu41+6274); |
| var val67 = data4_200704[alu51]; |
| var alu52 = (alu41+6275); |
| var val68 = data4_200704[alu52]; |
| var val69 = data3_64[(alu40+3)]; |
| var alu53 = (alu41+9408); |
| var val70 = data4_200704[alu53]; |
| var alu54 = (alu41+9409); |
| var val71 = data4_200704[alu54]; |
| var alu55 = (alu41+9410); |
| var val72 = data4_200704[alu55]; |
| var alu56 = (alu41+9411); |
| var val73 = data4_200704[alu56]; |
| data0_200704[alu41] = (acc0[0]+val54+val55); |
| data0_200704[alu42] = (acc0[4]+val54+val56); |
| data0_200704[alu43] = (acc0[8]+val54+val57); |
| data0_200704[alu44] = (acc0[12]+val54+val58); |
| data0_200704[alu45] = (acc0[1]+val59+val60); |
| data0_200704[alu46] = (acc0[5]+val59+val61); |
| data0_200704[alu47] = (acc0[9]+val59+val62); |
| data0_200704[alu48] = (acc0[13]+val59+val63); |
| data0_200704[alu49] = (acc0[2]+val64+val65); |
| data0_200704[alu50] = (acc0[6]+val64+val66); |
| data0_200704[alu51] = (acc0[10]+val64+val67); |
| data0_200704[alu52] = (acc0[14]+val64+val68); |
| data0_200704[alu53] = (acc0[3]+val69+val70); |
| data0_200704[alu54] = (acc0[7]+val69+val71); |
| data0_200704[alu55] = (acc0[11]+val69+val72); |
| data0_200704[alu56] = (acc0[15]+val69+val73); |
| }`; |
|
|
| const r_4_7_7_8_8_2_4_4_64_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_401408:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_200704:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_73728:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_128:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_128:array<f32>; |
| @compute @workgroup_size(8,8,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 4 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 8 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var alu0 = (bitcast<i32>((cast0<<3u))+bitcast<i32>((bitcast<u32>(lidx2)<<2u))+(gidx1*448)+(lidx1*56)); |
| var alu1 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<3u)))<55); |
| var alu2 = ((lidx2+bitcast<i32>((cast0<<1u)))<13); |
| var alu3 = (0<(gidx0+lidx2)); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*3136)); |
| var val0 = select(0.0f, data1_200704[(alu21+-57)], (alu3&alu4)); |
| var alu22 = ((gidx2*18432)+(lidx0*2304)+(Ridx0*9)); |
| var val1 = data2_73728[alu22]; |
| var val2 = select(0.0f, data1_200704[(alu21+-56)], alu4); |
| var val3 = data2_73728[(alu22+1)]; |
| var val4 = select(0.0f, data1_200704[(alu21+-55)], alu4); |
| var val5 = data2_73728[(alu22+2)]; |
| var val6 = select(0.0f, data1_200704[(alu21+-1)], alu3); |
| var val7 = data2_73728[(alu22+3)]; |
| var val8 = data1_200704[alu21]; |
| var val9 = data2_73728[(alu22+4)]; |
| var val10 = data1_200704[(alu21+1)]; |
| var val11 = data2_73728[(alu22+5)]; |
| var val12 = select(0.0f, data1_200704[(alu21+55)], (alu3&alu1)); |
| var val13 = data2_73728[(alu22+6)]; |
| var val14 = select(0.0f, data1_200704[(alu21+56)], alu1); |
| var val15 = data2_73728[(alu22+7)]; |
| var val16 = select(0.0f, data1_200704[(alu21+57)], alu1); |
| var val17 = data2_73728[(alu22+8)]; |
| var val18 = data2_73728[(alu22+576)]; |
| var val19 = data2_73728[(alu22+577)]; |
| var val20 = data2_73728[(alu22+578)]; |
| var val21 = data2_73728[(alu22+579)]; |
| var val22 = data2_73728[(alu22+580)]; |
| var val23 = data2_73728[(alu22+581)]; |
| var val24 = data2_73728[(alu22+582)]; |
| var val25 = data2_73728[(alu22+583)]; |
| var val26 = data2_73728[(alu22+584)]; |
| var val27 = data2_73728[(alu22+1152)]; |
| var val28 = data2_73728[(alu22+1153)]; |
| var val29 = data2_73728[(alu22+1154)]; |
| var val30 = data2_73728[(alu22+1155)]; |
| var val31 = data2_73728[(alu22+1156)]; |
| var val32 = data2_73728[(alu22+1157)]; |
| var val33 = data2_73728[(alu22+1158)]; |
| var val34 = data2_73728[(alu22+1159)]; |
| var val35 = data2_73728[(alu22+1160)]; |
| var val36 = data2_73728[(alu22+1728)]; |
| var val37 = data2_73728[(alu22+1729)]; |
| var val38 = data2_73728[(alu22+1730)]; |
| var val39 = data2_73728[(alu22+1731)]; |
| var val40 = data2_73728[(alu22+1732)]; |
| var val41 = data2_73728[(alu22+1733)]; |
| var val42 = data2_73728[(alu22+1734)]; |
| var val43 = data2_73728[(alu22+1735)]; |
| var val44 = data2_73728[(alu22+1736)]; |
| var val45 = select(0.0f, data1_200704[(alu21+-54)], alu4); |
| var val46 = data1_200704[(alu21+2)]; |
| var val47 = select(0.0f, data1_200704[(alu21+58)], alu1); |
| var val48 = select(0.0f, data1_200704[(alu21+-53)], alu4); |
| var val49 = data1_200704[(alu21+3)]; |
| var val50 = select(0.0f, data1_200704[(alu21+59)], alu1); |
| var val51 = select(0.0f, data1_200704[(alu21+-52)], (alu2&alu4)); |
| var val52 = select(0.0f, data1_200704[(alu21+4)], alu2); |
| var val53 = select(0.0f, data1_200704[(alu21+60)], (alu2&alu1)); |
| acc0[0] = (acc0[0]+(val0*val1)+(val2*val3)+(val4*val5)+(val6*val7)+(val8*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val2*val19)+(val4*val20)+(val6*val21)+(val8*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val2*val28)+(val4*val29)+(val6*val30)+(val8*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val2*val37)+(val4*val38)+(val6*val39)+(val8*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val2*val1)+(val4*val3)+(val45*val5)+(val8*val7)+(val10*val9)+(val46*val11)+(val14*val13)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val2*val18)+(val4*val19)+(val45*val20)+(val8*val21)+(val10*val22)+(val46*val23)+(val14*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val2*val27)+(val4*val28)+(val45*val29)+(val8*val30)+(val10*val31)+(val46*val32)+(val14*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val2*val36)+(val4*val37)+(val45*val38)+(val8*val39)+(val10*val40)+(val46*val41)+(val14*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val4*val1)+(val45*val3)+(val48*val5)+(val10*val7)+(val46*val9)+(val49*val11)+(val16*val13)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val4*val18)+(val45*val19)+(val48*val20)+(val10*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val4*val27)+(val45*val28)+(val48*val29)+(val10*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val4*val36)+(val45*val37)+(val48*val38)+(val10*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val1)+(val48*val3)+(val51*val5)+(val46*val7)+(val49*val9)+(val52*val11)+(val47*val13)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var alu40 = (bitcast<i32>((bitcast<u32>(gidx2)<<5u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val54 = data3_128[alu40]; |
| var val55 = data4_128[alu40]; |
| var alu41 = (alu40+1); |
| var val56 = data3_128[alu41]; |
| var alu42 = (alu40+2); |
| var val57 = data3_128[alu42]; |
| var val58 = data4_128[alu41]; |
| var val59 = data4_128[alu42]; |
| var alu43 = (alu40+3); |
| var val60 = data3_128[alu43]; |
| var val61 = data4_128[alu43]; |
| var alu44 = (alu0+(gidx2*100352)+(lidx0*12544)); |
| var alu45 = (acc0[0]+val54); |
| var alu46 = (acc0[4]+val54); |
| var alu47 = (acc0[8]+val54); |
| var alu48 = (acc0[12]+val54); |
| var alu49 = select((alu45*val55),alu45,(0.0f<alu45)); |
| var alu50 = select((alu46*val55),alu46,(0.0f<alu46)); |
| var alu51 = select((alu47*val55),alu47,(0.0f<alu47)); |
| var alu52 = select((alu48*val55),alu48,(0.0f<alu48)); |
| data0_401408[alu44] = alu49; |
| data0_401408[(alu44+1)] = alu50; |
| data0_401408[(alu44+2)] = alu51; |
| data0_401408[(alu44+3)] = alu52; |
| var alu57 = (acc0[1]+val56); |
| var alu58 = (acc0[5]+val56); |
| var alu59 = (acc0[9]+val56); |
| var alu60 = (acc0[13]+val56); |
| var alu61 = select((alu57*val58),alu57,(0.0f<alu57)); |
| var alu62 = select((alu58*val58),alu58,(0.0f<alu58)); |
| var alu63 = select((alu59*val58),alu59,(0.0f<alu59)); |
| var alu64 = select((alu60*val58),alu60,(0.0f<alu60)); |
| data0_401408[(alu44+3136)] = alu61; |
| data0_401408[(alu44+3137)] = alu62; |
| data0_401408[(alu44+3138)] = alu63; |
| data0_401408[(alu44+3139)] = alu64; |
| var alu69 = (acc0[2]+val57); |
| var alu70 = (acc0[6]+val57); |
| var alu71 = (acc0[10]+val57); |
| var alu72 = (acc0[14]+val57); |
| var alu73 = select((alu69*val59),alu69,(0.0f<alu69)); |
| var alu74 = select((alu70*val59),alu70,(0.0f<alu70)); |
| var alu75 = select((alu71*val59),alu71,(0.0f<alu71)); |
| var alu76 = select((alu72*val59),alu72,(0.0f<alu72)); |
| data0_401408[(alu44+6272)] = alu73; |
| data0_401408[(alu44+6273)] = alu74; |
| data0_401408[(alu44+6274)] = alu75; |
| data0_401408[(alu44+6275)] = alu76; |
| var alu81 = (acc0[3]+val60); |
| var alu82 = (acc0[7]+val60); |
| var alu83 = (acc0[11]+val60); |
| var alu84 = (acc0[15]+val60); |
| var alu85 = select((alu81*val61),alu81,(0.0f<alu81)); |
| var alu86 = select((alu82*val61),alu82,(0.0f<alu82)); |
| var alu87 = select((alu83*val61),alu83,(0.0f<alu83)); |
| var alu88 = select((alu84*val61),alu84,(0.0f<alu84)); |
| data0_401408[(alu44+9408)] = alu85; |
| data0_401408[(alu44+9409)] = alu86; |
| data0_401408[(alu44+9410)] = alu87; |
| data0_401408[(alu44+9411)] = alu88; |
| }`; |
|
|
| const r_7_7_32_4_4_4_128_3_3_16_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_100352:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_401408:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_147456:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_128:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_200704:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_8192:array<f32>; |
| @group(0) @binding(7)var<storage,read_write>data6_128:array<f32>; |
| @compute @workgroup_size(32,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var acc1: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 4 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var cast1 = bitcast<i32>((cast0<<3u)); |
| var alu0 = ((gidx1*448)+(lidx1*112)); |
| acc1[0] = 0.0f; |
| acc1[1] = 0.0f; |
| acc1[2] = 0.0f; |
| acc1[3] = 0.0f; |
| acc1[4] = 0.0f; |
| acc1[5] = 0.0f; |
| acc1[6] = 0.0f; |
| acc1[7] = 0.0f; |
| acc1[8] = 0.0f; |
| acc1[9] = 0.0f; |
| acc1[10] = 0.0f; |
| acc1[11] = 0.0f; |
| acc1[12] = 0.0f; |
| acc1[13] = 0.0f; |
| acc1[14] = 0.0f; |
| acc1[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 128; Ridx0++) { |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { |
| var alu17 = (0<(gidx1+lidx1+Ridx1)); |
| for (var Ridx2 = 0; Ridx2 < 3; Ridx2++) { |
| var alu18 = (alu0+(Ridx1*56)+cast1+Ridx2+(Ridx0*3136)); |
| var val0 = select(0.0f, data1_401408[(alu18+-57)], ((0<(gidx0+Ridx2))&alu17)); |
| var alu19 = ((Ridx1*3)+Ridx2+(Ridx0*9)+(lidx0*4608)); |
| var val1 = data2_147456[alu19]; |
| var val2 = data2_147456[(alu19+1152)]; |
| var val3 = data2_147456[(alu19+2304)]; |
| var val4 = data2_147456[(alu19+3456)]; |
| var val5 = select(0.0f, data1_401408[(alu18+-55)], alu17); |
| var val6 = select(0.0f, data1_401408[(alu18+-53)], alu17); |
| var val7 = select(0.0f, data1_401408[(alu18+-51)], alu17); |
| acc1[0] = (acc1[0]+(val0*val1)); |
| acc1[1] = (acc1[1]+(val0*val2)); |
| acc1[2] = (acc1[2]+(val0*val3)); |
| acc1[3] = (acc1[3]+(val0*val4)); |
| acc1[4] = (acc1[4]+(val5*val1)); |
| acc1[5] = (acc1[5]+(val5*val2)); |
| acc1[6] = (acc1[6]+(val5*val3)); |
| acc1[7] = (acc1[7]+(val5*val4)); |
| acc1[8] = (acc1[8]+(val6*val1)); |
| acc1[9] = (acc1[9]+(val6*val2)); |
| acc1[10] = (acc1[10]+(val6*val3)); |
| acc1[11] = (acc1[11]+(val6*val4)); |
| acc1[12] = (acc1[12]+(val7*val1)); |
| acc1[13] = (acc1[13]+(val7*val2)); |
| acc1[14] = (acc1[14]+(val7*val3)); |
| acc1[15] = (acc1[15]+(val7*val4)); |
| } |
| } |
| } |
| var cast2 = bitcast<u32>(lidx0); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx3 = 0; Ridx3 < 16; Ridx3++) { |
| var alu55 = (alu0+cast1+(Ridx3*12544)); |
| var val8 = data4_200704[alu55]; |
| var alu56 = (bitcast<i32>((cast2<<8u))+bitcast<i32>((bitcast<u32>(Ridx3)<<2u))); |
| var val9 = data5_8192[alu56]; |
| var val10 = data4_200704[(alu55+3136)]; |
| var val11 = data5_8192[(alu56+1)]; |
| var val12 = data4_200704[(alu55+6272)]; |
| var val13 = data5_8192[(alu56+2)]; |
| var val14 = data4_200704[(alu55+9408)]; |
| var val15 = data5_8192[(alu56+3)]; |
| var val16 = data5_8192[(alu56+64)]; |
| var val17 = data5_8192[(alu56+65)]; |
| var val18 = data5_8192[(alu56+66)]; |
| var val19 = data5_8192[(alu56+67)]; |
| var val20 = data5_8192[(alu56+128)]; |
| var val21 = data5_8192[(alu56+129)]; |
| var val22 = data5_8192[(alu56+130)]; |
| var val23 = data5_8192[(alu56+131)]; |
| var val24 = data5_8192[(alu56+192)]; |
| var val25 = data5_8192[(alu56+193)]; |
| var val26 = data5_8192[(alu56+194)]; |
| var val27 = data5_8192[(alu56+195)]; |
| var val28 = data4_200704[(alu55+2)]; |
| var val29 = data4_200704[(alu55+3138)]; |
| var val30 = data4_200704[(alu55+6274)]; |
| var val31 = data4_200704[(alu55+9410)]; |
| var val32 = data4_200704[(alu55+4)]; |
| var val33 = data4_200704[(alu55+3140)]; |
| var val34 = data4_200704[(alu55+6276)]; |
| var val35 = data4_200704[(alu55+9412)]; |
| var val36 = data4_200704[(alu55+6)]; |
| var val37 = data4_200704[(alu55+3142)]; |
| var val38 = data4_200704[(alu55+6278)]; |
| var val39 = data4_200704[(alu55+9414)]; |
| acc0[0] = (acc0[0]+(val8*val9)+(val10*val11)+(val12*val13)+(val14*val15)); |
| acc0[1] = (acc0[1]+(val8*val16)+(val10*val17)+(val12*val18)+(val14*val19)); |
| acc0[2] = (acc0[2]+(val8*val20)+(val10*val21)+(val12*val22)+(val14*val23)); |
| acc0[3] = (acc0[3]+(val8*val24)+(val10*val25)+(val12*val26)+(val14*val27)); |
| acc0[4] = (acc0[4]+(val28*val9)+(val29*val11)+(val30*val13)+(val31*val15)); |
| acc0[5] = (acc0[5]+(val28*val16)+(val29*val17)+(val30*val18)+(val31*val19)); |
| acc0[6] = (acc0[6]+(val28*val20)+(val29*val21)+(val30*val22)+(val31*val23)); |
| acc0[7] = (acc0[7]+(val28*val24)+(val29*val25)+(val30*val26)+(val31*val27)); |
| acc0[8] = (acc0[8]+(val32*val9)+(val33*val11)+(val34*val13)+(val35*val15)); |
| acc0[9] = (acc0[9]+(val32*val16)+(val33*val17)+(val34*val18)+(val35*val19)); |
| acc0[10] = (acc0[10]+(val32*val20)+(val33*val21)+(val34*val22)+(val35*val23)); |
| acc0[11] = (acc0[11]+(val32*val24)+(val33*val25)+(val34*val26)+(val35*val27)); |
| acc0[12] = (acc0[12]+(val36*val9)+(val37*val11)+(val38*val13)+(val39*val15)); |
| acc0[13] = (acc0[13]+(val36*val16)+(val37*val17)+(val38*val18)+(val39*val19)); |
| acc0[14] = (acc0[14]+(val36*val20)+(val37*val21)+(val38*val22)+(val39*val23)); |
| acc0[15] = (acc0[15]+(val36*val24)+(val37*val25)+(val38*val26)+(val39*val27)); |
| } |
| var cast3 = bitcast<i32>((cast2<<2u)); |
| var val40 = data3_128[cast3]; |
| var val41 = data6_128[cast3]; |
| var alu74 = (cast3+1); |
| var val42 = data3_128[alu74]; |
| var val43 = data6_128[alu74]; |
| var alu75 = (cast3+2); |
| var val44 = data3_128[alu75]; |
| var val45 = data6_128[alu75]; |
| var alu76 = (cast3+3); |
| var val46 = data3_128[alu76]; |
| var val47 = data6_128[alu76]; |
| var alu77 = ((gidx1*112)+(lidx1*28)+bitcast<i32>((cast0<<2u))+(lidx0*3136)); |
| data0_100352[(alu77+784)] = (acc1[1]+val42+acc0[1]+val43); |
| data0_100352[(alu77+785)] = (acc1[5]+val42+acc0[5]+val43); |
| data0_100352[(alu77+786)] = (acc1[9]+val42+acc0[9]+val43); |
| data0_100352[(alu77+787)] = (acc1[13]+val42+acc0[13]+val43); |
| data0_100352[(alu77+1568)] = (acc1[2]+val44+acc0[2]+val45); |
| data0_100352[(alu77+1569)] = (acc1[6]+val44+acc0[6]+val45); |
| data0_100352[(alu77+1570)] = (acc1[10]+val44+acc0[10]+val45); |
| data0_100352[(alu77+1571)] = (acc1[14]+val44+acc0[14]+val45); |
| data0_100352[(alu77+2352)] = (acc1[3]+val46+acc0[3]+val47); |
| data0_100352[(alu77+2353)] = (acc1[7]+val46+acc0[7]+val47); |
| data0_100352[(alu77+2354)] = (acc1[11]+val46+acc0[11]+val47); |
| data0_100352[(alu77+2355)] = (acc1[15]+val46+acc0[15]+val47); |
| data0_100352[(alu77+1)] = (acc1[4]+val40+acc0[4]+val41); |
| data0_100352[(alu77+2)] = (acc1[8]+val40+acc0[8]+val41); |
| data0_100352[(alu77+3)] = (acc1[12]+val40+acc0[12]+val41); |
| data0_100352[alu77] = (acc1[0]+val40+acc0[0]+val41); |
| }`; |
|
|
| const E_4_49_32_4_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_100352:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_100352:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_128:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_128:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_128:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_128:array<f32>; |
| @compute @workgroup_size(32,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var gidx0 = i32(gindex.x); /* 49 */ |
| var gidx1 = i32(gindex.y); /* 4 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 4 */ |
| var alu0 = (bitcast<i32>((bitcast<u32>(gidx0)<<4u))+bitcast<i32>((bitcast<u32>(lidx1)<<2u))+(gidx1*25088)+(lidx0*784)); |
| var val0 = data1_100352[alu0]; |
| var alu1 = (lidx0+bitcast<i32>((bitcast<u32>(gidx1)<<5u))); |
| var val1 = data2_128[alu1]; |
| var val2 = data3_128[alu1]; |
| var val3 = data4_128[alu1]; |
| var val4 = data5_128[alu1]; |
| var alu2 = (alu0+1); |
| var val5 = data1_100352[alu2]; |
| var alu3 = (alu0+2); |
| var val6 = data1_100352[alu3]; |
| var alu4 = (alu0+3); |
| var val7 = data1_100352[alu4]; |
| var alu5 = (1/sqrt((val3+9.999999747378752e-06f))); |
| data0_100352[alu0] = (((val0-val1)*val2*alu5)+val4); |
| data0_100352[alu2] = (((val5-val1)*val2*alu5)+val4); |
| data0_100352[alu3] = (((val6-val1)*val2*alu5)+val4); |
| data0_100352[alu4] = (((val7-val1)*val2*alu5)+val4); |
| }`; |
|
|
| const r_7_7_32_4_4_4_128_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_100352:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_100352:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_147456:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_128:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_128:array<f32>; |
| @compute @workgroup_size(32,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 4 */ |
| var alu0 = ((gidx1*112)+(lidx1*28)+bitcast<i32>((bitcast<u32>(gidx0)<<2u))); |
| var alu1 = (gidx0<6); |
| var alu2 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<2u)))<27); |
| var alu3 = (0<gidx0); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 128; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*784)); |
| var val0 = select(0.0f, data1_100352[(alu21+-29)], (alu3&alu4)); |
| var alu22 = ((lidx0*4608)+(Ridx0*9)); |
| var val1 = data2_147456[(alu22+1)]; |
| var val2 = data2_147456[alu22]; |
| var val3 = select(0.0f, data1_100352[(alu21+-28)], alu4); |
| var val4 = select(0.0f, data1_100352[(alu21+-27)], alu4); |
| var val5 = data2_147456[(alu22+2)]; |
| var val6 = select(0.0f, data1_100352[(alu21+-1)], alu3); |
| var val7 = data2_147456[(alu22+3)]; |
| var val8 = data1_100352[(alu21+1)]; |
| var val9 = select(0.0f, data1_100352[(alu21+28)], alu2); |
| var val10 = data1_100352[alu21]; |
| var val11 = data2_147456[(alu22+4)]; |
| var val12 = data2_147456[(alu22+5)]; |
| var val13 = select(0.0f, data1_100352[(alu21+27)], (alu3&alu2)); |
| var val14 = data2_147456[(alu22+6)]; |
| var val15 = data2_147456[(alu22+7)]; |
| var val16 = select(0.0f, data1_100352[(alu21+29)], alu2); |
| var val17 = data2_147456[(alu22+8)]; |
| var val18 = data2_147456[(alu22+1152)]; |
| var val19 = data2_147456[(alu22+1153)]; |
| var val20 = data2_147456[(alu22+1154)]; |
| var val21 = data2_147456[(alu22+1155)]; |
| var val22 = data2_147456[(alu22+1156)]; |
| var val23 = data2_147456[(alu22+1157)]; |
| var val24 = data2_147456[(alu22+1158)]; |
| var val25 = data2_147456[(alu22+1159)]; |
| var val26 = data2_147456[(alu22+1160)]; |
| var val27 = data2_147456[(alu22+2304)]; |
| var val28 = data2_147456[(alu22+2305)]; |
| var val29 = data2_147456[(alu22+2306)]; |
| var val30 = data2_147456[(alu22+2307)]; |
| var val31 = data2_147456[(alu22+2308)]; |
| var val32 = data2_147456[(alu22+2309)]; |
| var val33 = data2_147456[(alu22+2310)]; |
| var val34 = data2_147456[(alu22+2311)]; |
| var val35 = data2_147456[(alu22+2312)]; |
| var val36 = data2_147456[(alu22+3456)]; |
| var val37 = data2_147456[(alu22+3457)]; |
| var val38 = data2_147456[(alu22+3458)]; |
| var val39 = data2_147456[(alu22+3459)]; |
| var val40 = data2_147456[(alu22+3460)]; |
| var val41 = data2_147456[(alu22+3461)]; |
| var val42 = data2_147456[(alu22+3462)]; |
| var val43 = data2_147456[(alu22+3463)]; |
| var val44 = data2_147456[(alu22+3464)]; |
| var val45 = select(0.0f, data1_100352[(alu21+-26)], alu4); |
| var val46 = data1_100352[(alu21+2)]; |
| var val47 = select(0.0f, data1_100352[(alu21+30)], alu2); |
| var val48 = select(0.0f, data1_100352[(alu21+-25)], alu4); |
| var val49 = data1_100352[(alu21+3)]; |
| var val50 = select(0.0f, data1_100352[(alu21+31)], alu2); |
| var val51 = select(0.0f, data1_100352[(alu21+-24)], (alu1&alu4)); |
| var val52 = select(0.0f, data1_100352[(alu21+4)], alu1); |
| var val53 = select(0.0f, data1_100352[(alu21+32)], (alu1&alu2)); |
| acc0[0] = (acc0[0]+(val0*val2)+(val3*val1)+(val4*val5)+(val6*val7)+(val10*val11)+(val8*val12)+(val13*val14)+(val9*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val3*val19)+(val4*val20)+(val6*val21)+(val10*val22)+(val8*val23)+(val13*val24)+(val9*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val3*val28)+(val4*val29)+(val6*val30)+(val10*val31)+(val8*val32)+(val13*val33)+(val9*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val3*val37)+(val4*val38)+(val6*val39)+(val10*val40)+(val8*val41)+(val13*val42)+(val9*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val3*val2)+(val4*val1)+(val45*val5)+(val10*val7)+(val8*val11)+(val46*val12)+(val9*val14)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val3*val18)+(val4*val19)+(val45*val20)+(val10*val21)+(val8*val22)+(val46*val23)+(val9*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val3*val27)+(val4*val28)+(val45*val29)+(val10*val30)+(val8*val31)+(val46*val32)+(val9*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val3*val36)+(val4*val37)+(val45*val38)+(val10*val39)+(val8*val40)+(val46*val41)+(val9*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val4*val2)+(val45*val1)+(val48*val5)+(val8*val7)+(val46*val11)+(val49*val12)+(val16*val14)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val4*val18)+(val45*val19)+(val48*val20)+(val8*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val4*val27)+(val45*val28)+(val48*val29)+(val8*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val4*val36)+(val45*val37)+(val48*val38)+(val8*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val2)+(val48*val1)+(val51*val5)+(val46*val7)+(val49*val11)+(val52*val12)+(val47*val14)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var cast0 = bitcast<i32>((bitcast<u32>(lidx0)<<2u)); |
| var val54 = data3_128[cast0]; |
| var val55 = data4_128[cast0]; |
| var alu40 = (cast0+1); |
| var val56 = data3_128[alu40]; |
| var val57 = data4_128[alu40]; |
| var alu41 = (cast0+2); |
| var val58 = data3_128[alu41]; |
| var val59 = data4_128[alu41]; |
| var alu42 = (cast0+3); |
| var val60 = data3_128[alu42]; |
| var val61 = data4_128[alu42]; |
| var alu43 = (alu0+(lidx0*3136)); |
| var alu44 = (acc0[1]+val56); |
| var alu45 = (acc0[5]+val56); |
| var alu46 = (acc0[9]+val56); |
| var alu47 = (acc0[13]+val56); |
| var alu48 = select((alu44*val57),alu44,(0.0f<alu44)); |
| var alu49 = select((alu45*val57),alu45,(0.0f<alu45)); |
| var alu50 = select((alu46*val57),alu46,(0.0f<alu46)); |
| var alu51 = select((alu47*val57),alu47,(0.0f<alu47)); |
| data0_100352[(alu43+784)] = alu48; |
| data0_100352[(alu43+785)] = alu49; |
| data0_100352[(alu43+786)] = alu50; |
| data0_100352[(alu43+787)] = alu51; |
| var alu56 = (acc0[2]+val58); |
| var alu57 = (acc0[6]+val58); |
| var alu58 = (acc0[10]+val58); |
| var alu59 = (acc0[14]+val58); |
| var alu60 = select((alu56*val59),alu56,(0.0f<alu56)); |
| var alu61 = select((alu57*val59),alu57,(0.0f<alu57)); |
| var alu62 = select((alu58*val59),alu58,(0.0f<alu58)); |
| var alu63 = select((alu59*val59),alu59,(0.0f<alu59)); |
| data0_100352[(alu43+1568)] = alu60; |
| data0_100352[(alu43+1569)] = alu61; |
| data0_100352[(alu43+1570)] = alu62; |
| data0_100352[(alu43+1571)] = alu63; |
| var alu68 = (acc0[3]+val60); |
| var alu69 = (acc0[7]+val60); |
| var alu70 = (acc0[11]+val60); |
| var alu71 = (acc0[15]+val60); |
| var alu72 = select((alu68*val61),alu68,(0.0f<alu68)); |
| var alu73 = select((alu69*val61),alu69,(0.0f<alu69)); |
| var alu74 = select((alu70*val61),alu70,(0.0f<alu70)); |
| var alu75 = select((alu71*val61),alu71,(0.0f<alu71)); |
| data0_100352[(alu43+2352)] = alu72; |
| data0_100352[(alu43+2353)] = alu73; |
| data0_100352[(alu43+2354)] = alu74; |
| data0_100352[(alu43+2355)] = alu75; |
| var alu80 = (acc0[0]+val54); |
| var alu81 = (acc0[4]+val54); |
| var alu82 = (acc0[8]+val54); |
| var alu83 = (acc0[12]+val54); |
| var alu84 = select((alu80*val55),alu80,(0.0f<alu80)); |
| var alu85 = select((alu81*val55),alu81,(0.0f<alu81)); |
| var alu86 = select((alu82*val55),alu82,(0.0f<alu82)); |
| var alu87 = select((alu83*val55),alu83,(0.0f<alu83)); |
| data0_100352[(alu43+1)] = alu85; |
| data0_100352[(alu43+2)] = alu86; |
| data0_100352[(alu43+3)] = alu87; |
| data0_100352[alu43] = alu84; |
| }`; |
|
|
| const r_7_7_32_4_4_4_128_3_3n1 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_100352:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_100352:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_147456:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_128:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_100352:array<f32>; |
| @compute @workgroup_size(32,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 4 */ |
| var alu0 = ((gidx1*112)+(lidx1*28)+bitcast<i32>((bitcast<u32>(gidx0)<<2u))); |
| var alu1 = (gidx0<6); |
| var alu2 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<2u)))<27); |
| var alu3 = (0<gidx0); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 128; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*784)); |
| var val0 = select(0.0f, data1_100352[(alu21+-29)], (alu3&alu4)); |
| var alu22 = ((lidx0*4608)+(Ridx0*9)); |
| var val1 = data2_147456[(alu22+1)]; |
| var val2 = data2_147456[alu22]; |
| var val3 = select(0.0f, data1_100352[(alu21+-28)], alu4); |
| var val4 = select(0.0f, data1_100352[(alu21+-27)], alu4); |
| var val5 = data2_147456[(alu22+2)]; |
| var val6 = select(0.0f, data1_100352[(alu21+-1)], alu3); |
| var val7 = data2_147456[(alu22+3)]; |
| var val8 = data1_100352[(alu21+1)]; |
| var val9 = select(0.0f, data1_100352[(alu21+28)], alu2); |
| var val10 = data1_100352[alu21]; |
| var val11 = data2_147456[(alu22+4)]; |
| var val12 = data2_147456[(alu22+5)]; |
| var val13 = select(0.0f, data1_100352[(alu21+27)], (alu3&alu2)); |
| var val14 = data2_147456[(alu22+6)]; |
| var val15 = data2_147456[(alu22+7)]; |
| var val16 = select(0.0f, data1_100352[(alu21+29)], alu2); |
| var val17 = data2_147456[(alu22+8)]; |
| var val18 = data2_147456[(alu22+1152)]; |
| var val19 = data2_147456[(alu22+1153)]; |
| var val20 = data2_147456[(alu22+1154)]; |
| var val21 = data2_147456[(alu22+1155)]; |
| var val22 = data2_147456[(alu22+1156)]; |
| var val23 = data2_147456[(alu22+1157)]; |
| var val24 = data2_147456[(alu22+1158)]; |
| var val25 = data2_147456[(alu22+1159)]; |
| var val26 = data2_147456[(alu22+1160)]; |
| var val27 = data2_147456[(alu22+2304)]; |
| var val28 = data2_147456[(alu22+2305)]; |
| var val29 = data2_147456[(alu22+2306)]; |
| var val30 = data2_147456[(alu22+2307)]; |
| var val31 = data2_147456[(alu22+2308)]; |
| var val32 = data2_147456[(alu22+2309)]; |
| var val33 = data2_147456[(alu22+2310)]; |
| var val34 = data2_147456[(alu22+2311)]; |
| var val35 = data2_147456[(alu22+2312)]; |
| var val36 = data2_147456[(alu22+3456)]; |
| var val37 = data2_147456[(alu22+3457)]; |
| var val38 = data2_147456[(alu22+3458)]; |
| var val39 = data2_147456[(alu22+3459)]; |
| var val40 = data2_147456[(alu22+3460)]; |
| var val41 = data2_147456[(alu22+3461)]; |
| var val42 = data2_147456[(alu22+3462)]; |
| var val43 = data2_147456[(alu22+3463)]; |
| var val44 = data2_147456[(alu22+3464)]; |
| var val45 = select(0.0f, data1_100352[(alu21+-26)], alu4); |
| var val46 = data1_100352[(alu21+2)]; |
| var val47 = select(0.0f, data1_100352[(alu21+30)], alu2); |
| var val48 = select(0.0f, data1_100352[(alu21+-25)], alu4); |
| var val49 = data1_100352[(alu21+3)]; |
| var val50 = select(0.0f, data1_100352[(alu21+31)], alu2); |
| var val51 = select(0.0f, data1_100352[(alu21+-24)], (alu1&alu4)); |
| var val52 = select(0.0f, data1_100352[(alu21+4)], alu1); |
| var val53 = select(0.0f, data1_100352[(alu21+32)], (alu1&alu2)); |
| acc0[0] = (acc0[0]+(val0*val2)+(val3*val1)+(val4*val5)+(val6*val7)+(val10*val11)+(val8*val12)+(val13*val14)+(val9*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val3*val19)+(val4*val20)+(val6*val21)+(val10*val22)+(val8*val23)+(val13*val24)+(val9*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val3*val28)+(val4*val29)+(val6*val30)+(val10*val31)+(val8*val32)+(val13*val33)+(val9*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val3*val37)+(val4*val38)+(val6*val39)+(val10*val40)+(val8*val41)+(val13*val42)+(val9*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val3*val2)+(val4*val1)+(val45*val5)+(val10*val7)+(val8*val11)+(val46*val12)+(val9*val14)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val3*val18)+(val4*val19)+(val45*val20)+(val10*val21)+(val8*val22)+(val46*val23)+(val9*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val3*val27)+(val4*val28)+(val45*val29)+(val10*val30)+(val8*val31)+(val46*val32)+(val9*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val3*val36)+(val4*val37)+(val45*val38)+(val10*val39)+(val8*val40)+(val46*val41)+(val9*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val4*val2)+(val45*val1)+(val48*val5)+(val8*val7)+(val46*val11)+(val49*val12)+(val16*val14)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val4*val18)+(val45*val19)+(val48*val20)+(val8*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val4*val27)+(val45*val28)+(val48*val29)+(val8*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val4*val36)+(val45*val37)+(val48*val38)+(val8*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val2)+(val48*val1)+(val51*val5)+(val46*val7)+(val49*val11)+(val52*val12)+(val47*val14)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var cast0 = bitcast<i32>((bitcast<u32>(lidx0)<<2u)); |
| var val54 = data3_128[cast0]; |
| var alu40 = (alu0+(lidx0*3136)); |
| var alu41 = (alu40+1); |
| var val55 = data4_100352[alu41]; |
| var alu42 = (alu40+2); |
| var val56 = data4_100352[alu42]; |
| var val57 = data4_100352[alu40]; |
| var alu43 = (alu40+3); |
| var val58 = data4_100352[alu43]; |
| var val59 = data3_128[(cast0+1)]; |
| var alu44 = (alu40+784); |
| var val60 = data4_100352[alu44]; |
| var alu45 = (alu40+785); |
| var val61 = data4_100352[alu45]; |
| var alu46 = (alu40+786); |
| var val62 = data4_100352[alu46]; |
| var alu47 = (alu40+787); |
| var val63 = data4_100352[alu47]; |
| var val64 = data3_128[(cast0+2)]; |
| var alu48 = (alu40+1568); |
| var val65 = data4_100352[alu48]; |
| var alu49 = (alu40+1569); |
| var val66 = data4_100352[alu49]; |
| var alu50 = (alu40+1570); |
| var val67 = data4_100352[alu50]; |
| var alu51 = (alu40+1571); |
| var val68 = data4_100352[alu51]; |
| var val69 = data3_128[(cast0+3)]; |
| var alu52 = (alu40+2352); |
| var val70 = data4_100352[alu52]; |
| var alu53 = (alu40+2353); |
| var val71 = data4_100352[alu53]; |
| var alu54 = (alu40+2354); |
| var val72 = data4_100352[alu54]; |
| var alu55 = (alu40+2355); |
| var val73 = data4_100352[alu55]; |
| data0_100352[alu44] = (acc0[1]+val59+val60); |
| data0_100352[alu45] = (acc0[5]+val59+val61); |
| data0_100352[alu46] = (acc0[9]+val59+val62); |
| data0_100352[alu47] = (acc0[13]+val59+val63); |
| data0_100352[alu48] = (acc0[2]+val64+val65); |
| data0_100352[alu49] = (acc0[6]+val64+val66); |
| data0_100352[alu50] = (acc0[10]+val64+val67); |
| data0_100352[alu51] = (acc0[14]+val64+val68); |
| data0_100352[alu52] = (acc0[3]+val69+val70); |
| data0_100352[alu53] = (acc0[7]+val69+val71); |
| data0_100352[alu54] = (acc0[11]+val69+val72); |
| data0_100352[alu55] = (acc0[15]+val69+val73); |
| data0_100352[alu41] = (acc0[4]+val54+val55); |
| data0_100352[alu42] = (acc0[8]+val54+val56); |
| data0_100352[alu43] = (acc0[12]+val54+val58); |
| data0_100352[alu40] = (acc0[0]+val54+val57); |
| }`; |
|
|
| const r_2_7_7_32_4_4_4_128_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_200704:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_100352:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_294912:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_256:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_256:array<f32>; |
| @compute @workgroup_size(32,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,16>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 4 */ |
| var alu0 = ((gidx1*112)+(lidx1*28)+bitcast<i32>((bitcast<u32>(gidx0)<<2u))); |
| var alu1 = (gidx0<6); |
| var alu2 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<2u)))<27); |
| var alu3 = (0<gidx0); |
| var alu4 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 128; Ridx0++) { |
| var alu21 = (alu0+(Ridx0*784)); |
| var val0 = select(0.0f, data1_100352[(alu21+-29)], (alu3&alu4)); |
| var alu22 = ((gidx2*147456)+(lidx0*4608)+(Ridx0*9)); |
| var val1 = data2_294912[alu22]; |
| var val2 = select(0.0f, data1_100352[(alu21+-28)], alu4); |
| var val3 = data2_294912[(alu22+1)]; |
| var val4 = select(0.0f, data1_100352[(alu21+-27)], alu4); |
| var val5 = data2_294912[(alu22+2)]; |
| var val6 = select(0.0f, data1_100352[(alu21+-1)], alu3); |
| var val7 = data2_294912[(alu22+3)]; |
| var val8 = data1_100352[(alu21+1)]; |
| var val9 = select(0.0f, data1_100352[(alu21+27)], (alu3&alu2)); |
| var val10 = data1_100352[alu21]; |
| var val11 = data2_294912[(alu22+4)]; |
| var val12 = data2_294912[(alu22+5)]; |
| var val13 = data2_294912[(alu22+6)]; |
| var val14 = select(0.0f, data1_100352[(alu21+28)], alu2); |
| var val15 = data2_294912[(alu22+7)]; |
| var val16 = select(0.0f, data1_100352[(alu21+29)], alu2); |
| var val17 = data2_294912[(alu22+8)]; |
| var val18 = data2_294912[(alu22+1152)]; |
| var val19 = data2_294912[(alu22+1153)]; |
| var val20 = data2_294912[(alu22+1154)]; |
| var val21 = data2_294912[(alu22+1155)]; |
| var val22 = data2_294912[(alu22+1156)]; |
| var val23 = data2_294912[(alu22+1157)]; |
| var val24 = data2_294912[(alu22+1158)]; |
| var val25 = data2_294912[(alu22+1159)]; |
| var val26 = data2_294912[(alu22+1160)]; |
| var val27 = data2_294912[(alu22+2304)]; |
| var val28 = data2_294912[(alu22+2305)]; |
| var val29 = data2_294912[(alu22+2306)]; |
| var val30 = data2_294912[(alu22+2307)]; |
| var val31 = data2_294912[(alu22+2308)]; |
| var val32 = data2_294912[(alu22+2309)]; |
| var val33 = data2_294912[(alu22+2310)]; |
| var val34 = data2_294912[(alu22+2311)]; |
| var val35 = data2_294912[(alu22+2312)]; |
| var val36 = data2_294912[(alu22+3456)]; |
| var val37 = data2_294912[(alu22+3457)]; |
| var val38 = data2_294912[(alu22+3458)]; |
| var val39 = data2_294912[(alu22+3459)]; |
| var val40 = data2_294912[(alu22+3460)]; |
| var val41 = data2_294912[(alu22+3461)]; |
| var val42 = data2_294912[(alu22+3462)]; |
| var val43 = data2_294912[(alu22+3463)]; |
| var val44 = data2_294912[(alu22+3464)]; |
| var val45 = select(0.0f, data1_100352[(alu21+-26)], alu4); |
| var val46 = data1_100352[(alu21+2)]; |
| var val47 = select(0.0f, data1_100352[(alu21+30)], alu2); |
| var val48 = select(0.0f, data1_100352[(alu21+-25)], alu4); |
| var val49 = data1_100352[(alu21+3)]; |
| var val50 = select(0.0f, data1_100352[(alu21+31)], alu2); |
| var val51 = select(0.0f, data1_100352[(alu21+-24)], (alu1&alu4)); |
| var val52 = select(0.0f, data1_100352[(alu21+4)], alu1); |
| var val53 = select(0.0f, data1_100352[(alu21+32)], (alu1&alu2)); |
| acc0[0] = (acc0[0]+(val0*val1)+(val2*val3)+(val4*val5)+(val6*val7)+(val10*val11)+(val8*val12)+(val9*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val2*val19)+(val4*val20)+(val6*val21)+(val10*val22)+(val8*val23)+(val9*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val2*val28)+(val4*val29)+(val6*val30)+(val10*val31)+(val8*val32)+(val9*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val2*val37)+(val4*val38)+(val6*val39)+(val10*val40)+(val8*val41)+(val9*val42)+(val14*val43)+(val16*val44)); |
| acc0[4] = (acc0[4]+(val2*val1)+(val4*val3)+(val45*val5)+(val10*val7)+(val8*val11)+(val46*val12)+(val14*val13)+(val16*val15)+(val47*val17)); |
| acc0[5] = (acc0[5]+(val2*val18)+(val4*val19)+(val45*val20)+(val10*val21)+(val8*val22)+(val46*val23)+(val14*val24)+(val16*val25)+(val47*val26)); |
| acc0[6] = (acc0[6]+(val2*val27)+(val4*val28)+(val45*val29)+(val10*val30)+(val8*val31)+(val46*val32)+(val14*val33)+(val16*val34)+(val47*val35)); |
| acc0[7] = (acc0[7]+(val2*val36)+(val4*val37)+(val45*val38)+(val10*val39)+(val8*val40)+(val46*val41)+(val14*val42)+(val16*val43)+(val47*val44)); |
| acc0[8] = (acc0[8]+(val4*val1)+(val45*val3)+(val48*val5)+(val8*val7)+(val46*val11)+(val49*val12)+(val16*val13)+(val47*val15)+(val50*val17)); |
| acc0[9] = (acc0[9]+(val4*val18)+(val45*val19)+(val48*val20)+(val8*val21)+(val46*val22)+(val49*val23)+(val16*val24)+(val47*val25)+(val50*val26)); |
| acc0[10] = (acc0[10]+(val4*val27)+(val45*val28)+(val48*val29)+(val8*val30)+(val46*val31)+(val49*val32)+(val16*val33)+(val47*val34)+(val50*val35)); |
| acc0[11] = (acc0[11]+(val4*val36)+(val45*val37)+(val48*val38)+(val8*val39)+(val46*val40)+(val49*val41)+(val16*val42)+(val47*val43)+(val50*val44)); |
| acc0[12] = (acc0[12]+(val45*val1)+(val48*val3)+(val51*val5)+(val46*val7)+(val49*val11)+(val52*val12)+(val47*val13)+(val50*val15)+(val53*val17)); |
| acc0[13] = (acc0[13]+(val45*val18)+(val48*val19)+(val51*val20)+(val46*val21)+(val49*val22)+(val52*val23)+(val47*val24)+(val50*val25)+(val53*val26)); |
| acc0[14] = (acc0[14]+(val45*val27)+(val48*val28)+(val51*val29)+(val46*val30)+(val49*val31)+(val52*val32)+(val47*val33)+(val50*val34)+(val53*val35)); |
| acc0[15] = (acc0[15]+(val45*val36)+(val48*val37)+(val51*val38)+(val46*val39)+(val49*val40)+(val52*val41)+(val47*val42)+(val50*val43)+(val53*val44)); |
| } |
| var alu40 = (bitcast<i32>((bitcast<u32>(gidx2)<<7u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val54 = data3_256[alu40]; |
| var val55 = data4_256[alu40]; |
| var alu41 = (alu40+1); |
| var val56 = data3_256[alu41]; |
| var alu42 = (alu40+2); |
| var val57 = data3_256[alu42]; |
| var val58 = data4_256[alu41]; |
| var val59 = data4_256[alu42]; |
| var alu43 = (alu40+3); |
| var val60 = data3_256[alu43]; |
| var val61 = data4_256[alu43]; |
| var alu44 = (alu0+(gidx2*100352)+(lidx0*3136)); |
| var alu45 = (acc0[1]+val56); |
| var alu46 = (acc0[5]+val56); |
| var alu47 = (acc0[9]+val56); |
| var alu48 = (acc0[13]+val56); |
| var alu49 = select((alu45*val58),alu45,(0.0f<alu45)); |
| var alu50 = select((alu46*val58),alu46,(0.0f<alu46)); |
| var alu51 = select((alu47*val58),alu47,(0.0f<alu47)); |
| var alu52 = select((alu48*val58),alu48,(0.0f<alu48)); |
| data0_200704[(alu44+784)] = alu49; |
| data0_200704[(alu44+785)] = alu50; |
| data0_200704[(alu44+786)] = alu51; |
| data0_200704[(alu44+787)] = alu52; |
| var alu57 = (acc0[2]+val57); |
| var alu58 = (acc0[6]+val57); |
| var alu59 = (acc0[10]+val57); |
| var alu60 = (acc0[14]+val57); |
| var alu61 = select((alu57*val59),alu57,(0.0f<alu57)); |
| var alu62 = select((alu58*val59),alu58,(0.0f<alu58)); |
| var alu63 = select((alu59*val59),alu59,(0.0f<alu59)); |
| var alu64 = select((alu60*val59),alu60,(0.0f<alu60)); |
| data0_200704[(alu44+1568)] = alu61; |
| data0_200704[(alu44+1569)] = alu62; |
| data0_200704[(alu44+1570)] = alu63; |
| data0_200704[(alu44+1571)] = alu64; |
| var alu69 = (acc0[3]+val60); |
| var alu70 = (acc0[7]+val60); |
| var alu71 = (acc0[11]+val60); |
| var alu72 = (acc0[15]+val60); |
| var alu73 = select((alu69*val61),alu69,(0.0f<alu69)); |
| var alu74 = select((alu70*val61),alu70,(0.0f<alu70)); |
| var alu75 = select((alu71*val61),alu71,(0.0f<alu71)); |
| var alu76 = select((alu72*val61),alu72,(0.0f<alu72)); |
| data0_200704[(alu44+2352)] = alu73; |
| data0_200704[(alu44+2353)] = alu74; |
| data0_200704[(alu44+2354)] = alu75; |
| data0_200704[(alu44+2355)] = alu76; |
| var alu81 = (acc0[0]+val54); |
| var alu82 = (acc0[4]+val54); |
| var alu83 = (acc0[8]+val54); |
| var alu84 = (acc0[12]+val54); |
| var alu85 = select((alu81*val55),alu81,(0.0f<alu81)); |
| var alu86 = select((alu82*val55),alu82,(0.0f<alu82)); |
| var alu87 = select((alu83*val55),alu83,(0.0f<alu83)); |
| var alu88 = select((alu84*val55),alu84,(0.0f<alu84)); |
| data0_200704[(alu44+1)] = alu86; |
| data0_200704[(alu44+2)] = alu87; |
| data0_200704[(alu44+3)] = alu88; |
| data0_200704[alu44] = alu85; |
| }`; |
|
|
| const r_2_7_7_32_2_2_4_256_3_3_32_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_50176:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_200704:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_589824:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_256:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_100352:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_32768:array<f32>; |
| @group(0) @binding(7)var<storage,read_write>data6_256:array<f32>; |
| @compute @workgroup_size(32,2,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,4>; |
| var acc1: array<f32,4>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 2 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var cast0 = bitcast<u32>(gidx0); |
| var alu0 = (bitcast<i32>((cast0<<2u))+bitcast<i32>((bitcast<u32>(lidx2)<<1u))); |
| var alu1 = ((gidx1*112)+(lidx1*56)); |
| acc1[0] = 0.0f; |
| acc1[1] = 0.0f; |
| acc1[2] = 0.0f; |
| acc1[3] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 256; Ridx0++) { |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { |
| for (var Ridx2 = 0; Ridx2 < 3; Ridx2++) { |
| var val0 = select(0.0f, data1_200704[(alu0+Ridx2+alu1+(Ridx1*28)+(Ridx0*784)+-29)], ((0<(gidx0+lidx2+Ridx2))&(0<(gidx1+lidx1+Ridx1)))); |
| var alu6 = ((Ridx1*3)+Ridx2+(Ridx0*9)+(gidx2*294912)+(lidx0*9216)); |
| var val1 = data2_589824[alu6]; |
| var val2 = data2_589824[(alu6+2304)]; |
| var val3 = data2_589824[(alu6+4608)]; |
| var val4 = data2_589824[(alu6+6912)]; |
| acc1[0] = (acc1[0]+(val0*val1)); |
| acc1[1] = (acc1[1]+(val0*val2)); |
| acc1[2] = (acc1[2]+(val0*val3)); |
| acc1[3] = (acc1[3]+(val0*val4)); |
| } |
| } |
| } |
| var cast1 = bitcast<u32>(gidx2); |
| var cast2 = bitcast<u32>(lidx0); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| for (var Ridx3 = 0; Ridx3 < 32; Ridx3++) { |
| var alu18 = (alu0+alu1+(Ridx3*3136)); |
| var val5 = data4_100352[alu18]; |
| var alu19 = (bitcast<i32>((cast1<<14u))+bitcast<i32>((cast2<<9u))+bitcast<i32>((bitcast<u32>(Ridx3)<<2u))); |
| var val6 = data5_32768[alu19]; |
| var val7 = data4_100352[(alu18+784)]; |
| var val8 = data5_32768[(alu19+1)]; |
| var val9 = data4_100352[(alu18+1568)]; |
| var val10 = data5_32768[(alu19+2)]; |
| var val11 = data4_100352[(alu18+2352)]; |
| var val12 = data5_32768[(alu19+3)]; |
| var val13 = data5_32768[(alu19+128)]; |
| var val14 = data5_32768[(alu19+129)]; |
| var val15 = data5_32768[(alu19+130)]; |
| var val16 = data5_32768[(alu19+131)]; |
| var val17 = data5_32768[(alu19+256)]; |
| var val18 = data5_32768[(alu19+257)]; |
| var val19 = data5_32768[(alu19+258)]; |
| var val20 = data5_32768[(alu19+259)]; |
| var val21 = data5_32768[(alu19+384)]; |
| var val22 = data5_32768[(alu19+385)]; |
| var val23 = data5_32768[(alu19+386)]; |
| var val24 = data5_32768[(alu19+387)]; |
| acc0[0] = (acc0[0]+(val5*val6)+(val7*val8)+(val9*val10)+(val11*val12)); |
| acc0[1] = (acc0[1]+(val5*val13)+(val7*val14)+(val9*val15)+(val11*val16)); |
| acc0[2] = (acc0[2]+(val5*val17)+(val7*val18)+(val9*val19)+(val11*val20)); |
| acc0[3] = (acc0[3]+(val5*val21)+(val7*val22)+(val9*val23)+(val11*val24)); |
| } |
| var alu25 = (bitcast<i32>((cast1<<7u))+bitcast<i32>((cast2<<2u))); |
| var val25 = data3_256[alu25]; |
| var val26 = data6_256[alu25]; |
| var alu26 = (alu25+1); |
| var val27 = data3_256[alu26]; |
| var val28 = data6_256[alu26]; |
| var alu27 = (alu25+2); |
| var val29 = data3_256[alu27]; |
| var alu28 = (alu25+3); |
| var val30 = data3_256[alu28]; |
| var val31 = data6_256[alu27]; |
| var val32 = data6_256[alu28]; |
| var alu29 = (lidx2+bitcast<i32>((cast0<<1u))+(gidx1*28)+(lidx1*14)+(gidx2*25088)+(lidx0*784)); |
| data0_50176[alu29] = (acc1[0]+val25+acc0[0]+val26); |
| data0_50176[(alu29+196)] = (acc1[1]+val27+acc0[1]+val28); |
| data0_50176[(alu29+392)] = (acc1[2]+val29+acc0[2]+val31); |
| data0_50176[(alu29+588)] = (acc1[3]+val30+acc0[3]+val32); |
| }`; |
|
|
| const E_8_49_32_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_50176:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_50176:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_256:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_256:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_256:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_256:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var gidx0 = i32(gindex.x); /* 49 */ |
| var gidx1 = i32(gindex.y); /* 8 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var alu0 = ((gidx1*6272)+(lidx0*196)+bitcast<i32>((bitcast<u32>(gidx0)<<2u))); |
| var val0 = data1_50176[alu0]; |
| var alu1 = (lidx0+bitcast<i32>((bitcast<u32>(gidx1)<<5u))); |
| var val1 = data2_256[alu1]; |
| var val2 = data3_256[alu1]; |
| var val3 = data4_256[alu1]; |
| var val4 = data5_256[alu1]; |
| var alu2 = (alu0+1); |
| var val5 = data1_50176[alu2]; |
| var alu3 = (alu0+2); |
| var val6 = data1_50176[alu3]; |
| var alu4 = (alu0+3); |
| var val7 = data1_50176[alu4]; |
| var alu5 = (1/sqrt((val3+9.999999747378752e-06f))); |
| data0_50176[alu2] = (((val5-val1)*val2*alu5)+val4); |
| data0_50176[alu3] = (((val6-val1)*val2*alu5)+val4); |
| data0_50176[alu4] = (((val7-val1)*val2*alu5)+val4); |
| data0_50176[alu0] = (((val0-val1)*val2*alu5)+val4); |
| }`; |
|
|
| const r_2_7_7_32_2_2_4_256_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_50176:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_50176:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_589824:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_256:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_256:array<f32>; |
| @compute @workgroup_size(32,2,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,4>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 2 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var alu0 = (lidx2+bitcast<i32>((bitcast<u32>(gidx0)<<1u))); |
| var alu1 = (alu0+(gidx1*28)+(lidx1*14)); |
| var alu2 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<1u)))<13); |
| var alu3 = (alu0<13); |
| var alu4 = (0<(gidx0+lidx2)); |
| var alu5 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 256; Ridx0++) { |
| var alu10 = (alu1+(Ridx0*196)); |
| var val0 = data1_50176[alu10]; |
| var val1 = select(0.0f, data1_50176[(alu10+-15)], (alu4&alu5)); |
| var alu11 = ((gidx2*294912)+(lidx0*9216)+(Ridx0*9)); |
| var val2 = data2_589824[(alu11+4)]; |
| var val3 = data2_589824[alu11]; |
| var val4 = select(0.0f, data1_50176[(alu10+-14)], alu5); |
| var val5 = data2_589824[(alu11+1)]; |
| var val6 = select(0.0f, data1_50176[(alu10+-13)], (alu3&alu5)); |
| var val7 = data2_589824[(alu11+2)]; |
| var val8 = select(0.0f, data1_50176[(alu10+-1)], alu4); |
| var val9 = data2_589824[(alu11+3)]; |
| var val10 = select(0.0f, data1_50176[(alu10+1)], alu3); |
| var val11 = data2_589824[(alu11+5)]; |
| var val12 = select(0.0f, data1_50176[(alu10+13)], (alu4&alu2)); |
| var val13 = data2_589824[(alu11+6)]; |
| var val14 = select(0.0f, data1_50176[(alu10+14)], alu2); |
| var val15 = data2_589824[(alu11+7)]; |
| var val16 = select(0.0f, data1_50176[(alu10+15)], (alu3&alu2)); |
| var val17 = data2_589824[(alu11+8)]; |
| var val18 = data2_589824[(alu11+2304)]; |
| var val19 = data2_589824[(alu11+2305)]; |
| var val20 = data2_589824[(alu11+2306)]; |
| var val21 = data2_589824[(alu11+2307)]; |
| var val22 = data2_589824[(alu11+2308)]; |
| var val23 = data2_589824[(alu11+2309)]; |
| var val24 = data2_589824[(alu11+2310)]; |
| var val25 = data2_589824[(alu11+2311)]; |
| var val26 = data2_589824[(alu11+2312)]; |
| var val27 = data2_589824[(alu11+4608)]; |
| var val28 = data2_589824[(alu11+4609)]; |
| var val29 = data2_589824[(alu11+4610)]; |
| var val30 = data2_589824[(alu11+4611)]; |
| var val31 = data2_589824[(alu11+4612)]; |
| var val32 = data2_589824[(alu11+4613)]; |
| var val33 = data2_589824[(alu11+4614)]; |
| var val34 = data2_589824[(alu11+4615)]; |
| var val35 = data2_589824[(alu11+4616)]; |
| var val36 = data2_589824[(alu11+6912)]; |
| var val37 = data2_589824[(alu11+6913)]; |
| var val38 = data2_589824[(alu11+6914)]; |
| var val39 = data2_589824[(alu11+6915)]; |
| var val40 = data2_589824[(alu11+6916)]; |
| var val41 = data2_589824[(alu11+6917)]; |
| var val42 = data2_589824[(alu11+6918)]; |
| var val43 = data2_589824[(alu11+6919)]; |
| var val44 = data2_589824[(alu11+6920)]; |
| acc0[0] = (acc0[0]+(val1*val3)+(val4*val5)+(val6*val7)+(val8*val9)+(val0*val2)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val1*val18)+(val4*val19)+(val6*val20)+(val8*val21)+(val0*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val1*val27)+(val4*val28)+(val6*val29)+(val8*val30)+(val0*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val1*val36)+(val4*val37)+(val6*val38)+(val8*val39)+(val0*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| } |
| var alu17 = (bitcast<i32>((bitcast<u32>(gidx2)<<7u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val45 = data3_256[alu17]; |
| var val46 = data4_256[alu17]; |
| var alu18 = (alu17+1); |
| var val47 = data3_256[alu18]; |
| var alu19 = (alu17+2); |
| var val48 = data3_256[alu19]; |
| var val49 = data4_256[alu18]; |
| var val50 = data4_256[alu19]; |
| var alu20 = (alu17+3); |
| var val51 = data3_256[alu20]; |
| var val52 = data4_256[alu20]; |
| var alu21 = (alu1+(gidx2*25088)+(lidx0*784)); |
| var alu22 = (acc0[0]+val45); |
| var alu23 = (acc0[1]+val47); |
| var alu24 = (acc0[2]+val48); |
| var alu25 = (acc0[3]+val51); |
| var alu26 = select((alu22*val46),alu22,(0.0f<alu22)); |
| var alu27 = select((alu23*val49),alu23,(0.0f<alu23)); |
| var alu28 = select((alu24*val50),alu24,(0.0f<alu24)); |
| var alu29 = select((alu25*val52),alu25,(0.0f<alu25)); |
| data0_50176[alu21] = alu26; |
| data0_50176[(alu21+196)] = alu27; |
| data0_50176[(alu21+392)] = alu28; |
| data0_50176[(alu21+588)] = alu29; |
| }`; |
|
|
| const r_2_7_7_32_2_2_4_256_3_3n1 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_50176:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_50176:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_589824:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_256:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_50176:array<f32>; |
| @compute @workgroup_size(32,2,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,4>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 2 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 2 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var alu0 = (lidx2+bitcast<i32>((bitcast<u32>(gidx0)<<1u))); |
| var alu1 = (alu0+(gidx1*28)+(lidx1*14)); |
| var alu2 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<1u)))<13); |
| var alu3 = (alu0<13); |
| var alu4 = (0<(gidx0+lidx2)); |
| var alu5 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 256; Ridx0++) { |
| var alu10 = (alu1+(Ridx0*196)); |
| var val0 = select(0.0f, data1_50176[(alu10+-15)], (alu4&alu5)); |
| var alu11 = ((gidx2*294912)+(lidx0*9216)+(Ridx0*9)); |
| var val1 = data2_589824[alu11]; |
| var val2 = select(0.0f, data1_50176[(alu10+-14)], alu5); |
| var val3 = data2_589824[(alu11+1)]; |
| var val4 = select(0.0f, data1_50176[(alu10+-13)], (alu3&alu5)); |
| var val5 = data2_589824[(alu11+2)]; |
| var val6 = select(0.0f, data1_50176[(alu10+-1)], alu4); |
| var val7 = data2_589824[(alu11+3)]; |
| var val8 = data1_50176[alu10]; |
| var val9 = data2_589824[(alu11+4)]; |
| var val10 = select(0.0f, data1_50176[(alu10+1)], alu3); |
| var val11 = data2_589824[(alu11+5)]; |
| var val12 = select(0.0f, data1_50176[(alu10+13)], (alu4&alu2)); |
| var val13 = data2_589824[(alu11+6)]; |
| var val14 = select(0.0f, data1_50176[(alu10+14)], alu2); |
| var val15 = data2_589824[(alu11+7)]; |
| var val16 = select(0.0f, data1_50176[(alu10+15)], (alu3&alu2)); |
| var val17 = data2_589824[(alu11+8)]; |
| var val18 = data2_589824[(alu11+2304)]; |
| var val19 = data2_589824[(alu11+2305)]; |
| var val20 = data2_589824[(alu11+2306)]; |
| var val21 = data2_589824[(alu11+2307)]; |
| var val22 = data2_589824[(alu11+2308)]; |
| var val23 = data2_589824[(alu11+2309)]; |
| var val24 = data2_589824[(alu11+2310)]; |
| var val25 = data2_589824[(alu11+2311)]; |
| var val26 = data2_589824[(alu11+2312)]; |
| var val27 = data2_589824[(alu11+4608)]; |
| var val28 = data2_589824[(alu11+4609)]; |
| var val29 = data2_589824[(alu11+4610)]; |
| var val30 = data2_589824[(alu11+4611)]; |
| var val31 = data2_589824[(alu11+4612)]; |
| var val32 = data2_589824[(alu11+4613)]; |
| var val33 = data2_589824[(alu11+4614)]; |
| var val34 = data2_589824[(alu11+4615)]; |
| var val35 = data2_589824[(alu11+4616)]; |
| var val36 = data2_589824[(alu11+6912)]; |
| var val37 = data2_589824[(alu11+6913)]; |
| var val38 = data2_589824[(alu11+6914)]; |
| var val39 = data2_589824[(alu11+6915)]; |
| var val40 = data2_589824[(alu11+6916)]; |
| var val41 = data2_589824[(alu11+6917)]; |
| var val42 = data2_589824[(alu11+6918)]; |
| var val43 = data2_589824[(alu11+6919)]; |
| var val44 = data2_589824[(alu11+6920)]; |
| acc0[0] = (acc0[0]+(val0*val1)+(val2*val3)+(val4*val5)+(val6*val7)+(val8*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val2*val19)+(val4*val20)+(val6*val21)+(val8*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val2*val28)+(val4*val29)+(val6*val30)+(val8*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val2*val37)+(val4*val38)+(val6*val39)+(val8*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| } |
| var alu17 = (bitcast<i32>((bitcast<u32>(gidx2)<<7u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val45 = data3_256[alu17]; |
| var alu18 = (alu1+(gidx2*25088)+(lidx0*784)); |
| var val46 = data4_50176[alu18]; |
| var val47 = data3_256[(alu17+1)]; |
| var alu19 = (alu18+196); |
| var val48 = data4_50176[alu19]; |
| var val49 = data3_256[(alu17+2)]; |
| var alu20 = (alu18+392); |
| var val50 = data4_50176[alu20]; |
| var val51 = data3_256[(alu17+3)]; |
| var alu21 = (alu18+588); |
| var val52 = data4_50176[alu21]; |
| data0_50176[alu18] = (acc0[0]+val45+val46); |
| data0_50176[alu19] = (acc0[1]+val47+val48); |
| data0_50176[alu20] = (acc0[2]+val49+val50); |
| data0_50176[alu21] = (acc0[3]+val51+val52); |
| }`; |
|
|
| const r_4_7_7_32_2_2_4_256_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_100352:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_50176:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_1179648:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_512:array<f32>; |
| @compute @workgroup_size(32,2,2) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,4>; |
| var gidx0 = i32(gindex.x); /* 7 */ |
| var gidx1 = i32(gindex.y); /* 7 */ |
| var gidx2 = i32(gindex.z); /* 4 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var lidx1 = i32(lindex.y); /* 2 */ |
| var lidx2 = i32(lindex.z); /* 2 */ |
| var alu0 = (lidx2+bitcast<i32>((bitcast<u32>(gidx0)<<1u))); |
| var alu1 = (alu0+(gidx1*28)+(lidx1*14)); |
| var alu2 = ((lidx1+bitcast<i32>((bitcast<u32>(gidx1)<<1u)))<13); |
| var alu3 = (alu0<13); |
| var alu4 = (0<(gidx0+lidx2)); |
| var alu5 = (0<(gidx1+lidx1)); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 256; Ridx0++) { |
| var alu10 = (alu1+(Ridx0*196)); |
| var val0 = select(0.0f, data1_50176[(alu10+-15)], (alu4&alu5)); |
| var alu11 = ((gidx2*294912)+(lidx0*9216)+(Ridx0*9)); |
| var val1 = data2_1179648[(alu11+3)]; |
| var val2 = data2_1179648[alu11]; |
| var val3 = data1_50176[alu10]; |
| var val4 = select(0.0f, data1_50176[(alu10+-14)], alu5); |
| var val5 = data2_1179648[(alu11+1)]; |
| var val6 = select(0.0f, data1_50176[(alu10+-13)], (alu3&alu5)); |
| var val7 = data2_1179648[(alu11+2)]; |
| var val8 = select(0.0f, data1_50176[(alu10+-1)], alu4); |
| var val9 = data2_1179648[(alu11+4)]; |
| var val10 = select(0.0f, data1_50176[(alu10+1)], alu3); |
| var val11 = data2_1179648[(alu11+5)]; |
| var val12 = select(0.0f, data1_50176[(alu10+13)], (alu4&alu2)); |
| var val13 = data2_1179648[(alu11+6)]; |
| var val14 = select(0.0f, data1_50176[(alu10+14)], alu2); |
| var val15 = data2_1179648[(alu11+7)]; |
| var val16 = select(0.0f, data1_50176[(alu10+15)], (alu3&alu2)); |
| var val17 = data2_1179648[(alu11+8)]; |
| var val18 = data2_1179648[(alu11+2304)]; |
| var val19 = data2_1179648[(alu11+2305)]; |
| var val20 = data2_1179648[(alu11+2306)]; |
| var val21 = data2_1179648[(alu11+2307)]; |
| var val22 = data2_1179648[(alu11+2308)]; |
| var val23 = data2_1179648[(alu11+2309)]; |
| var val24 = data2_1179648[(alu11+2310)]; |
| var val25 = data2_1179648[(alu11+2311)]; |
| var val26 = data2_1179648[(alu11+2312)]; |
| var val27 = data2_1179648[(alu11+4608)]; |
| var val28 = data2_1179648[(alu11+4609)]; |
| var val29 = data2_1179648[(alu11+4610)]; |
| var val30 = data2_1179648[(alu11+4611)]; |
| var val31 = data2_1179648[(alu11+4612)]; |
| var val32 = data2_1179648[(alu11+4613)]; |
| var val33 = data2_1179648[(alu11+4614)]; |
| var val34 = data2_1179648[(alu11+4615)]; |
| var val35 = data2_1179648[(alu11+4616)]; |
| var val36 = data2_1179648[(alu11+6912)]; |
| var val37 = data2_1179648[(alu11+6913)]; |
| var val38 = data2_1179648[(alu11+6914)]; |
| var val39 = data2_1179648[(alu11+6915)]; |
| var val40 = data2_1179648[(alu11+6916)]; |
| var val41 = data2_1179648[(alu11+6917)]; |
| var val42 = data2_1179648[(alu11+6918)]; |
| var val43 = data2_1179648[(alu11+6919)]; |
| var val44 = data2_1179648[(alu11+6920)]; |
| acc0[0] = (acc0[0]+(val0*val2)+(val4*val5)+(val6*val7)+(val8*val1)+(val3*val9)+(val10*val11)+(val12*val13)+(val14*val15)+(val16*val17)); |
| acc0[1] = (acc0[1]+(val0*val18)+(val4*val19)+(val6*val20)+(val8*val21)+(val3*val22)+(val10*val23)+(val12*val24)+(val14*val25)+(val16*val26)); |
| acc0[2] = (acc0[2]+(val0*val27)+(val4*val28)+(val6*val29)+(val8*val30)+(val3*val31)+(val10*val32)+(val12*val33)+(val14*val34)+(val16*val35)); |
| acc0[3] = (acc0[3]+(val0*val36)+(val4*val37)+(val6*val38)+(val8*val39)+(val3*val40)+(val10*val41)+(val12*val42)+(val14*val43)+(val16*val44)); |
| } |
| var alu17 = (bitcast<i32>((bitcast<u32>(gidx2)<<7u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val45 = data3_512[alu17]; |
| var val46 = data4_512[alu17]; |
| var alu18 = (alu17+1); |
| var val47 = data3_512[alu18]; |
| var alu19 = (alu17+2); |
| var val48 = data3_512[alu19]; |
| var val49 = data4_512[alu18]; |
| var val50 = data4_512[alu19]; |
| var alu20 = (alu17+3); |
| var val51 = data3_512[alu20]; |
| var val52 = data4_512[alu20]; |
| var alu21 = (alu1+(gidx2*25088)+(lidx0*784)); |
| var alu22 = (acc0[0]+val45); |
| var alu23 = (acc0[1]+val47); |
| var alu24 = (acc0[2]+val48); |
| var alu25 = (acc0[3]+val51); |
| var alu26 = select((alu22*val46),alu22,(0.0f<alu22)); |
| var alu27 = select((alu23*val49),alu23,(0.0f<alu23)); |
| var alu28 = select((alu24*val50),alu24,(0.0f<alu24)); |
| var alu29 = select((alu25*val52),alu25,(0.0f<alu25)); |
| data0_100352[alu21] = alu26; |
| data0_100352[(alu21+196)] = alu27; |
| data0_100352[(alu21+392)] = alu28; |
| data0_100352[(alu21+588)] = alu29; |
| }`; |
|
|
| const r_16_32_7_7_512_3_3_64_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_25088:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_100352:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_2359296:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_50176:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_131072:array<f32>; |
| @group(0) @binding(7)var<storage,read_write>data6_512:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,49>; |
| var acc1: array<f32,49>; |
| var gidx0 = i32(gindex.x); /* 16 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| acc1[0] = 0.0f; |
| acc1[1] = 0.0f; |
| acc1[2] = 0.0f; |
| acc1[3] = 0.0f; |
| acc1[4] = 0.0f; |
| acc1[5] = 0.0f; |
| acc1[6] = 0.0f; |
| acc1[7] = 0.0f; |
| acc1[8] = 0.0f; |
| acc1[9] = 0.0f; |
| acc1[10] = 0.0f; |
| acc1[11] = 0.0f; |
| acc1[12] = 0.0f; |
| acc1[13] = 0.0f; |
| acc1[14] = 0.0f; |
| acc1[15] = 0.0f; |
| acc1[16] = 0.0f; |
| acc1[17] = 0.0f; |
| acc1[18] = 0.0f; |
| acc1[19] = 0.0f; |
| acc1[20] = 0.0f; |
| acc1[21] = 0.0f; |
| acc1[22] = 0.0f; |
| acc1[23] = 0.0f; |
| acc1[24] = 0.0f; |
| acc1[25] = 0.0f; |
| acc1[26] = 0.0f; |
| acc1[27] = 0.0f; |
| acc1[28] = 0.0f; |
| acc1[29] = 0.0f; |
| acc1[30] = 0.0f; |
| acc1[31] = 0.0f; |
| acc1[32] = 0.0f; |
| acc1[33] = 0.0f; |
| acc1[34] = 0.0f; |
| acc1[35] = 0.0f; |
| acc1[36] = 0.0f; |
| acc1[37] = 0.0f; |
| acc1[38] = 0.0f; |
| acc1[39] = 0.0f; |
| acc1[40] = 0.0f; |
| acc1[41] = 0.0f; |
| acc1[42] = 0.0f; |
| acc1[43] = 0.0f; |
| acc1[44] = 0.0f; |
| acc1[45] = 0.0f; |
| acc1[46] = 0.0f; |
| acc1[47] = 0.0f; |
| acc1[48] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 512; Ridx0++) { |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { |
| var alu49 = (0<Ridx1); |
| for (var Ridx2 = 0; Ridx2 < 3; Ridx2++) { |
| var alu50 = ((Ridx1*14)+Ridx2+(Ridx0*196)); |
| var alu51 = (0<Ridx2); |
| var val0 = select(0.0f, data1_100352[(alu50+-15)], (alu51&alu49)); |
| var val1 = data2_2359296[((Ridx1*3)+Ridx2+(Ridx0*9)+(gidx0*147456)+(lidx0*4608))]; |
| var val2 = select(0.0f, data1_100352[(alu50+13)], alu51); |
| var val3 = data1_100352[(alu50+17)]; |
| var val4 = select(0.0f, data1_100352[(alu50+41)], alu51); |
| var val5 = select(0.0f, data1_100352[(alu50+69)], alu51); |
| var val6 = select(0.0f, data1_100352[(alu50+97)], alu51); |
| var val7 = select(0.0f, data1_100352[(alu50+125)], alu51); |
| var val8 = select(0.0f, data1_100352[(alu50+153)], alu51); |
| var val9 = select(0.0f, data1_100352[(alu50+-13)], alu49); |
| var val10 = data1_100352[(alu50+15)]; |
| var val11 = data1_100352[(alu50+43)]; |
| var val12 = data1_100352[(alu50+99)]; |
| var val13 = data1_100352[(alu50+127)]; |
| var val14 = data1_100352[(alu50+155)]; |
| var val15 = select(0.0f, data1_100352[(alu50+-11)], alu49); |
| var val16 = data1_100352[(alu50+71)]; |
| var val17 = data1_100352[(alu50+45)]; |
| var val18 = data1_100352[(alu50+73)]; |
| var val19 = select(0.0f, data1_100352[(alu50+-9)], alu49); |
| var val20 = data1_100352[(alu50+157)]; |
| var val21 = data1_100352[(alu50+19)]; |
| var val22 = data1_100352[(alu50+47)]; |
| var val23 = data1_100352[(alu50+75)]; |
| var val24 = data1_100352[(alu50+101)]; |
| var val25 = data1_100352[(alu50+103)]; |
| var val26 = data1_100352[(alu50+131)]; |
| var val27 = data1_100352[(alu50+159)]; |
| var val28 = select(0.0f, data1_100352[(alu50+-7)], alu49); |
| var val29 = data1_100352[(alu50+21)]; |
| var val30 = data1_100352[(alu50+49)]; |
| var val31 = data1_100352[(alu50+77)]; |
| var val32 = data1_100352[(alu50+105)]; |
| var val33 = data1_100352[(alu50+129)]; |
| var val34 = data1_100352[(alu50+133)]; |
| var val35 = select(0.0f, data1_100352[(alu50+-5)], alu49); |
| var val36 = data1_100352[(alu50+161)]; |
| var val37 = data1_100352[(alu50+23)]; |
| var val38 = data1_100352[(alu50+51)]; |
| var val39 = data1_100352[(alu50+79)]; |
| var val40 = data1_100352[(alu50+107)]; |
| var val41 = data1_100352[(alu50+135)]; |
| var val42 = data1_100352[(alu50+163)]; |
| var val43 = select(0.0f, data1_100352[(alu50+-3)], alu49); |
| var val44 = data1_100352[(alu50+25)]; |
| var val45 = data1_100352[(alu50+53)]; |
| var val46 = data1_100352[(alu50+81)]; |
| var val47 = data1_100352[(alu50+109)]; |
| var val48 = data1_100352[(alu50+137)]; |
| var val49 = data1_100352[(alu50+165)]; |
| acc1[0] = (acc1[0]+(val0*val1)); |
| acc1[1] = (acc1[1]+(val2*val1)); |
| acc1[2] = (acc1[2]+(val4*val1)); |
| acc1[3] = (acc1[3]+(val5*val1)); |
| acc1[4] = (acc1[4]+(val6*val1)); |
| acc1[5] = (acc1[5]+(val7*val1)); |
| acc1[6] = (acc1[6]+(val8*val1)); |
| acc1[7] = (acc1[7]+(val9*val1)); |
| acc1[8] = (acc1[8]+(val10*val1)); |
| acc1[9] = (acc1[9]+(val11*val1)); |
| acc1[10] = (acc1[10]+(val16*val1)); |
| acc1[11] = (acc1[11]+(val12*val1)); |
| acc1[12] = (acc1[12]+(val13*val1)); |
| acc1[13] = (acc1[13]+(val14*val1)); |
| acc1[14] = (acc1[14]+(val15*val1)); |
| acc1[15] = (acc1[15]+(val3*val1)); |
| acc1[16] = (acc1[16]+(val17*val1)); |
| acc1[17] = (acc1[17]+(val18*val1)); |
| acc1[18] = (acc1[18]+(val24*val1)); |
| acc1[19] = (acc1[19]+(val33*val1)); |
| acc1[20] = (acc1[20]+(val20*val1)); |
| acc1[21] = (acc1[21]+(val19*val1)); |
| acc1[22] = (acc1[22]+(val21*val1)); |
| acc1[23] = (acc1[23]+(val22*val1)); |
| acc1[24] = (acc1[24]+(val23*val1)); |
| acc1[25] = (acc1[25]+(val25*val1)); |
| acc1[26] = (acc1[26]+(val26*val1)); |
| acc1[27] = (acc1[27]+(val27*val1)); |
| acc1[28] = (acc1[28]+(val28*val1)); |
| acc1[29] = (acc1[29]+(val29*val1)); |
| acc1[30] = (acc1[30]+(val30*val1)); |
| acc1[31] = (acc1[31]+(val31*val1)); |
| acc1[32] = (acc1[32]+(val32*val1)); |
| acc1[33] = (acc1[33]+(val34*val1)); |
| acc1[34] = (acc1[34]+(val36*val1)); |
| acc1[35] = (acc1[35]+(val35*val1)); |
| acc1[36] = (acc1[36]+(val37*val1)); |
| acc1[37] = (acc1[37]+(val38*val1)); |
| acc1[38] = (acc1[38]+(val39*val1)); |
| acc1[39] = (acc1[39]+(val40*val1)); |
| acc1[40] = (acc1[40]+(val41*val1)); |
| acc1[41] = (acc1[41]+(val42*val1)); |
| acc1[42] = (acc1[42]+(val43*val1)); |
| acc1[43] = (acc1[43]+(val44*val1)); |
| acc1[44] = (acc1[44]+(val45*val1)); |
| acc1[45] = (acc1[45]+(val46*val1)); |
| acc1[46] = (acc1[46]+(val47*val1)); |
| acc1[47] = (acc1[47]+(val48*val1)); |
| acc1[48] = (acc1[48]+(val49*val1)); |
| } |
| } |
| } |
| var cast0 = bitcast<u32>(gidx0); |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| acc0[16] = 0.0f; |
| acc0[17] = 0.0f; |
| acc0[18] = 0.0f; |
| acc0[19] = 0.0f; |
| acc0[20] = 0.0f; |
| acc0[21] = 0.0f; |
| acc0[22] = 0.0f; |
| acc0[23] = 0.0f; |
| acc0[24] = 0.0f; |
| acc0[25] = 0.0f; |
| acc0[26] = 0.0f; |
| acc0[27] = 0.0f; |
| acc0[28] = 0.0f; |
| acc0[29] = 0.0f; |
| acc0[30] = 0.0f; |
| acc0[31] = 0.0f; |
| acc0[32] = 0.0f; |
| acc0[33] = 0.0f; |
| acc0[34] = 0.0f; |
| acc0[35] = 0.0f; |
| acc0[36] = 0.0f; |
| acc0[37] = 0.0f; |
| acc0[38] = 0.0f; |
| acc0[39] = 0.0f; |
| acc0[40] = 0.0f; |
| acc0[41] = 0.0f; |
| acc0[42] = 0.0f; |
| acc0[43] = 0.0f; |
| acc0[44] = 0.0f; |
| acc0[45] = 0.0f; |
| acc0[46] = 0.0f; |
| acc0[47] = 0.0f; |
| acc0[48] = 0.0f; |
| for (var Ridx3 = 0; Ridx3 < 64; Ridx3++) { |
| var alu153 = (Ridx3*784); |
| var val50 = data4_50176[(alu153+2)]; |
| var val51 = data4_50176[(alu153+56)]; |
| var val52 = data4_50176[(alu153+58)]; |
| var val53 = data4_50176[(alu153+84)]; |
| var val54 = data4_50176[(alu153+86)]; |
| var val55 = data4_50176[(alu153+112)]; |
| var val56 = data4_50176[(alu153+168)]; |
| var val57 = data4_50176[(alu153+198)]; |
| var val58 = data4_50176[(alu153+252)]; |
| var val59 = data4_50176[(alu153+254)]; |
| var val60 = data4_50176[(alu153+280)]; |
| var val61 = data4_50176[(alu153+282)]; |
| var val62 = data4_50176[(alu153+308)]; |
| var val63 = data4_50176[(alu153+364)]; |
| var val64 = data4_50176[(alu153+394)]; |
| var val65 = data4_50176[(alu153+420)]; |
| var val66 = data4_50176[(alu153+450)]; |
| var val67 = data4_50176[(alu153+476)]; |
| var val68 = data4_50176[(alu153+504)]; |
| var val69 = data4_50176[(alu153+560)]; |
| var val70 = data4_50176[(alu153+590)]; |
| var val71 = data4_50176[(alu153+616)]; |
| var val72 = data4_50176[(alu153+448)]; |
| var val73 = data4_50176[(alu153+644)]; |
| var val74 = data4_50176[(alu153+672)]; |
| var val75 = data4_50176[(alu153+700)]; |
| var val76 = data4_50176[(alu153+140)]; |
| var val77 = data4_50176[(alu153+336)]; |
| var val78 = data4_50176[(alu153+532)]; |
| var val79 = data4_50176[(alu153+728)]; |
| var val80 = data4_50176[(alu153+756)]; |
| var val81 = data4_50176[alu153]; |
| var alu154 = (bitcast<i32>((cast0<<13u))+bitcast<i32>((bitcast<u32>(lidx0)<<8u))+bitcast<i32>((bitcast<u32>(Ridx3)<<2u))); |
| var val82 = data5_131072[alu154]; |
| var val83 = data4_50176[(alu153+196)]; |
| var val84 = data5_131072[(alu154+1)]; |
| var val85 = data4_50176[(alu153+392)]; |
| var val86 = data5_131072[(alu154+2)]; |
| var val87 = data4_50176[(alu153+588)]; |
| var val88 = data5_131072[(alu154+3)]; |
| var val89 = data4_50176[(alu153+28)]; |
| var val90 = data4_50176[(alu153+224)]; |
| var val91 = data4_50176[(alu153+30)]; |
| var val92 = data4_50176[(alu153+226)]; |
| var val93 = data4_50176[(alu153+422)]; |
| var val94 = data4_50176[(alu153+618)]; |
| var val95 = data4_50176[(alu153+646)]; |
| var val96 = data4_50176[(alu153+142)]; |
| var val97 = data4_50176[(alu153+170)]; |
| var val98 = data4_50176[(alu153+338)]; |
| var val99 = data4_50176[(alu153+366)]; |
| var val100 = data4_50176[(alu153+478)]; |
| var val101 = data4_50176[(alu153+534)]; |
| var val102 = data4_50176[(alu153+674)]; |
| var val103 = data4_50176[(alu153+114)]; |
| var val104 = data4_50176[(alu153+310)]; |
| var val105 = data4_50176[(alu153+506)]; |
| var val106 = data4_50176[(alu153+702)]; |
| var val107 = data4_50176[(alu153+730)]; |
| var val108 = data4_50176[(alu153+4)]; |
| var val109 = data4_50176[(alu153+562)]; |
| var val110 = data4_50176[(alu153+758)]; |
| var val111 = data4_50176[(alu153+200)]; |
| var val112 = data4_50176[(alu153+396)]; |
| var val113 = data4_50176[(alu153+592)]; |
| var val114 = data4_50176[(alu153+32)]; |
| var val115 = data4_50176[(alu153+60)]; |
| var val116 = data4_50176[(alu153+228)]; |
| var val117 = data4_50176[(alu153+256)]; |
| var val118 = data4_50176[(alu153+424)]; |
| var val119 = data4_50176[(alu153+620)]; |
| var val120 = data4_50176[(alu153+116)]; |
| var val121 = data4_50176[(alu153+144)]; |
| var val122 = data4_50176[(alu153+312)]; |
| var val123 = data4_50176[(alu153+340)]; |
| var val124 = data4_50176[(alu153+452)]; |
| var val125 = data4_50176[(alu153+508)]; |
| var val126 = data4_50176[(alu153+648)]; |
| var val127 = data4_50176[(alu153+88)]; |
| var val128 = data4_50176[(alu153+284)]; |
| var val129 = data4_50176[(alu153+480)]; |
| var val130 = data4_50176[(alu153+536)]; |
| var val131 = data4_50176[(alu153+676)]; |
| var val132 = data4_50176[(alu153+704)]; |
| var val133 = data4_50176[(alu153+732)]; |
| var val134 = data4_50176[(alu153+172)]; |
| var val135 = data4_50176[(alu153+368)]; |
| var val136 = data4_50176[(alu153+564)]; |
| var val137 = data4_50176[(alu153+760)]; |
| var val138 = data4_50176[(alu153+6)]; |
| var val139 = data4_50176[(alu153+34)]; |
| var val140 = data4_50176[(alu153+202)]; |
| var val141 = data4_50176[(alu153+230)]; |
| var val142 = data4_50176[(alu153+398)]; |
| var val143 = data4_50176[(alu153+594)]; |
| var val144 = data4_50176[(alu153+90)]; |
| var val145 = data4_50176[(alu153+118)]; |
| var val146 = data4_50176[(alu153+286)]; |
| var val147 = data4_50176[(alu153+314)]; |
| var val148 = data4_50176[(alu153+426)]; |
| var val149 = data4_50176[(alu153+482)]; |
| var val150 = data4_50176[(alu153+622)]; |
| var val151 = data4_50176[(alu153+62)]; |
| var val152 = data4_50176[(alu153+258)]; |
| var val153 = data4_50176[(alu153+454)]; |
| var val154 = data4_50176[(alu153+650)]; |
| var val155 = data4_50176[(alu153+678)]; |
| var val156 = data4_50176[(alu153+510)]; |
| var val157 = data4_50176[(alu153+706)]; |
| var val158 = data4_50176[(alu153+146)]; |
| var val159 = data4_50176[(alu153+342)]; |
| var val160 = data4_50176[(alu153+538)]; |
| var val161 = data4_50176[(alu153+734)]; |
| var val162 = data4_50176[(alu153+8)]; |
| var val163 = data4_50176[(alu153+174)]; |
| var val164 = data4_50176[(alu153+204)]; |
| var val165 = data4_50176[(alu153+370)]; |
| var val166 = data4_50176[(alu153+566)]; |
| var val167 = data4_50176[(alu153+762)]; |
| var val168 = data4_50176[(alu153+36)]; |
| var val169 = data4_50176[(alu153+400)]; |
| var val170 = data4_50176[(alu153+596)]; |
| var val171 = data4_50176[(alu153+232)]; |
| var val172 = data4_50176[(alu153+428)]; |
| var val173 = data4_50176[(alu153+624)]; |
| var val174 = data4_50176[(alu153+64)]; |
| var val175 = data4_50176[(alu153+92)]; |
| var val176 = data4_50176[(alu153+260)]; |
| var val177 = data4_50176[(alu153+288)]; |
| var val178 = data4_50176[(alu153+456)]; |
| var val179 = data4_50176[(alu153+652)]; |
| var val180 = data4_50176[(alu153+148)]; |
| var val181 = data4_50176[(alu153+176)]; |
| var val182 = data4_50176[(alu153+344)]; |
| var val183 = data4_50176[(alu153+372)]; |
| var val184 = data4_50176[(alu153+484)]; |
| var val185 = data4_50176[(alu153+540)]; |
| var val186 = data4_50176[(alu153+680)]; |
| var val187 = data4_50176[(alu153+120)]; |
| var val188 = data4_50176[(alu153+316)]; |
| var val189 = data4_50176[(alu153+512)]; |
| var val190 = data4_50176[(alu153+708)]; |
| var val191 = data4_50176[(alu153+736)]; |
| var val192 = data4_50176[(alu153+568)]; |
| var val193 = data4_50176[(alu153+764)]; |
| var val194 = data4_50176[(alu153+10)]; |
| var val195 = data4_50176[(alu153+206)]; |
| var val196 = data4_50176[(alu153+402)]; |
| var val197 = data4_50176[(alu153+598)]; |
| var val198 = data4_50176[(alu153+12)]; |
| var val199 = data4_50176[(alu153+38)]; |
| var val200 = data4_50176[(alu153+94)]; |
| var val201 = data4_50176[(alu153+122)]; |
| var val202 = data4_50176[(alu153+150)]; |
| var val203 = data4_50176[(alu153+208)]; |
| var val204 = data4_50176[(alu153+290)]; |
| var val205 = data4_50176[(alu153+318)]; |
| var val206 = data4_50176[(alu153+346)]; |
| var val207 = data4_50176[(alu153+404)]; |
| var val208 = data4_50176[(alu153+458)]; |
| var val209 = data4_50176[(alu153+514)]; |
| var val210 = data4_50176[(alu153+542)]; |
| var val211 = data4_50176[(alu153+600)]; |
| var val212 = data4_50176[(alu153+654)]; |
| var val213 = data4_50176[(alu153+486)]; |
| var val214 = data4_50176[(alu153+682)]; |
| var val215 = data4_50176[(alu153+710)]; |
| var val216 = data4_50176[(alu153+738)]; |
| var val217 = data4_50176[(alu153+178)]; |
| var val218 = data4_50176[(alu153+374)]; |
| var val219 = data4_50176[(alu153+570)]; |
| var val220 = data4_50176[(alu153+766)]; |
| var val221 = data4_50176[(alu153+40)]; |
| var val222 = data4_50176[(alu153+66)]; |
| var val223 = data4_50176[(alu153+234)]; |
| var val224 = data4_50176[(alu153+236)]; |
| var val225 = data4_50176[(alu153+262)]; |
| var val226 = data4_50176[(alu153+430)]; |
| var val227 = data4_50176[(alu153+626)]; |
| var val228 = data4_50176[(alu153+68)]; |
| var val229 = data4_50176[(alu153+96)]; |
| var val230 = data4_50176[(alu153+124)]; |
| var val231 = data4_50176[(alu153+264)]; |
| var val232 = data4_50176[(alu153+292)]; |
| var val233 = data4_50176[(alu153+320)]; |
| var val234 = data4_50176[(alu153+432)]; |
| var val235 = data4_50176[(alu153+488)]; |
| var val236 = data4_50176[(alu153+628)]; |
| var val237 = data4_50176[(alu153+460)]; |
| var val238 = data4_50176[(alu153+656)]; |
| var val239 = data4_50176[(alu153+684)]; |
| var val240 = data4_50176[(alu153+516)]; |
| var val241 = data4_50176[(alu153+712)]; |
| var val242 = data4_50176[(alu153+152)]; |
| var val243 = data4_50176[(alu153+348)]; |
| var val244 = data4_50176[(alu153+544)]; |
| var val245 = data4_50176[(alu153+740)]; |
| var val246 = data4_50176[(alu153+180)]; |
| var val247 = data4_50176[(alu153+376)]; |
| var val248 = data4_50176[(alu153+572)]; |
| var val249 = data4_50176[(alu153+768)]; |
| acc0[0] = (acc0[0]+(val81*val82)+(val83*val84)+(val85*val86)+(val87*val88)); |
| acc0[1] = (acc0[1]+(val89*val82)+(val90*val84)+(val65*val86)+(val71*val88)); |
| acc0[2] = (acc0[2]+(val51*val82)+(val58*val84)+(val72*val86)+(val73*val88)); |
| acc0[3] = (acc0[3]+(val53*val82)+(val60*val84)+(val67*val86)+(val74*val88)); |
| acc0[4] = (acc0[4]+(val55*val82)+(val62*val84)+(val68*val86)+(val75*val88)); |
| acc0[5] = (acc0[5]+(val76*val82)+(val77*val84)+(val78*val86)+(val79*val88)); |
| acc0[6] = (acc0[6]+(val56*val82)+(val63*val84)+(val69*val86)+(val80*val88)); |
| acc0[7] = (acc0[7]+(val50*val82)+(val57*val84)+(val64*val86)+(val70*val88)); |
| acc0[8] = (acc0[8]+(val91*val82)+(val92*val84)+(val93*val86)+(val94*val88)); |
| acc0[9] = (acc0[9]+(val52*val82)+(val59*val84)+(val66*val86)+(val95*val88)); |
| acc0[10] = (acc0[10]+(val54*val82)+(val61*val84)+(val100*val86)+(val102*val88)); |
| acc0[11] = (acc0[11]+(val103*val82)+(val104*val84)+(val105*val86)+(val106*val88)); |
| acc0[12] = (acc0[12]+(val96*val82)+(val98*val84)+(val101*val86)+(val107*val88)); |
| acc0[13] = (acc0[13]+(val97*val82)+(val99*val84)+(val109*val86)+(val110*val88)); |
| acc0[14] = (acc0[14]+(val108*val82)+(val111*val84)+(val112*val86)+(val113*val88)); |
| acc0[15] = (acc0[15]+(val114*val82)+(val116*val84)+(val118*val86)+(val119*val88)); |
| acc0[16] = (acc0[16]+(val115*val82)+(val117*val84)+(val124*val86)+(val126*val88)); |
| acc0[17] = (acc0[17]+(val127*val82)+(val128*val84)+(val129*val86)+(val131*val88)); |
| acc0[18] = (acc0[18]+(val120*val82)+(val122*val84)+(val125*val86)+(val132*val88)); |
| acc0[19] = (acc0[19]+(val121*val82)+(val123*val84)+(val130*val86)+(val133*val88)); |
| acc0[20] = (acc0[20]+(val134*val82)+(val135*val84)+(val136*val86)+(val137*val88)); |
| acc0[21] = (acc0[21]+(val138*val82)+(val140*val84)+(val142*val86)+(val143*val88)); |
| acc0[22] = (acc0[22]+(val139*val82)+(val141*val84)+(val148*val86)+(val150*val88)); |
| acc0[23] = (acc0[23]+(val151*val82)+(val152*val84)+(val153*val86)+(val154*val88)); |
| acc0[24] = (acc0[24]+(val144*val82)+(val146*val84)+(val149*val86)+(val155*val88)); |
| acc0[25] = (acc0[25]+(val145*val82)+(val147*val84)+(val156*val86)+(val157*val88)); |
| acc0[26] = (acc0[26]+(val158*val82)+(val159*val84)+(val160*val86)+(val161*val88)); |
| acc0[27] = (acc0[27]+(val163*val82)+(val165*val84)+(val166*val86)+(val167*val88)); |
| acc0[28] = (acc0[28]+(val162*val82)+(val164*val84)+(val169*val86)+(val170*val88)); |
| acc0[29] = (acc0[29]+(val168*val82)+(val171*val84)+(val172*val86)+(val173*val88)); |
| acc0[30] = (acc0[30]+(val174*val82)+(val176*val84)+(val178*val86)+(val179*val88)); |
| acc0[31] = (acc0[31]+(val175*val82)+(val177*val84)+(val184*val86)+(val186*val88)); |
| acc0[32] = (acc0[32]+(val187*val82)+(val188*val84)+(val189*val86)+(val190*val88)); |
| acc0[33] = (acc0[33]+(val180*val82)+(val182*val84)+(val185*val86)+(val191*val88)); |
| acc0[34] = (acc0[34]+(val181*val82)+(val183*val84)+(val192*val86)+(val193*val88)); |
| acc0[35] = (acc0[35]+(val194*val82)+(val195*val84)+(val196*val86)+(val197*val88)); |
| acc0[36] = (acc0[36]+(val199*val82)+(val223*val84)+(val226*val86)+(val227*val88)); |
| acc0[37] = (acc0[37]+(val222*val82)+(val225*val84)+(val208*val86)+(val212*val88)); |
| acc0[38] = (acc0[38]+(val200*val82)+(val204*val84)+(val213*val86)+(val214*val88)); |
| acc0[39] = (acc0[39]+(val201*val82)+(val205*val84)+(val209*val86)+(val215*val88)); |
| acc0[40] = (acc0[40]+(val202*val82)+(val206*val84)+(val210*val86)+(val216*val88)); |
| acc0[41] = (acc0[41]+(val217*val82)+(val218*val84)+(val219*val86)+(val220*val88)); |
| acc0[42] = (acc0[42]+(val198*val82)+(val203*val84)+(val207*val86)+(val211*val88)); |
| acc0[43] = (acc0[43]+(val221*val82)+(val224*val84)+(val234*val86)+(val236*val88)); |
| acc0[44] = (acc0[44]+(val228*val82)+(val231*val84)+(val237*val86)+(val238*val88)); |
| acc0[45] = (acc0[45]+(val229*val82)+(val232*val84)+(val235*val86)+(val239*val88)); |
| acc0[46] = (acc0[46]+(val230*val82)+(val233*val84)+(val240*val86)+(val241*val88)); |
| acc0[47] = (acc0[47]+(val242*val82)+(val243*val84)+(val244*val86)+(val245*val88)); |
| acc0[48] = (acc0[48]+(val246*val82)+(val247*val84)+(val248*val86)+(val249*val88)); |
| } |
| var alu205 = (lidx0+bitcast<i32>((cast0<<5u))); |
| var val250 = data3_512[alu205]; |
| var val251 = data6_512[alu205]; |
| var alu206 = ((gidx0*1568)+(lidx0*49)); |
| data0_25088[(alu206+1)] = (acc1[7]+val250+acc0[7]+val251); |
| data0_25088[(alu206+2)] = (acc1[14]+val250+acc0[14]+val251); |
| data0_25088[(alu206+3)] = (acc1[21]+val250+acc0[21]+val251); |
| data0_25088[(alu206+4)] = (acc1[28]+val250+acc0[28]+val251); |
| data0_25088[(alu206+5)] = (acc1[35]+val250+acc0[35]+val251); |
| data0_25088[(alu206+6)] = (acc1[42]+val250+acc0[42]+val251); |
| data0_25088[(alu206+7)] = (acc1[1]+val250+acc0[1]+val251); |
| data0_25088[(alu206+8)] = (acc1[8]+val250+acc0[8]+val251); |
| data0_25088[(alu206+9)] = (acc1[15]+val250+acc0[15]+val251); |
| data0_25088[(alu206+10)] = (acc1[22]+val250+acc0[22]+val251); |
| data0_25088[(alu206+11)] = (acc1[29]+val250+acc0[29]+val251); |
| data0_25088[(alu206+12)] = (acc1[36]+val250+acc0[36]+val251); |
| data0_25088[(alu206+13)] = (acc1[43]+val250+acc0[43]+val251); |
| data0_25088[(alu206+14)] = (acc1[2]+val250+acc0[2]+val251); |
| data0_25088[(alu206+15)] = (acc1[9]+val250+acc0[9]+val251); |
| data0_25088[(alu206+16)] = (acc1[16]+val250+acc0[16]+val251); |
| data0_25088[(alu206+17)] = (acc1[23]+val250+acc0[23]+val251); |
| data0_25088[(alu206+18)] = (acc1[30]+val250+acc0[30]+val251); |
| data0_25088[(alu206+19)] = (acc1[37]+val250+acc0[37]+val251); |
| data0_25088[(alu206+20)] = (acc1[44]+val250+acc0[44]+val251); |
| data0_25088[(alu206+21)] = (acc1[3]+val250+acc0[3]+val251); |
| data0_25088[(alu206+22)] = (acc1[10]+val250+acc0[10]+val251); |
| data0_25088[(alu206+23)] = (acc1[17]+val250+acc0[17]+val251); |
| data0_25088[(alu206+24)] = (acc1[24]+val250+acc0[24]+val251); |
| data0_25088[(alu206+25)] = (acc1[31]+val250+acc0[31]+val251); |
| data0_25088[(alu206+26)] = (acc1[38]+val250+acc0[38]+val251); |
| data0_25088[(alu206+27)] = (acc1[45]+val250+acc0[45]+val251); |
| data0_25088[(alu206+28)] = (acc1[4]+val250+acc0[4]+val251); |
| data0_25088[(alu206+29)] = (acc1[11]+val250+acc0[11]+val251); |
| data0_25088[(alu206+30)] = (acc1[18]+val250+acc0[18]+val251); |
| data0_25088[(alu206+31)] = (acc1[25]+val250+acc0[25]+val251); |
| data0_25088[(alu206+32)] = (acc1[32]+val250+acc0[32]+val251); |
| data0_25088[(alu206+33)] = (acc1[39]+val250+acc0[39]+val251); |
| data0_25088[(alu206+34)] = (acc1[46]+val250+acc0[46]+val251); |
| data0_25088[(alu206+35)] = (acc1[5]+val250+acc0[5]+val251); |
| data0_25088[(alu206+36)] = (acc1[12]+val250+acc0[12]+val251); |
| data0_25088[(alu206+37)] = (acc1[19]+val250+acc0[19]+val251); |
| data0_25088[(alu206+38)] = (acc1[26]+val250+acc0[26]+val251); |
| data0_25088[(alu206+39)] = (acc1[33]+val250+acc0[33]+val251); |
| data0_25088[(alu206+40)] = (acc1[40]+val250+acc0[40]+val251); |
| data0_25088[(alu206+41)] = (acc1[47]+val250+acc0[47]+val251); |
| data0_25088[(alu206+42)] = (acc1[6]+val250+acc0[6]+val251); |
| data0_25088[(alu206+43)] = (acc1[13]+val250+acc0[13]+val251); |
| data0_25088[(alu206+44)] = (acc1[20]+val250+acc0[20]+val251); |
| data0_25088[(alu206+45)] = (acc1[27]+val250+acc0[27]+val251); |
| data0_25088[(alu206+46)] = (acc1[34]+val250+acc0[34]+val251); |
| data0_25088[(alu206+47)] = (acc1[41]+val250+acc0[41]+val251); |
| data0_25088[(alu206+48)] = (acc1[48]+val250+acc0[48]+val251); |
| data0_25088[alu206] = (acc1[0]+val250+acc0[0]+val251); |
| }`; |
|
|
| const E_4_49_32_4 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_25088:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_25088:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_512:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_512:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_512:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var gidx0 = i32(gindex.x); /* 49 */ |
| var gidx1 = i32(gindex.y); /* 4 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var alu0 = (gidx0+(gidx1*6272)+(lidx0*196)); |
| var val0 = data1_25088[alu0]; |
| var alu1 = (bitcast<i32>((bitcast<u32>(gidx1)<<7u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var val1 = data2_512[alu1]; |
| var alu2 = (alu1+1); |
| var val2 = data2_512[alu2]; |
| var val3 = data3_512[alu1]; |
| var val4 = data3_512[alu2]; |
| var val5 = data4_512[alu1]; |
| var val6 = data5_512[alu1]; |
| var alu3 = (alu0+49); |
| var val7 = data1_25088[alu3]; |
| var val8 = data4_512[alu2]; |
| var val9 = data5_512[alu2]; |
| var alu4 = (alu0+98); |
| var val10 = data1_25088[alu4]; |
| var alu5 = (alu1+2); |
| var val11 = data2_512[alu5]; |
| var alu6 = (alu1+3); |
| var val12 = data2_512[alu6]; |
| var val13 = data3_512[alu5]; |
| var val14 = data4_512[alu5]; |
| var val15 = data5_512[alu5]; |
| var alu7 = (alu0+147); |
| var val16 = data1_25088[alu7]; |
| var val17 = data3_512[alu6]; |
| var val18 = data4_512[alu6]; |
| var val19 = data5_512[alu6]; |
| data0_25088[alu0] = (((val0-val1)*val3*(1/sqrt((val5+9.999999747378752e-06f))))+val6); |
| data0_25088[alu3] = (((val7-val2)*val4*(1/sqrt((val8+9.999999747378752e-06f))))+val9); |
| data0_25088[alu4] = (((val10-val11)*val13*(1/sqrt((val14+9.999999747378752e-06f))))+val15); |
| data0_25088[alu7] = (((val16-val12)*val17*(1/sqrt((val18+9.999999747378752e-06f))))+val19); |
| }`; |
|
|
| const r_16_32_7_7_512_3_3 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_25088:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_25088:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_2359296:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_512:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,49>; |
| var gidx0 = i32(gindex.x); /* 16 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| acc0[16] = 0.0f; |
| acc0[17] = 0.0f; |
| acc0[18] = 0.0f; |
| acc0[19] = 0.0f; |
| acc0[20] = 0.0f; |
| acc0[21] = 0.0f; |
| acc0[22] = 0.0f; |
| acc0[23] = 0.0f; |
| acc0[24] = 0.0f; |
| acc0[25] = 0.0f; |
| acc0[26] = 0.0f; |
| acc0[27] = 0.0f; |
| acc0[28] = 0.0f; |
| acc0[29] = 0.0f; |
| acc0[30] = 0.0f; |
| acc0[31] = 0.0f; |
| acc0[32] = 0.0f; |
| acc0[33] = 0.0f; |
| acc0[34] = 0.0f; |
| acc0[35] = 0.0f; |
| acc0[36] = 0.0f; |
| acc0[37] = 0.0f; |
| acc0[38] = 0.0f; |
| acc0[39] = 0.0f; |
| acc0[40] = 0.0f; |
| acc0[41] = 0.0f; |
| acc0[42] = 0.0f; |
| acc0[43] = 0.0f; |
| acc0[44] = 0.0f; |
| acc0[45] = 0.0f; |
| acc0[46] = 0.0f; |
| acc0[47] = 0.0f; |
| acc0[48] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 512; Ridx0++) { |
| var alu49 = (Ridx0*49); |
| var val0 = data1_25088[(alu49+1)]; |
| var val1 = data1_25088[(alu49+8)]; |
| var val2 = data1_25088[alu49]; |
| var alu50 = ((gidx0*147456)+(lidx0*4608)+(Ridx0*9)); |
| var val3 = data2_2359296[(alu50+1)]; |
| var val4 = data2_2359296[(alu50+4)]; |
| var val5 = data2_2359296[(alu50+5)]; |
| var val6 = data1_25088[(alu49+7)]; |
| var val7 = data2_2359296[(alu50+7)]; |
| var val8 = data2_2359296[(alu50+8)]; |
| var val9 = data2_2359296[(alu50+2)]; |
| var val10 = data1_25088[(alu49+14)]; |
| var val11 = data1_25088[(alu49+15)]; |
| var val12 = data1_25088[(alu49+21)]; |
| var val13 = data1_25088[(alu49+22)]; |
| var val14 = data1_25088[(alu49+17)]; |
| var val15 = data1_25088[(alu49+28)]; |
| var val16 = data1_25088[(alu49+29)]; |
| var val17 = data1_25088[(alu49+30)]; |
| var val18 = data1_25088[(alu49+35)]; |
| var val19 = data1_25088[(alu49+36)]; |
| var val20 = data1_25088[(alu49+42)]; |
| var val21 = data1_25088[(alu49+43)]; |
| var val22 = data2_2359296[(alu50+3)]; |
| var val23 = data1_25088[(alu49+2)]; |
| var val24 = data2_2359296[(alu50+6)]; |
| var val25 = data1_25088[(alu49+9)]; |
| var val26 = data2_2359296[alu50]; |
| var val27 = data1_25088[(alu49+16)]; |
| var val28 = data1_25088[(alu49+23)]; |
| var val29 = data1_25088[(alu49+37)]; |
| var val30 = data1_25088[(alu49+44)]; |
| var val31 = data1_25088[(alu49+3)]; |
| var val32 = data1_25088[(alu49+10)]; |
| var val33 = data1_25088[(alu49+24)]; |
| var val34 = data1_25088[(alu49+31)]; |
| var val35 = data1_25088[(alu49+38)]; |
| var val36 = data1_25088[(alu49+45)]; |
| var val37 = data1_25088[(alu49+4)]; |
| var val38 = data1_25088[(alu49+11)]; |
| var val39 = data1_25088[(alu49+18)]; |
| var val40 = data1_25088[(alu49+25)]; |
| var val41 = data1_25088[(alu49+32)]; |
| var val42 = data1_25088[(alu49+39)]; |
| var val43 = data1_25088[(alu49+46)]; |
| var val44 = data1_25088[(alu49+5)]; |
| var val45 = data1_25088[(alu49+12)]; |
| var val46 = data1_25088[(alu49+19)]; |
| var val47 = data1_25088[(alu49+26)]; |
| var val48 = data1_25088[(alu49+33)]; |
| var val49 = data1_25088[(alu49+40)]; |
| var val50 = data1_25088[(alu49+47)]; |
| var val51 = data1_25088[(alu49+6)]; |
| var val52 = data1_25088[(alu49+13)]; |
| var val53 = data1_25088[(alu49+20)]; |
| var val54 = data1_25088[(alu49+27)]; |
| var val55 = data1_25088[(alu49+34)]; |
| var val56 = data1_25088[(alu49+41)]; |
| var val57 = data1_25088[(alu49+48)]; |
| acc0[0] = (acc0[0]+(val2*val4)+(val0*val5)+(val6*val7)+(val1*val8)); |
| acc0[1] = (acc0[1]+(val2*val3)+(val0*val9)+(val6*val4)+(val1*val5)+(val10*val7)+(val11*val8)); |
| acc0[2] = (acc0[2]+(val6*val3)+(val1*val9)+(val10*val4)+(val11*val5)+(val12*val7)+(val13*val8)); |
| acc0[3] = (acc0[3]+(val10*val3)+(val11*val9)+(val12*val4)+(val13*val5)+(val15*val7)+(val16*val8)); |
| acc0[4] = (acc0[4]+(val12*val3)+(val13*val9)+(val15*val4)+(val16*val5)+(val18*val7)+(val19*val8)); |
| acc0[5] = (acc0[5]+(val15*val3)+(val16*val9)+(val18*val4)+(val19*val5)+(val20*val7)+(val21*val8)); |
| acc0[6] = (acc0[6]+(val18*val3)+(val19*val9)+(val20*val4)+(val21*val5)); |
| acc0[7] = (acc0[7]+(val2*val22)+(val0*val4)+(val23*val5)+(val6*val24)+(val1*val7)+(val25*val8)); |
| acc0[8] = (acc0[8]+(val2*val26)+(val0*val3)+(val23*val9)+(val6*val22)+(val1*val4)+(val25*val5)+(val10*val24)+(val11*val7)+(val27*val8)); |
| acc0[9] = (acc0[9]+(val6*val26)+(val1*val3)+(val25*val9)+(val10*val22)+(val11*val4)+(val27*val5)+(val12*val24)+(val13*val7)+(val28*val8)); |
| acc0[10] = (acc0[10]+(val10*val26)+(val11*val3)+(val27*val9)+(val12*val22)+(val13*val4)+(val28*val5)+(val15*val24)+(val16*val7)+(val17*val8)); |
| acc0[11] = (acc0[11]+(val12*val26)+(val13*val3)+(val28*val9)+(val15*val22)+(val16*val4)+(val17*val5)+(val18*val24)+(val19*val7)+(val29*val8)); |
| acc0[12] = (acc0[12]+(val15*val26)+(val16*val3)+(val17*val9)+(val18*val22)+(val19*val4)+(val29*val5)+(val20*val24)+(val21*val7)+(val30*val8)); |
| acc0[13] = (acc0[13]+(val18*val26)+(val19*val3)+(val29*val9)+(val20*val22)+(val21*val4)+(val30*val5)); |
| acc0[14] = (acc0[14]+(val0*val22)+(val23*val4)+(val31*val5)+(val1*val24)+(val25*val7)+(val32*val8)); |
| acc0[15] = (acc0[15]+(val0*val26)+(val23*val3)+(val31*val9)+(val1*val22)+(val25*val4)+(val32*val5)+(val11*val24)+(val27*val7)+(val14*val8)); |
| acc0[16] = (acc0[16]+(val1*val26)+(val25*val3)+(val32*val9)+(val11*val22)+(val27*val4)+(val14*val5)+(val13*val24)+(val28*val7)+(val33*val8)); |
| acc0[17] = (acc0[17]+(val11*val26)+(val27*val3)+(val14*val9)+(val13*val22)+(val28*val4)+(val33*val5)+(val16*val24)+(val17*val7)+(val34*val8)); |
| acc0[18] = (acc0[18]+(val13*val26)+(val28*val3)+(val33*val9)+(val16*val22)+(val17*val4)+(val34*val5)+(val19*val24)+(val29*val7)+(val35*val8)); |
| acc0[19] = (acc0[19]+(val16*val26)+(val17*val3)+(val34*val9)+(val19*val22)+(val29*val4)+(val35*val5)+(val21*val24)+(val30*val7)+(val36*val8)); |
| acc0[20] = (acc0[20]+(val19*val26)+(val29*val3)+(val35*val9)+(val21*val22)+(val30*val4)+(val36*val5)); |
| acc0[21] = (acc0[21]+(val23*val22)+(val31*val4)+(val37*val5)+(val25*val24)+(val32*val7)+(val38*val8)); |
| acc0[22] = (acc0[22]+(val23*val26)+(val31*val3)+(val37*val9)+(val25*val22)+(val32*val4)+(val38*val5)+(val27*val24)+(val14*val7)+(val39*val8)); |
| acc0[23] = (acc0[23]+(val25*val26)+(val32*val3)+(val38*val9)+(val27*val22)+(val14*val4)+(val39*val5)+(val28*val24)+(val33*val7)+(val40*val8)); |
| acc0[24] = (acc0[24]+(val27*val26)+(val14*val3)+(val39*val9)+(val28*val22)+(val33*val4)+(val40*val5)+(val17*val24)+(val34*val7)+(val41*val8)); |
| acc0[25] = (acc0[25]+(val28*val26)+(val33*val3)+(val40*val9)+(val17*val22)+(val34*val4)+(val41*val5)+(val29*val24)+(val35*val7)+(val42*val8)); |
| acc0[26] = (acc0[26]+(val17*val26)+(val34*val3)+(val41*val9)+(val29*val22)+(val35*val4)+(val42*val5)+(val30*val24)+(val36*val7)+(val43*val8)); |
| acc0[27] = (acc0[27]+(val29*val26)+(val35*val3)+(val42*val9)+(val30*val22)+(val36*val4)+(val43*val5)); |
| acc0[28] = (acc0[28]+(val31*val22)+(val37*val4)+(val44*val5)+(val32*val24)+(val38*val7)+(val45*val8)); |
| acc0[29] = (acc0[29]+(val31*val26)+(val37*val3)+(val44*val9)+(val32*val22)+(val38*val4)+(val45*val5)+(val14*val24)+(val39*val7)+(val46*val8)); |
| acc0[30] = (acc0[30]+(val32*val26)+(val38*val3)+(val45*val9)+(val14*val22)+(val39*val4)+(val46*val5)+(val33*val24)+(val40*val7)+(val47*val8)); |
| acc0[31] = (acc0[31]+(val14*val26)+(val39*val3)+(val46*val9)+(val33*val22)+(val40*val4)+(val47*val5)+(val34*val24)+(val41*val7)+(val48*val8)); |
| acc0[32] = (acc0[32]+(val33*val26)+(val40*val3)+(val47*val9)+(val34*val22)+(val41*val4)+(val48*val5)+(val35*val24)+(val42*val7)+(val49*val8)); |
| acc0[33] = (acc0[33]+(val34*val26)+(val41*val3)+(val48*val9)+(val35*val22)+(val42*val4)+(val49*val5)+(val36*val24)+(val43*val7)+(val50*val8)); |
| acc0[34] = (acc0[34]+(val35*val26)+(val42*val3)+(val49*val9)+(val36*val22)+(val43*val4)+(val50*val5)); |
| acc0[35] = (acc0[35]+(val37*val22)+(val44*val4)+(val51*val5)+(val38*val24)+(val45*val7)+(val52*val8)); |
| acc0[36] = (acc0[36]+(val37*val26)+(val44*val3)+(val51*val9)+(val38*val22)+(val45*val4)+(val52*val5)+(val39*val24)+(val46*val7)+(val53*val8)); |
| acc0[37] = (acc0[37]+(val38*val26)+(val45*val3)+(val52*val9)+(val39*val22)+(val46*val4)+(val53*val5)+(val40*val24)+(val47*val7)+(val54*val8)); |
| acc0[38] = (acc0[38]+(val39*val26)+(val46*val3)+(val53*val9)+(val40*val22)+(val47*val4)+(val54*val5)+(val41*val24)+(val48*val7)+(val55*val8)); |
| acc0[39] = (acc0[39]+(val40*val26)+(val47*val3)+(val54*val9)+(val41*val22)+(val48*val4)+(val55*val5)+(val42*val24)+(val49*val7)+(val56*val8)); |
| acc0[40] = (acc0[40]+(val41*val26)+(val48*val3)+(val55*val9)+(val42*val22)+(val49*val4)+(val56*val5)+(val43*val24)+(val50*val7)+(val57*val8)); |
| acc0[41] = (acc0[41]+(val42*val26)+(val49*val3)+(val56*val9)+(val43*val22)+(val50*val4)+(val57*val5)); |
| acc0[42] = (acc0[42]+(val44*val22)+(val51*val4)+(val45*val24)+(val52*val7)); |
| acc0[43] = (acc0[43]+(val44*val26)+(val51*val3)+(val45*val22)+(val52*val4)+(val46*val24)+(val53*val7)); |
| acc0[44] = (acc0[44]+(val45*val26)+(val52*val3)+(val46*val22)+(val53*val4)+(val47*val24)+(val54*val7)); |
| acc0[45] = (acc0[45]+(val46*val26)+(val53*val3)+(val47*val22)+(val54*val4)+(val48*val24)+(val55*val7)); |
| acc0[46] = (acc0[46]+(val47*val26)+(val54*val3)+(val48*val22)+(val55*val4)+(val49*val24)+(val56*val7)); |
| acc0[47] = (acc0[47]+(val48*val26)+(val55*val3)+(val49*val22)+(val56*val4)+(val50*val24)+(val57*val7)); |
| acc0[48] = (acc0[48]+(val49*val26)+(val56*val3)+(val50*val22)+(val57*val4)); |
| } |
| var alu101 = (lidx0+bitcast<i32>((bitcast<u32>(gidx0)<<5u))); |
| var val58 = data3_512[alu101]; |
| var val59 = data4_512[alu101]; |
| var alu102 = ((gidx0*1568)+(lidx0*49)); |
| var alu103 = (acc0[0]+val58); |
| var alu104 = (acc0[1]+val58); |
| var alu105 = (acc0[2]+val58); |
| var alu106 = (acc0[3]+val58); |
| var alu107 = (acc0[4]+val58); |
| var alu108 = (acc0[5]+val58); |
| var alu109 = (acc0[6]+val58); |
| var alu110 = (acc0[7]+val58); |
| var alu111 = (acc0[8]+val58); |
| var alu112 = (acc0[9]+val58); |
| var alu113 = (acc0[10]+val58); |
| var alu114 = (acc0[11]+val58); |
| var alu115 = (acc0[12]+val58); |
| var alu116 = (acc0[13]+val58); |
| var alu117 = (acc0[14]+val58); |
| var alu118 = (acc0[15]+val58); |
| var alu119 = (acc0[16]+val58); |
| var alu120 = (acc0[17]+val58); |
| var alu121 = (acc0[18]+val58); |
| var alu122 = (acc0[19]+val58); |
| var alu123 = (acc0[20]+val58); |
| var alu124 = (acc0[21]+val58); |
| var alu125 = (acc0[22]+val58); |
| var alu126 = (acc0[23]+val58); |
| var alu127 = (acc0[24]+val58); |
| var alu128 = (acc0[25]+val58); |
| var alu129 = (acc0[26]+val58); |
| var alu130 = (acc0[27]+val58); |
| var alu131 = (acc0[28]+val58); |
| var alu132 = (acc0[29]+val58); |
| var alu133 = (acc0[30]+val58); |
| var alu134 = (acc0[31]+val58); |
| var alu135 = (acc0[32]+val58); |
| var alu136 = (acc0[33]+val58); |
| var alu137 = (acc0[34]+val58); |
| var alu138 = (acc0[35]+val58); |
| var alu139 = (acc0[36]+val58); |
| var alu140 = (acc0[37]+val58); |
| var alu141 = (acc0[38]+val58); |
| var alu142 = (acc0[39]+val58); |
| var alu143 = (acc0[40]+val58); |
| var alu144 = (acc0[41]+val58); |
| var alu145 = (acc0[42]+val58); |
| var alu146 = (acc0[43]+val58); |
| var alu147 = (acc0[44]+val58); |
| var alu148 = (acc0[45]+val58); |
| var alu149 = (acc0[46]+val58); |
| var alu150 = (acc0[47]+val58); |
| var alu151 = (acc0[48]+val58); |
| var alu152 = select((alu103*val59),alu103,(0.0f<alu103)); |
| var alu153 = select((alu104*val59),alu104,(0.0f<alu104)); |
| var alu154 = select((alu105*val59),alu105,(0.0f<alu105)); |
| var alu155 = select((alu106*val59),alu106,(0.0f<alu106)); |
| var alu156 = select((alu107*val59),alu107,(0.0f<alu107)); |
| var alu157 = select((alu108*val59),alu108,(0.0f<alu108)); |
| var alu158 = select((alu109*val59),alu109,(0.0f<alu109)); |
| var alu159 = select((alu110*val59),alu110,(0.0f<alu110)); |
| var alu160 = select((alu111*val59),alu111,(0.0f<alu111)); |
| var alu161 = select((alu112*val59),alu112,(0.0f<alu112)); |
| var alu162 = select((alu113*val59),alu113,(0.0f<alu113)); |
| var alu163 = select((alu114*val59),alu114,(0.0f<alu114)); |
| var alu164 = select((alu115*val59),alu115,(0.0f<alu115)); |
| var alu165 = select((alu116*val59),alu116,(0.0f<alu116)); |
| var alu166 = select((alu117*val59),alu117,(0.0f<alu117)); |
| var alu167 = select((alu118*val59),alu118,(0.0f<alu118)); |
| var alu168 = select((alu119*val59),alu119,(0.0f<alu119)); |
| var alu169 = select((alu120*val59),alu120,(0.0f<alu120)); |
| var alu170 = select((alu121*val59),alu121,(0.0f<alu121)); |
| var alu171 = select((alu122*val59),alu122,(0.0f<alu122)); |
| var alu172 = select((alu123*val59),alu123,(0.0f<alu123)); |
| var alu173 = select((alu124*val59),alu124,(0.0f<alu124)); |
| var alu174 = select((alu125*val59),alu125,(0.0f<alu125)); |
| var alu175 = select((alu126*val59),alu126,(0.0f<alu126)); |
| var alu176 = select((alu127*val59),alu127,(0.0f<alu127)); |
| var alu177 = select((alu128*val59),alu128,(0.0f<alu128)); |
| var alu178 = select((alu129*val59),alu129,(0.0f<alu129)); |
| var alu179 = select((alu130*val59),alu130,(0.0f<alu130)); |
| var alu180 = select((alu131*val59),alu131,(0.0f<alu131)); |
| var alu181 = select((alu132*val59),alu132,(0.0f<alu132)); |
| var alu182 = select((alu133*val59),alu133,(0.0f<alu133)); |
| var alu183 = select((alu134*val59),alu134,(0.0f<alu134)); |
| var alu184 = select((alu135*val59),alu135,(0.0f<alu135)); |
| var alu185 = select((alu136*val59),alu136,(0.0f<alu136)); |
| var alu186 = select((alu137*val59),alu137,(0.0f<alu137)); |
| var alu187 = select((alu138*val59),alu138,(0.0f<alu138)); |
| var alu188 = select((alu139*val59),alu139,(0.0f<alu139)); |
| var alu189 = select((alu140*val59),alu140,(0.0f<alu140)); |
| var alu190 = select((alu141*val59),alu141,(0.0f<alu141)); |
| var alu191 = select((alu142*val59),alu142,(0.0f<alu142)); |
| var alu192 = select((alu143*val59),alu143,(0.0f<alu143)); |
| var alu193 = select((alu144*val59),alu144,(0.0f<alu144)); |
| var alu194 = select((alu145*val59),alu145,(0.0f<alu145)); |
| var alu195 = select((alu146*val59),alu146,(0.0f<alu146)); |
| var alu196 = select((alu147*val59),alu147,(0.0f<alu147)); |
| var alu197 = select((alu148*val59),alu148,(0.0f<alu148)); |
| var alu198 = select((alu149*val59),alu149,(0.0f<alu149)); |
| var alu199 = select((alu150*val59),alu150,(0.0f<alu150)); |
| var alu200 = select((alu151*val59),alu151,(0.0f<alu151)); |
| data0_25088[(alu102+1)] = alu159; |
| data0_25088[(alu102+2)] = alu166; |
| data0_25088[(alu102+3)] = alu173; |
| data0_25088[(alu102+4)] = alu180; |
| data0_25088[(alu102+5)] = alu187; |
| data0_25088[(alu102+6)] = alu194; |
| data0_25088[(alu102+7)] = alu153; |
| data0_25088[(alu102+8)] = alu160; |
| data0_25088[(alu102+9)] = alu167; |
| data0_25088[(alu102+10)] = alu174; |
| data0_25088[(alu102+11)] = alu181; |
| data0_25088[(alu102+12)] = alu188; |
| data0_25088[(alu102+13)] = alu195; |
| data0_25088[(alu102+14)] = alu154; |
| data0_25088[(alu102+15)] = alu161; |
| data0_25088[(alu102+16)] = alu168; |
| data0_25088[(alu102+17)] = alu175; |
| data0_25088[(alu102+18)] = alu182; |
| data0_25088[(alu102+19)] = alu189; |
| data0_25088[(alu102+20)] = alu196; |
| data0_25088[(alu102+21)] = alu155; |
| data0_25088[(alu102+22)] = alu162; |
| data0_25088[(alu102+23)] = alu169; |
| data0_25088[(alu102+24)] = alu176; |
| data0_25088[(alu102+25)] = alu183; |
| data0_25088[(alu102+26)] = alu190; |
| data0_25088[(alu102+27)] = alu197; |
| data0_25088[(alu102+28)] = alu156; |
| data0_25088[(alu102+29)] = alu163; |
| data0_25088[(alu102+30)] = alu170; |
| data0_25088[(alu102+31)] = alu177; |
| data0_25088[(alu102+32)] = alu184; |
| data0_25088[(alu102+33)] = alu191; |
| data0_25088[(alu102+34)] = alu198; |
| data0_25088[(alu102+35)] = alu157; |
| data0_25088[(alu102+36)] = alu164; |
| data0_25088[(alu102+37)] = alu171; |
| data0_25088[(alu102+38)] = alu178; |
| data0_25088[(alu102+39)] = alu185; |
| data0_25088[(alu102+40)] = alu192; |
| data0_25088[(alu102+41)] = alu199; |
| data0_25088[(alu102+42)] = alu158; |
| data0_25088[(alu102+43)] = alu165; |
| data0_25088[(alu102+44)] = alu172; |
| data0_25088[(alu102+45)] = alu179; |
| data0_25088[(alu102+46)] = alu186; |
| data0_25088[(alu102+47)] = alu193; |
| data0_25088[(alu102+48)] = alu200; |
| data0_25088[alu102] = alu152; |
| }`; |
|
|
| const r_16_32_7_7_512_3_3n1 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_25088:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_25088:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_2359296:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_25088:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,49>; |
| var gidx0 = i32(gindex.x); /* 16 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| acc0[16] = 0.0f; |
| acc0[17] = 0.0f; |
| acc0[18] = 0.0f; |
| acc0[19] = 0.0f; |
| acc0[20] = 0.0f; |
| acc0[21] = 0.0f; |
| acc0[22] = 0.0f; |
| acc0[23] = 0.0f; |
| acc0[24] = 0.0f; |
| acc0[25] = 0.0f; |
| acc0[26] = 0.0f; |
| acc0[27] = 0.0f; |
| acc0[28] = 0.0f; |
| acc0[29] = 0.0f; |
| acc0[30] = 0.0f; |
| acc0[31] = 0.0f; |
| acc0[32] = 0.0f; |
| acc0[33] = 0.0f; |
| acc0[34] = 0.0f; |
| acc0[35] = 0.0f; |
| acc0[36] = 0.0f; |
| acc0[37] = 0.0f; |
| acc0[38] = 0.0f; |
| acc0[39] = 0.0f; |
| acc0[40] = 0.0f; |
| acc0[41] = 0.0f; |
| acc0[42] = 0.0f; |
| acc0[43] = 0.0f; |
| acc0[44] = 0.0f; |
| acc0[45] = 0.0f; |
| acc0[46] = 0.0f; |
| acc0[47] = 0.0f; |
| acc0[48] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 512; Ridx0++) { |
| var alu49 = (Ridx0*49); |
| var val0 = data1_25088[(alu49+1)]; |
| var val1 = data1_25088[(alu49+8)]; |
| var val2 = data1_25088[alu49]; |
| var alu50 = ((gidx0*147456)+(lidx0*4608)+(Ridx0*9)); |
| var val3 = data2_2359296[(alu50+1)]; |
| var val4 = data2_2359296[(alu50+4)]; |
| var val5 = data2_2359296[(alu50+5)]; |
| var val6 = data1_25088[(alu49+7)]; |
| var val7 = data2_2359296[(alu50+7)]; |
| var val8 = data2_2359296[(alu50+8)]; |
| var val9 = data2_2359296[(alu50+2)]; |
| var val10 = data1_25088[(alu49+14)]; |
| var val11 = data1_25088[(alu49+15)]; |
| var val12 = data1_25088[(alu49+21)]; |
| var val13 = data1_25088[(alu49+22)]; |
| var val14 = data1_25088[(alu49+17)]; |
| var val15 = data1_25088[(alu49+28)]; |
| var val16 = data1_25088[(alu49+29)]; |
| var val17 = data1_25088[(alu49+30)]; |
| var val18 = data1_25088[(alu49+35)]; |
| var val19 = data1_25088[(alu49+36)]; |
| var val20 = data1_25088[(alu49+42)]; |
| var val21 = data1_25088[(alu49+43)]; |
| var val22 = data2_2359296[(alu50+3)]; |
| var val23 = data1_25088[(alu49+2)]; |
| var val24 = data2_2359296[(alu50+6)]; |
| var val25 = data1_25088[(alu49+9)]; |
| var val26 = data2_2359296[alu50]; |
| var val27 = data1_25088[(alu49+16)]; |
| var val28 = data1_25088[(alu49+23)]; |
| var val29 = data1_25088[(alu49+37)]; |
| var val30 = data1_25088[(alu49+44)]; |
| var val31 = data1_25088[(alu49+3)]; |
| var val32 = data1_25088[(alu49+10)]; |
| var val33 = data1_25088[(alu49+24)]; |
| var val34 = data1_25088[(alu49+31)]; |
| var val35 = data1_25088[(alu49+38)]; |
| var val36 = data1_25088[(alu49+45)]; |
| var val37 = data1_25088[(alu49+4)]; |
| var val38 = data1_25088[(alu49+11)]; |
| var val39 = data1_25088[(alu49+18)]; |
| var val40 = data1_25088[(alu49+25)]; |
| var val41 = data1_25088[(alu49+32)]; |
| var val42 = data1_25088[(alu49+39)]; |
| var val43 = data1_25088[(alu49+46)]; |
| var val44 = data1_25088[(alu49+5)]; |
| var val45 = data1_25088[(alu49+12)]; |
| var val46 = data1_25088[(alu49+19)]; |
| var val47 = data1_25088[(alu49+26)]; |
| var val48 = data1_25088[(alu49+33)]; |
| var val49 = data1_25088[(alu49+40)]; |
| var val50 = data1_25088[(alu49+47)]; |
| var val51 = data1_25088[(alu49+6)]; |
| var val52 = data1_25088[(alu49+13)]; |
| var val53 = data1_25088[(alu49+20)]; |
| var val54 = data1_25088[(alu49+27)]; |
| var val55 = data1_25088[(alu49+34)]; |
| var val56 = data1_25088[(alu49+41)]; |
| var val57 = data1_25088[(alu49+48)]; |
| acc0[0] = (acc0[0]+(val2*val4)+(val0*val5)+(val6*val7)+(val1*val8)); |
| acc0[1] = (acc0[1]+(val2*val3)+(val0*val9)+(val6*val4)+(val1*val5)+(val10*val7)+(val11*val8)); |
| acc0[2] = (acc0[2]+(val6*val3)+(val1*val9)+(val10*val4)+(val11*val5)+(val12*val7)+(val13*val8)); |
| acc0[3] = (acc0[3]+(val10*val3)+(val11*val9)+(val12*val4)+(val13*val5)+(val15*val7)+(val16*val8)); |
| acc0[4] = (acc0[4]+(val12*val3)+(val13*val9)+(val15*val4)+(val16*val5)+(val18*val7)+(val19*val8)); |
| acc0[5] = (acc0[5]+(val15*val3)+(val16*val9)+(val18*val4)+(val19*val5)+(val20*val7)+(val21*val8)); |
| acc0[6] = (acc0[6]+(val18*val3)+(val19*val9)+(val20*val4)+(val21*val5)); |
| acc0[7] = (acc0[7]+(val2*val22)+(val0*val4)+(val23*val5)+(val6*val24)+(val1*val7)+(val25*val8)); |
| acc0[8] = (acc0[8]+(val2*val26)+(val0*val3)+(val23*val9)+(val6*val22)+(val1*val4)+(val25*val5)+(val10*val24)+(val11*val7)+(val27*val8)); |
| acc0[9] = (acc0[9]+(val6*val26)+(val1*val3)+(val25*val9)+(val10*val22)+(val11*val4)+(val27*val5)+(val12*val24)+(val13*val7)+(val28*val8)); |
| acc0[10] = (acc0[10]+(val10*val26)+(val11*val3)+(val27*val9)+(val12*val22)+(val13*val4)+(val28*val5)+(val15*val24)+(val16*val7)+(val17*val8)); |
| acc0[11] = (acc0[11]+(val12*val26)+(val13*val3)+(val28*val9)+(val15*val22)+(val16*val4)+(val17*val5)+(val18*val24)+(val19*val7)+(val29*val8)); |
| acc0[12] = (acc0[12]+(val15*val26)+(val16*val3)+(val17*val9)+(val18*val22)+(val19*val4)+(val29*val5)+(val20*val24)+(val21*val7)+(val30*val8)); |
| acc0[13] = (acc0[13]+(val18*val26)+(val19*val3)+(val29*val9)+(val20*val22)+(val21*val4)+(val30*val5)); |
| acc0[14] = (acc0[14]+(val0*val22)+(val23*val4)+(val31*val5)+(val1*val24)+(val25*val7)+(val32*val8)); |
| acc0[15] = (acc0[15]+(val0*val26)+(val23*val3)+(val31*val9)+(val1*val22)+(val25*val4)+(val32*val5)+(val11*val24)+(val27*val7)+(val14*val8)); |
| acc0[16] = (acc0[16]+(val1*val26)+(val25*val3)+(val32*val9)+(val11*val22)+(val27*val4)+(val14*val5)+(val13*val24)+(val28*val7)+(val33*val8)); |
| acc0[17] = (acc0[17]+(val11*val26)+(val27*val3)+(val14*val9)+(val13*val22)+(val28*val4)+(val33*val5)+(val16*val24)+(val17*val7)+(val34*val8)); |
| acc0[18] = (acc0[18]+(val13*val26)+(val28*val3)+(val33*val9)+(val16*val22)+(val17*val4)+(val34*val5)+(val19*val24)+(val29*val7)+(val35*val8)); |
| acc0[19] = (acc0[19]+(val16*val26)+(val17*val3)+(val34*val9)+(val19*val22)+(val29*val4)+(val35*val5)+(val21*val24)+(val30*val7)+(val36*val8)); |
| acc0[20] = (acc0[20]+(val19*val26)+(val29*val3)+(val35*val9)+(val21*val22)+(val30*val4)+(val36*val5)); |
| acc0[21] = (acc0[21]+(val23*val22)+(val31*val4)+(val37*val5)+(val25*val24)+(val32*val7)+(val38*val8)); |
| acc0[22] = (acc0[22]+(val23*val26)+(val31*val3)+(val37*val9)+(val25*val22)+(val32*val4)+(val38*val5)+(val27*val24)+(val14*val7)+(val39*val8)); |
| acc0[23] = (acc0[23]+(val25*val26)+(val32*val3)+(val38*val9)+(val27*val22)+(val14*val4)+(val39*val5)+(val28*val24)+(val33*val7)+(val40*val8)); |
| acc0[24] = (acc0[24]+(val27*val26)+(val14*val3)+(val39*val9)+(val28*val22)+(val33*val4)+(val40*val5)+(val17*val24)+(val34*val7)+(val41*val8)); |
| acc0[25] = (acc0[25]+(val28*val26)+(val33*val3)+(val40*val9)+(val17*val22)+(val34*val4)+(val41*val5)+(val29*val24)+(val35*val7)+(val42*val8)); |
| acc0[26] = (acc0[26]+(val17*val26)+(val34*val3)+(val41*val9)+(val29*val22)+(val35*val4)+(val42*val5)+(val30*val24)+(val36*val7)+(val43*val8)); |
| acc0[27] = (acc0[27]+(val29*val26)+(val35*val3)+(val42*val9)+(val30*val22)+(val36*val4)+(val43*val5)); |
| acc0[28] = (acc0[28]+(val31*val22)+(val37*val4)+(val44*val5)+(val32*val24)+(val38*val7)+(val45*val8)); |
| acc0[29] = (acc0[29]+(val31*val26)+(val37*val3)+(val44*val9)+(val32*val22)+(val38*val4)+(val45*val5)+(val14*val24)+(val39*val7)+(val46*val8)); |
| acc0[30] = (acc0[30]+(val32*val26)+(val38*val3)+(val45*val9)+(val14*val22)+(val39*val4)+(val46*val5)+(val33*val24)+(val40*val7)+(val47*val8)); |
| acc0[31] = (acc0[31]+(val14*val26)+(val39*val3)+(val46*val9)+(val33*val22)+(val40*val4)+(val47*val5)+(val34*val24)+(val41*val7)+(val48*val8)); |
| acc0[32] = (acc0[32]+(val33*val26)+(val40*val3)+(val47*val9)+(val34*val22)+(val41*val4)+(val48*val5)+(val35*val24)+(val42*val7)+(val49*val8)); |
| acc0[33] = (acc0[33]+(val34*val26)+(val41*val3)+(val48*val9)+(val35*val22)+(val42*val4)+(val49*val5)+(val36*val24)+(val43*val7)+(val50*val8)); |
| acc0[34] = (acc0[34]+(val35*val26)+(val42*val3)+(val49*val9)+(val36*val22)+(val43*val4)+(val50*val5)); |
| acc0[35] = (acc0[35]+(val37*val22)+(val44*val4)+(val51*val5)+(val38*val24)+(val45*val7)+(val52*val8)); |
| acc0[36] = (acc0[36]+(val37*val26)+(val44*val3)+(val51*val9)+(val38*val22)+(val45*val4)+(val52*val5)+(val39*val24)+(val46*val7)+(val53*val8)); |
| acc0[37] = (acc0[37]+(val38*val26)+(val45*val3)+(val52*val9)+(val39*val22)+(val46*val4)+(val53*val5)+(val40*val24)+(val47*val7)+(val54*val8)); |
| acc0[38] = (acc0[38]+(val39*val26)+(val46*val3)+(val53*val9)+(val40*val22)+(val47*val4)+(val54*val5)+(val41*val24)+(val48*val7)+(val55*val8)); |
| acc0[39] = (acc0[39]+(val40*val26)+(val47*val3)+(val54*val9)+(val41*val22)+(val48*val4)+(val55*val5)+(val42*val24)+(val49*val7)+(val56*val8)); |
| acc0[40] = (acc0[40]+(val41*val26)+(val48*val3)+(val55*val9)+(val42*val22)+(val49*val4)+(val56*val5)+(val43*val24)+(val50*val7)+(val57*val8)); |
| acc0[41] = (acc0[41]+(val42*val26)+(val49*val3)+(val56*val9)+(val43*val22)+(val50*val4)+(val57*val5)); |
| acc0[42] = (acc0[42]+(val44*val22)+(val51*val4)+(val45*val24)+(val52*val7)); |
| acc0[43] = (acc0[43]+(val44*val26)+(val51*val3)+(val45*val22)+(val52*val4)+(val46*val24)+(val53*val7)); |
| acc0[44] = (acc0[44]+(val45*val26)+(val52*val3)+(val46*val22)+(val53*val4)+(val47*val24)+(val54*val7)); |
| acc0[45] = (acc0[45]+(val46*val26)+(val53*val3)+(val47*val22)+(val54*val4)+(val48*val24)+(val55*val7)); |
| acc0[46] = (acc0[46]+(val47*val26)+(val54*val3)+(val48*val22)+(val55*val4)+(val49*val24)+(val56*val7)); |
| acc0[47] = (acc0[47]+(val48*val26)+(val55*val3)+(val49*val22)+(val56*val4)+(val50*val24)+(val57*val7)); |
| acc0[48] = (acc0[48]+(val49*val26)+(val56*val3)+(val50*val22)+(val57*val4)); |
| } |
| var val58 = data3_512[(lidx0+bitcast<i32>((bitcast<u32>(gidx0)<<5u)))]; |
| var alu101 = ((gidx0*1568)+(lidx0*49)); |
| var alu102 = (alu101+1); |
| var val59 = data4_25088[alu102]; |
| var alu103 = (alu101+2); |
| var val60 = data4_25088[alu103]; |
| var alu104 = (alu101+3); |
| var val61 = data4_25088[alu104]; |
| var alu105 = (alu101+4); |
| var val62 = data4_25088[alu105]; |
| var val63 = data4_25088[alu101]; |
| var alu106 = (alu101+5); |
| var val64 = data4_25088[alu106]; |
| var alu107 = (alu101+6); |
| var val65 = data4_25088[alu107]; |
| var alu108 = (alu101+7); |
| var val66 = data4_25088[alu108]; |
| var alu109 = (alu101+8); |
| var val67 = data4_25088[alu109]; |
| var alu110 = (alu101+9); |
| var val68 = data4_25088[alu110]; |
| var alu111 = (alu101+10); |
| var val69 = data4_25088[alu111]; |
| var alu112 = (alu101+11); |
| var val70 = data4_25088[alu112]; |
| var alu113 = (alu101+12); |
| var val71 = data4_25088[alu113]; |
| var alu114 = (alu101+13); |
| var val72 = data4_25088[alu114]; |
| var alu115 = (alu101+14); |
| var val73 = data4_25088[alu115]; |
| var alu116 = (alu101+15); |
| var val74 = data4_25088[alu116]; |
| var alu117 = (alu101+16); |
| var val75 = data4_25088[alu117]; |
| var alu118 = (alu101+17); |
| var val76 = data4_25088[alu118]; |
| var alu119 = (alu101+18); |
| var val77 = data4_25088[alu119]; |
| var alu120 = (alu101+19); |
| var val78 = data4_25088[alu120]; |
| var alu121 = (alu101+20); |
| var val79 = data4_25088[alu121]; |
| var alu122 = (alu101+21); |
| var val80 = data4_25088[alu122]; |
| var alu123 = (alu101+22); |
| var val81 = data4_25088[alu123]; |
| var alu124 = (alu101+23); |
| var val82 = data4_25088[alu124]; |
| var alu125 = (alu101+24); |
| var val83 = data4_25088[alu125]; |
| var alu126 = (alu101+25); |
| var val84 = data4_25088[alu126]; |
| var alu127 = (alu101+26); |
| var val85 = data4_25088[alu127]; |
| var alu128 = (alu101+27); |
| var val86 = data4_25088[alu128]; |
| var alu129 = (alu101+28); |
| var val87 = data4_25088[alu129]; |
| var alu130 = (alu101+29); |
| var val88 = data4_25088[alu130]; |
| var alu131 = (alu101+30); |
| var val89 = data4_25088[alu131]; |
| var alu132 = (alu101+31); |
| var val90 = data4_25088[alu132]; |
| var alu133 = (alu101+32); |
| var val91 = data4_25088[alu133]; |
| var alu134 = (alu101+33); |
| var val92 = data4_25088[alu134]; |
| var alu135 = (alu101+34); |
| var val93 = data4_25088[alu135]; |
| var alu136 = (alu101+35); |
| var val94 = data4_25088[alu136]; |
| var alu137 = (alu101+36); |
| var val95 = data4_25088[alu137]; |
| var alu138 = (alu101+37); |
| var val96 = data4_25088[alu138]; |
| var alu139 = (alu101+38); |
| var val97 = data4_25088[alu139]; |
| var alu140 = (alu101+39); |
| var val98 = data4_25088[alu140]; |
| var alu141 = (alu101+40); |
| var val99 = data4_25088[alu141]; |
| var alu142 = (alu101+41); |
| var val100 = data4_25088[alu142]; |
| var alu143 = (alu101+42); |
| var val101 = data4_25088[alu143]; |
| var alu144 = (alu101+43); |
| var val102 = data4_25088[alu144]; |
| var alu145 = (alu101+44); |
| var val103 = data4_25088[alu145]; |
| var alu146 = (alu101+45); |
| var val104 = data4_25088[alu146]; |
| var alu147 = (alu101+46); |
| var val105 = data4_25088[alu147]; |
| var alu148 = (alu101+47); |
| var val106 = data4_25088[alu148]; |
| var alu149 = (alu101+48); |
| var val107 = data4_25088[alu149]; |
| data0_25088[alu102] = (acc0[7]+val58+val59); |
| data0_25088[alu103] = (acc0[14]+val58+val60); |
| data0_25088[alu104] = (acc0[21]+val58+val61); |
| data0_25088[alu105] = (acc0[28]+val58+val62); |
| data0_25088[alu106] = (acc0[35]+val58+val64); |
| data0_25088[alu107] = (acc0[42]+val58+val65); |
| data0_25088[alu108] = (acc0[1]+val58+val66); |
| data0_25088[alu109] = (acc0[8]+val58+val67); |
| data0_25088[alu110] = (acc0[15]+val58+val68); |
| data0_25088[alu111] = (acc0[22]+val58+val69); |
| data0_25088[alu112] = (acc0[29]+val58+val70); |
| data0_25088[alu113] = (acc0[36]+val58+val71); |
| data0_25088[alu114] = (acc0[43]+val58+val72); |
| data0_25088[alu115] = (acc0[2]+val58+val73); |
| data0_25088[alu116] = (acc0[9]+val58+val74); |
| data0_25088[alu117] = (acc0[16]+val58+val75); |
| data0_25088[alu118] = (acc0[23]+val58+val76); |
| data0_25088[alu119] = (acc0[30]+val58+val77); |
| data0_25088[alu120] = (acc0[37]+val58+val78); |
| data0_25088[alu121] = (acc0[44]+val58+val79); |
| data0_25088[alu122] = (acc0[3]+val58+val80); |
| data0_25088[alu123] = (acc0[10]+val58+val81); |
| data0_25088[alu124] = (acc0[17]+val58+val82); |
| data0_25088[alu125] = (acc0[24]+val58+val83); |
| data0_25088[alu126] = (acc0[31]+val58+val84); |
| data0_25088[alu127] = (acc0[38]+val58+val85); |
| data0_25088[alu128] = (acc0[45]+val58+val86); |
| data0_25088[alu129] = (acc0[4]+val58+val87); |
| data0_25088[alu130] = (acc0[11]+val58+val88); |
| data0_25088[alu131] = (acc0[18]+val58+val89); |
| data0_25088[alu132] = (acc0[25]+val58+val90); |
| data0_25088[alu133] = (acc0[32]+val58+val91); |
| data0_25088[alu134] = (acc0[39]+val58+val92); |
| data0_25088[alu135] = (acc0[46]+val58+val93); |
| data0_25088[alu136] = (acc0[5]+val58+val94); |
| data0_25088[alu137] = (acc0[12]+val58+val95); |
| data0_25088[alu138] = (acc0[19]+val58+val96); |
| data0_25088[alu139] = (acc0[26]+val58+val97); |
| data0_25088[alu140] = (acc0[33]+val58+val98); |
| data0_25088[alu141] = (acc0[40]+val58+val99); |
| data0_25088[alu142] = (acc0[47]+val58+val100); |
| data0_25088[alu143] = (acc0[6]+val58+val101); |
| data0_25088[alu144] = (acc0[13]+val58+val102); |
| data0_25088[alu145] = (acc0[20]+val58+val103); |
| data0_25088[alu146] = (acc0[27]+val58+val104); |
| data0_25088[alu147] = (acc0[34]+val58+val105); |
| data0_25088[alu148] = (acc0[41]+val58+val106); |
| data0_25088[alu149] = (acc0[48]+val58+val107); |
| data0_25088[alu101] = (acc0[0]+val58+val63); |
| }`; |
|
|
| const r_16_32_7_7_512_3_3n2 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_25088:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_25088:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_2359296:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_25088:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_512:array<f32>; |
| @group(0) @binding(7)var<storage,read_write>data6_512:array<f32>; |
| @group(0) @binding(8)var<storage,read_write>data7_512:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,49>; |
| var gidx0 = i32(gindex.x); /* 16 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| acc0[4] = 0.0f; |
| acc0[5] = 0.0f; |
| acc0[6] = 0.0f; |
| acc0[7] = 0.0f; |
| acc0[8] = 0.0f; |
| acc0[9] = 0.0f; |
| acc0[10] = 0.0f; |
| acc0[11] = 0.0f; |
| acc0[12] = 0.0f; |
| acc0[13] = 0.0f; |
| acc0[14] = 0.0f; |
| acc0[15] = 0.0f; |
| acc0[16] = 0.0f; |
| acc0[17] = 0.0f; |
| acc0[18] = 0.0f; |
| acc0[19] = 0.0f; |
| acc0[20] = 0.0f; |
| acc0[21] = 0.0f; |
| acc0[22] = 0.0f; |
| acc0[23] = 0.0f; |
| acc0[24] = 0.0f; |
| acc0[25] = 0.0f; |
| acc0[26] = 0.0f; |
| acc0[27] = 0.0f; |
| acc0[28] = 0.0f; |
| acc0[29] = 0.0f; |
| acc0[30] = 0.0f; |
| acc0[31] = 0.0f; |
| acc0[32] = 0.0f; |
| acc0[33] = 0.0f; |
| acc0[34] = 0.0f; |
| acc0[35] = 0.0f; |
| acc0[36] = 0.0f; |
| acc0[37] = 0.0f; |
| acc0[38] = 0.0f; |
| acc0[39] = 0.0f; |
| acc0[40] = 0.0f; |
| acc0[41] = 0.0f; |
| acc0[42] = 0.0f; |
| acc0[43] = 0.0f; |
| acc0[44] = 0.0f; |
| acc0[45] = 0.0f; |
| acc0[46] = 0.0f; |
| acc0[47] = 0.0f; |
| acc0[48] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 512; Ridx0++) { |
| var alu49 = (Ridx0*49); |
| var val0 = data1_25088[(alu49+1)]; |
| var val1 = data1_25088[alu49]; |
| var alu50 = ((gidx0*147456)+(lidx0*4608)+(Ridx0*9)); |
| var val2 = data2_2359296[(alu50+1)]; |
| var val3 = data2_2359296[(alu50+2)]; |
| var val4 = data2_2359296[(alu50+4)]; |
| var val5 = data2_2359296[(alu50+5)]; |
| var val6 = data1_25088[(alu49+7)]; |
| var val7 = data2_2359296[(alu50+7)]; |
| var val8 = data1_25088[(alu49+8)]; |
| var val9 = data2_2359296[(alu50+8)]; |
| var val10 = data1_25088[(alu49+14)]; |
| var val11 = data1_25088[(alu49+15)]; |
| var val12 = data1_25088[(alu49+21)]; |
| var val13 = data1_25088[(alu49+22)]; |
| var val14 = data1_25088[(alu49+28)]; |
| var val15 = data1_25088[(alu49+29)]; |
| var val16 = data1_25088[(alu49+35)]; |
| var val17 = data1_25088[(alu49+36)]; |
| var val18 = data1_25088[(alu49+42)]; |
| var val19 = data1_25088[(alu49+43)]; |
| var val20 = data2_2359296[(alu50+3)]; |
| var val21 = data1_25088[(alu49+2)]; |
| var val22 = data2_2359296[(alu50+6)]; |
| var val23 = data1_25088[(alu49+9)]; |
| var val24 = data2_2359296[alu50]; |
| var val25 = data1_25088[(alu49+16)]; |
| var val26 = data1_25088[(alu49+23)]; |
| var val27 = data1_25088[(alu49+30)]; |
| var val28 = data1_25088[(alu49+37)]; |
| var val29 = data1_25088[(alu49+44)]; |
| var val30 = data1_25088[(alu49+3)]; |
| var val31 = data1_25088[(alu49+10)]; |
| var val32 = data1_25088[(alu49+17)]; |
| var val33 = data1_25088[(alu49+24)]; |
| var val34 = data1_25088[(alu49+31)]; |
| var val35 = data1_25088[(alu49+11)]; |
| var val36 = data1_25088[(alu49+38)]; |
| var val37 = data1_25088[(alu49+45)]; |
| var val38 = data1_25088[(alu49+4)]; |
| var val39 = data1_25088[(alu49+18)]; |
| var val40 = data1_25088[(alu49+25)]; |
| var val41 = data1_25088[(alu49+19)]; |
| var val42 = data1_25088[(alu49+32)]; |
| var val43 = data1_25088[(alu49+39)]; |
| var val44 = data1_25088[(alu49+46)]; |
| var val45 = data1_25088[(alu49+5)]; |
| var val46 = data1_25088[(alu49+12)]; |
| var val47 = data1_25088[(alu49+26)]; |
| var val48 = data1_25088[(alu49+33)]; |
| var val49 = data1_25088[(alu49+40)]; |
| var val50 = data1_25088[(alu49+47)]; |
| var val51 = data1_25088[(alu49+6)]; |
| var val52 = data1_25088[(alu49+13)]; |
| var val53 = data1_25088[(alu49+20)]; |
| var val54 = data1_25088[(alu49+27)]; |
| var val55 = data1_25088[(alu49+34)]; |
| var val56 = data1_25088[(alu49+41)]; |
| var val57 = data1_25088[(alu49+48)]; |
| acc0[0] = (acc0[0]+(val1*val4)+(val0*val5)+(val6*val7)+(val8*val9)); |
| acc0[1] = (acc0[1]+(val1*val2)+(val0*val3)+(val6*val4)+(val8*val5)+(val10*val7)+(val11*val9)); |
| acc0[2] = (acc0[2]+(val6*val2)+(val8*val3)+(val10*val4)+(val11*val5)+(val12*val7)+(val13*val9)); |
| acc0[3] = (acc0[3]+(val10*val2)+(val11*val3)+(val12*val4)+(val13*val5)+(val14*val7)+(val15*val9)); |
| acc0[4] = (acc0[4]+(val12*val2)+(val13*val3)+(val14*val4)+(val15*val5)+(val16*val7)+(val17*val9)); |
| acc0[5] = (acc0[5]+(val14*val2)+(val15*val3)+(val16*val4)+(val17*val5)+(val18*val7)+(val19*val9)); |
| acc0[6] = (acc0[6]+(val16*val2)+(val17*val3)+(val18*val4)+(val19*val5)); |
| acc0[7] = (acc0[7]+(val1*val20)+(val0*val4)+(val21*val5)+(val6*val22)+(val8*val7)+(val23*val9)); |
| acc0[8] = (acc0[8]+(val1*val24)+(val0*val2)+(val21*val3)+(val6*val20)+(val8*val4)+(val23*val5)+(val10*val22)+(val11*val7)+(val25*val9)); |
| acc0[9] = (acc0[9]+(val6*val24)+(val8*val2)+(val23*val3)+(val10*val20)+(val11*val4)+(val25*val5)+(val12*val22)+(val13*val7)+(val26*val9)); |
| acc0[10] = (acc0[10]+(val10*val24)+(val11*val2)+(val25*val3)+(val12*val20)+(val13*val4)+(val26*val5)+(val14*val22)+(val15*val7)+(val27*val9)); |
| acc0[11] = (acc0[11]+(val12*val24)+(val13*val2)+(val26*val3)+(val14*val20)+(val15*val4)+(val27*val5)+(val16*val22)+(val17*val7)+(val28*val9)); |
| acc0[12] = (acc0[12]+(val14*val24)+(val15*val2)+(val27*val3)+(val16*val20)+(val17*val4)+(val28*val5)+(val18*val22)+(val19*val7)+(val29*val9)); |
| acc0[13] = (acc0[13]+(val16*val24)+(val17*val2)+(val28*val3)+(val18*val20)+(val19*val4)+(val29*val5)); |
| acc0[14] = (acc0[14]+(val0*val20)+(val21*val4)+(val30*val5)+(val8*val22)+(val23*val7)+(val31*val9)); |
| acc0[15] = (acc0[15]+(val0*val24)+(val21*val2)+(val30*val3)+(val8*val20)+(val23*val4)+(val31*val5)+(val11*val22)+(val25*val7)+(val32*val9)); |
| acc0[16] = (acc0[16]+(val8*val24)+(val23*val2)+(val31*val3)+(val11*val20)+(val25*val4)+(val32*val5)+(val13*val22)+(val26*val7)+(val33*val9)); |
| acc0[17] = (acc0[17]+(val11*val24)+(val25*val2)+(val32*val3)+(val13*val20)+(val26*val4)+(val33*val5)+(val15*val22)+(val27*val7)+(val34*val9)); |
| acc0[18] = (acc0[18]+(val13*val24)+(val26*val2)+(val33*val3)+(val15*val20)+(val27*val4)+(val34*val5)+(val17*val22)+(val28*val7)+(val36*val9)); |
| acc0[19] = (acc0[19]+(val15*val24)+(val27*val2)+(val34*val3)+(val17*val20)+(val28*val4)+(val36*val5)+(val19*val22)+(val29*val7)+(val37*val9)); |
| acc0[20] = (acc0[20]+(val17*val24)+(val28*val2)+(val36*val3)+(val19*val20)+(val29*val4)+(val37*val5)); |
| acc0[21] = (acc0[21]+(val21*val20)+(val30*val4)+(val38*val5)+(val23*val22)+(val31*val7)+(val35*val9)); |
| acc0[22] = (acc0[22]+(val21*val24)+(val30*val2)+(val38*val3)+(val23*val20)+(val31*val4)+(val35*val5)+(val25*val22)+(val32*val7)+(val39*val9)); |
| acc0[23] = (acc0[23]+(val23*val24)+(val31*val2)+(val35*val3)+(val25*val20)+(val32*val4)+(val39*val5)+(val26*val22)+(val33*val7)+(val40*val9)); |
| acc0[24] = (acc0[24]+(val25*val24)+(val32*val2)+(val39*val3)+(val26*val20)+(val33*val4)+(val40*val5)+(val27*val22)+(val34*val7)+(val42*val9)); |
| acc0[25] = (acc0[25]+(val26*val24)+(val33*val2)+(val40*val3)+(val27*val20)+(val34*val4)+(val42*val5)+(val28*val22)+(val36*val7)+(val43*val9)); |
| acc0[26] = (acc0[26]+(val27*val24)+(val34*val2)+(val42*val3)+(val28*val20)+(val36*val4)+(val43*val5)+(val29*val22)+(val37*val7)+(val44*val9)); |
| acc0[27] = (acc0[27]+(val28*val24)+(val36*val2)+(val43*val3)+(val29*val20)+(val37*val4)+(val44*val5)); |
| acc0[28] = (acc0[28]+(val30*val20)+(val38*val4)+(val45*val5)+(val31*val22)+(val35*val7)+(val46*val9)); |
| acc0[29] = (acc0[29]+(val30*val24)+(val38*val2)+(val45*val3)+(val31*val20)+(val35*val4)+(val46*val5)+(val32*val22)+(val39*val7)+(val41*val9)); |
| acc0[30] = (acc0[30]+(val31*val24)+(val35*val2)+(val46*val3)+(val32*val20)+(val39*val4)+(val41*val5)+(val33*val22)+(val40*val7)+(val47*val9)); |
| acc0[31] = (acc0[31]+(val32*val24)+(val39*val2)+(val41*val3)+(val33*val20)+(val40*val4)+(val47*val5)+(val34*val22)+(val42*val7)+(val48*val9)); |
| acc0[32] = (acc0[32]+(val33*val24)+(val40*val2)+(val47*val3)+(val34*val20)+(val42*val4)+(val48*val5)+(val36*val22)+(val43*val7)+(val49*val9)); |
| acc0[33] = (acc0[33]+(val34*val24)+(val42*val2)+(val48*val3)+(val36*val20)+(val43*val4)+(val49*val5)+(val37*val22)+(val44*val7)+(val50*val9)); |
| acc0[34] = (acc0[34]+(val36*val24)+(val43*val2)+(val49*val3)+(val37*val20)+(val44*val4)+(val50*val5)); |
| acc0[35] = (acc0[35]+(val38*val20)+(val45*val4)+(val51*val5)+(val35*val22)+(val46*val7)+(val52*val9)); |
| acc0[36] = (acc0[36]+(val38*val24)+(val45*val2)+(val51*val3)+(val35*val20)+(val46*val4)+(val52*val5)+(val39*val22)+(val41*val7)+(val53*val9)); |
| acc0[37] = (acc0[37]+(val35*val24)+(val46*val2)+(val52*val3)+(val39*val20)+(val41*val4)+(val53*val5)+(val40*val22)+(val47*val7)+(val54*val9)); |
| acc0[38] = (acc0[38]+(val39*val24)+(val41*val2)+(val53*val3)+(val40*val20)+(val47*val4)+(val54*val5)+(val42*val22)+(val48*val7)+(val55*val9)); |
| acc0[39] = (acc0[39]+(val40*val24)+(val47*val2)+(val54*val3)+(val42*val20)+(val48*val4)+(val55*val5)+(val43*val22)+(val49*val7)+(val56*val9)); |
| acc0[40] = (acc0[40]+(val42*val24)+(val48*val2)+(val55*val3)+(val43*val20)+(val49*val4)+(val56*val5)+(val44*val22)+(val50*val7)+(val57*val9)); |
| acc0[41] = (acc0[41]+(val43*val24)+(val49*val2)+(val56*val3)+(val44*val20)+(val50*val4)+(val57*val5)); |
| acc0[42] = (acc0[42]+(val45*val20)+(val51*val4)+(val46*val22)+(val52*val7)); |
| acc0[43] = (acc0[43]+(val45*val24)+(val51*val2)+(val46*val20)+(val52*val4)+(val41*val22)+(val53*val7)); |
| acc0[44] = (acc0[44]+(val46*val24)+(val52*val2)+(val41*val20)+(val53*val4)+(val47*val22)+(val54*val7)); |
| acc0[45] = (acc0[45]+(val41*val24)+(val53*val2)+(val47*val20)+(val54*val4)+(val48*val22)+(val55*val7)); |
| acc0[46] = (acc0[46]+(val47*val24)+(val54*val2)+(val48*val20)+(val55*val4)+(val49*val22)+(val56*val7)); |
| acc0[47] = (acc0[47]+(val48*val24)+(val55*val2)+(val49*val20)+(val56*val4)+(val50*val22)+(val57*val7)); |
| acc0[48] = (acc0[48]+(val49*val24)+(val56*val2)+(val50*val20)+(val57*val4)); |
| } |
| var alu101 = (lidx0+bitcast<i32>((bitcast<u32>(gidx0)<<5u))); |
| var val58 = data3_512[alu101]; |
| var alu102 = ((gidx0*1568)+(lidx0*49)); |
| var val59 = data4_25088[alu102]; |
| var val60 = data5_512[alu101]; |
| var val61 = data6_512[alu101]; |
| var val62 = data7_512[alu101]; |
| var val63 = data4_25088[(alu102+1)]; |
| var val64 = data4_25088[(alu102+2)]; |
| var val65 = data4_25088[(alu102+3)]; |
| var val66 = data4_25088[(alu102+4)]; |
| var val67 = data4_25088[(alu102+5)]; |
| var val68 = data4_25088[(alu102+6)]; |
| var val69 = data4_25088[(alu102+7)]; |
| var val70 = data4_25088[(alu102+8)]; |
| var val71 = data4_25088[(alu102+9)]; |
| var val72 = data4_25088[(alu102+10)]; |
| var val73 = data4_25088[(alu102+11)]; |
| var val74 = data4_25088[(alu102+12)]; |
| var val75 = data4_25088[(alu102+13)]; |
| var val76 = data4_25088[(alu102+14)]; |
| var val77 = data4_25088[(alu102+15)]; |
| var val78 = data4_25088[(alu102+16)]; |
| var val79 = data4_25088[(alu102+17)]; |
| var val80 = data4_25088[(alu102+18)]; |
| var val81 = data4_25088[(alu102+19)]; |
| var val82 = data4_25088[(alu102+20)]; |
| var val83 = data4_25088[(alu102+21)]; |
| var val84 = data4_25088[(alu102+22)]; |
| var val85 = data4_25088[(alu102+23)]; |
| var val86 = data4_25088[(alu102+24)]; |
| var val87 = data4_25088[(alu102+25)]; |
| var val88 = data4_25088[(alu102+26)]; |
| var val89 = data4_25088[(alu102+27)]; |
| var val90 = data4_25088[(alu102+28)]; |
| var val91 = data4_25088[(alu102+29)]; |
| var val92 = data4_25088[(alu102+30)]; |
| var val93 = data4_25088[(alu102+31)]; |
| var val94 = data4_25088[(alu102+32)]; |
| var val95 = data4_25088[(alu102+33)]; |
| var val96 = data4_25088[(alu102+34)]; |
| var val97 = data4_25088[(alu102+35)]; |
| var val98 = data4_25088[(alu102+36)]; |
| var val99 = data4_25088[(alu102+37)]; |
| var val100 = data4_25088[(alu102+38)]; |
| var val101 = data4_25088[(alu102+39)]; |
| var val102 = data4_25088[(alu102+40)]; |
| var val103 = data4_25088[(alu102+41)]; |
| var val104 = data4_25088[(alu102+42)]; |
| var val105 = data4_25088[(alu102+43)]; |
| var val106 = data4_25088[(alu102+44)]; |
| var val107 = data4_25088[(alu102+45)]; |
| var val108 = data4_25088[(alu102+46)]; |
| var val109 = data4_25088[(alu102+47)]; |
| var val110 = data4_25088[(alu102+48)]; |
| var alu103 = (1/sqrt((val62+9.999999747378752e-06f))); |
| data0_25088[alu101] = (((acc0[0]+val58+val59)-val60)*val61*alu103); |
| data0_25088[(alu101+512)] = (((acc0[7]+val58+val63)-val60)*val61*alu103); |
| data0_25088[(alu101+1024)] = (((acc0[14]+val58+val64)-val60)*val61*alu103); |
| data0_25088[(alu101+1536)] = (((acc0[21]+val58+val65)-val60)*val61*alu103); |
| data0_25088[(alu101+2048)] = (((acc0[28]+val58+val66)-val60)*val61*alu103); |
| data0_25088[(alu101+2560)] = (((acc0[35]+val58+val67)-val60)*val61*alu103); |
| data0_25088[(alu101+3072)] = (((acc0[42]+val58+val68)-val60)*val61*alu103); |
| data0_25088[(alu101+3584)] = (((acc0[1]+val58+val69)-val60)*val61*alu103); |
| data0_25088[(alu101+4096)] = (((acc0[8]+val58+val70)-val60)*val61*alu103); |
| data0_25088[(alu101+4608)] = (((acc0[15]+val58+val71)-val60)*val61*alu103); |
| data0_25088[(alu101+5120)] = (((acc0[22]+val58+val72)-val60)*val61*alu103); |
| data0_25088[(alu101+5632)] = (((acc0[29]+val58+val73)-val60)*val61*alu103); |
| data0_25088[(alu101+6144)] = (((acc0[36]+val58+val74)-val60)*val61*alu103); |
| data0_25088[(alu101+6656)] = (((acc0[43]+val58+val75)-val60)*val61*alu103); |
| data0_25088[(alu101+7168)] = (((acc0[2]+val58+val76)-val60)*val61*alu103); |
| data0_25088[(alu101+7680)] = (((acc0[9]+val58+val77)-val60)*val61*alu103); |
| data0_25088[(alu101+8192)] = (((acc0[16]+val58+val78)-val60)*val61*alu103); |
| data0_25088[(alu101+8704)] = (((acc0[23]+val58+val79)-val60)*val61*alu103); |
| data0_25088[(alu101+9216)] = (((acc0[30]+val58+val80)-val60)*val61*alu103); |
| data0_25088[(alu101+9728)] = (((acc0[37]+val58+val81)-val60)*val61*alu103); |
| data0_25088[(alu101+10240)] = (((acc0[44]+val58+val82)-val60)*val61*alu103); |
| data0_25088[(alu101+10752)] = (((acc0[3]+val58+val83)-val60)*val61*alu103); |
| data0_25088[(alu101+11264)] = (((acc0[10]+val58+val84)-val60)*val61*alu103); |
| data0_25088[(alu101+11776)] = (((acc0[17]+val58+val85)-val60)*val61*alu103); |
| data0_25088[(alu101+12288)] = (((acc0[24]+val58+val86)-val60)*val61*alu103); |
| data0_25088[(alu101+12800)] = (((acc0[31]+val58+val87)-val60)*val61*alu103); |
| data0_25088[(alu101+13312)] = (((acc0[38]+val58+val88)-val60)*val61*alu103); |
| data0_25088[(alu101+13824)] = (((acc0[45]+val58+val89)-val60)*val61*alu103); |
| data0_25088[(alu101+14336)] = (((acc0[4]+val58+val90)-val60)*val61*alu103); |
| data0_25088[(alu101+14848)] = (((acc0[11]+val58+val91)-val60)*val61*alu103); |
| data0_25088[(alu101+15360)] = (((acc0[18]+val58+val92)-val60)*val61*alu103); |
| data0_25088[(alu101+15872)] = (((acc0[25]+val58+val93)-val60)*val61*alu103); |
| data0_25088[(alu101+16384)] = (((acc0[32]+val58+val94)-val60)*val61*alu103); |
| data0_25088[(alu101+16896)] = (((acc0[39]+val58+val95)-val60)*val61*alu103); |
| data0_25088[(alu101+17408)] = (((acc0[46]+val58+val96)-val60)*val61*alu103); |
| data0_25088[(alu101+17920)] = (((acc0[5]+val58+val97)-val60)*val61*alu103); |
| data0_25088[(alu101+18432)] = (((acc0[12]+val58+val98)-val60)*val61*alu103); |
| data0_25088[(alu101+18944)] = (((acc0[19]+val58+val99)-val60)*val61*alu103); |
| data0_25088[(alu101+19456)] = (((acc0[26]+val58+val100)-val60)*val61*alu103); |
| data0_25088[(alu101+19968)] = (((acc0[33]+val58+val101)-val60)*val61*alu103); |
| data0_25088[(alu101+20480)] = (((acc0[40]+val58+val102)-val60)*val61*alu103); |
| data0_25088[(alu101+20992)] = (((acc0[47]+val58+val103)-val60)*val61*alu103); |
| data0_25088[(alu101+21504)] = (((acc0[6]+val58+val104)-val60)*val61*alu103); |
| data0_25088[(alu101+22016)] = (((acc0[13]+val58+val105)-val60)*val61*alu103); |
| data0_25088[(alu101+22528)] = (((acc0[20]+val58+val106)-val60)*val61*alu103); |
| data0_25088[(alu101+23040)] = (((acc0[27]+val58+val107)-val60)*val61*alu103); |
| data0_25088[(alu101+23552)] = (((acc0[34]+val58+val108)-val60)*val61*alu103); |
| data0_25088[(alu101+24064)] = (((acc0[41]+val58+val109)-val60)*val61*alu103); |
| data0_25088[(alu101+24576)] = (((acc0[48]+val58+val110)-val60)*val61*alu103); |
| }`; |
|
|
| const E_4_49_32_4n1 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| @group(0) @binding(1)var<storage,read_write>data0_25088:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_25088:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_512:array<f32>; |
| @compute @workgroup_size(32) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var gidx0 = i32(gindex.x); /* 49 */ |
| var gidx1 = i32(gindex.y); /* 4 */ |
| var lidx0 = i32(lindex.x); /* 32 */ |
| var alu0 = (bitcast<i32>((bitcast<u32>(gidx1)<<7u))+bitcast<i32>((bitcast<u32>(lidx0)<<2u))); |
| var alu1 = (alu0+bitcast<i32>((bitcast<u32>(gidx0)<<9u))); |
| var val0 = data1_25088[alu1]; |
| var val1 = data2_512[alu0]; |
| var val2 = data1_25088[(alu1+1)]; |
| var val3 = data2_512[(alu0+1)]; |
| var val4 = data1_25088[(alu1+2)]; |
| var val5 = data2_512[(alu0+2)]; |
| var val6 = data1_25088[(alu1+3)]; |
| var val7 = data2_512[(alu0+3)]; |
| var alu2 = (gidx0+(gidx1*6272)+(lidx0*196)); |
| data0_25088[alu2] = (val0+val1); |
| data0_25088[(alu2+49)] = (val2+val3); |
| data0_25088[(alu2+98)] = (val4+val5); |
| data0_25088[(alu2+147)] = (val6+val7); |
| }`; |
|
|
| const r_32_8_4_4_3136 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } |
| @group(0) @binding(0) |
| var<uniform> INFINITY : f32; |
| var<workgroup> temp0: array<f32,128>; |
| @group(0) @binding(1)var<storage,read_write>data0_512:array<f32>; |
| @group(0) @binding(2)var<storage,read_write>data1_25088:array<f32>; |
| @group(0) @binding(3)var<storage,read_write>data2_12845056:array<f32>; |
| @group(0) @binding(4)var<storage,read_write>data3_512:array<f32>; |
| @group(0) @binding(5)var<storage,read_write>data4_512:array<f32>; |
| @group(0) @binding(6)var<storage,read_write>data5_512:array<f32>; |
| @group(0) @binding(7)var<storage,read_write>data6_512:array<f32>; |
| @group(0) @binding(8)var<storage,read_write>data7_512:array<f32>; |
| @compute @workgroup_size(8,4) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { |
| var acc0: array<f32,4>; |
| var acc1: array<f32,4>; |
| var gidx0 = i32(gindex.x); /* 32 */ |
| var lidx0 = i32(lindex.x); /* 8 */ |
| var lidx1 = i32(lindex.y); /* 4 */ |
| acc0[0] = 0.0f; |
| acc0[1] = 0.0f; |
| acc0[2] = 0.0f; |
| acc0[3] = 0.0f; |
| for (var Ridx0 = 0; Ridx0 < 3136; Ridx0++) { |
| var alu4 = (lidx0+bitcast<i32>((bitcast<u32>(Ridx0)<<3u))); |
| var val0 = data1_25088[alu4]; |
| var alu5 = (alu4+(gidx0*401408)+(lidx1*25088)); |
| var val1 = data2_12845056[alu5]; |
| var val2 = data2_12845056[(alu5+100352)]; |
| var val3 = data2_12845056[(alu5+200704)]; |
| var val4 = data2_12845056[(alu5+301056)]; |
| acc0[0] = (acc0[0]+(val0*val1)); |
| acc0[1] = (acc0[1]+(val0*val2)); |
| acc0[2] = (acc0[2]+(val0*val3)); |
| acc0[3] = (acc0[3]+(val0*val4)); |
| } |
| var cast0 = bitcast<i32>((bitcast<u32>(lidx1)<<5u)); |
| var alu11 = (bitcast<i32>((bitcast<u32>(lidx0)<<2u))+cast0); |
| temp0[alu11] = acc0[0]; |
| temp0[(alu11+1)] = acc0[1]; |
| temp0[(alu11+2)] = acc0[2]; |
| temp0[(alu11+3)] = acc0[3]; |
| workgroupBarrier(); |
| acc1[0] = 0.0f; |
| acc1[1] = 0.0f; |
| acc1[2] = 0.0f; |
| acc1[3] = 0.0f; |
| for (var Ridx102 = 0; Ridx102 < 8; Ridx102++) { |
| var alu21 = (cast0+bitcast<i32>((bitcast<u32>(Ridx102)<<2u))); |
| var val5 = temp0[alu21]; |
| var val6 = temp0[(alu21+1)]; |
| var val7 = temp0[(alu21+2)]; |
| var val8 = temp0[(alu21+3)]; |
| acc1[0] = (acc1[0]+val5); |
| acc1[1] = (acc1[1]+val6); |
| acc1[2] = (acc1[2]+val7); |
| acc1[3] = (acc1[3]+val8); |
| } |
| var alu27 = (lidx1+bitcast<i32>((bitcast<u32>(gidx0)<<4u))); |
| var val9 = data3_512[alu27]; |
| var alu28 = (alu27+4); |
| var val10 = data3_512[alu28]; |
| var alu29 = (alu27+8); |
| var val11 = data3_512[alu29]; |
| var val12 = data4_512[alu27]; |
| var val13 = data4_512[alu28]; |
| var val14 = data4_512[alu29]; |
| var val15 = data5_512[alu27]; |
| var val16 = data5_512[alu28]; |
| var val17 = data6_512[alu27]; |
| var val18 = data6_512[alu28]; |
| var val19 = data7_512[alu27]; |
| var val20 = data7_512[alu28]; |
| var val21 = data5_512[alu29]; |
| var val22 = data6_512[alu29]; |
| var val23 = data7_512[alu29]; |
| var alu30 = (alu27+12); |
| var val24 = data3_512[alu30]; |
| var val25 = data4_512[alu30]; |
| var val26 = data5_512[alu30]; |
| var val27 = data6_512[alu30]; |
| var val28 = data7_512[alu30]; |
| var alu31 = (lidx0==0); |
| if (alu31) { |
| data0_512[alu27] = ((((acc1[0]+val9)-val12)*val15*(1/sqrt((val17+9.999999747378752e-06f))))+val19); |
| } |
| if (alu31) { |
| data0_512[alu28] = ((((acc1[1]+val10)-val13)*val16*(1/sqrt((val18+9.999999747378752e-06f))))+val20); |
| } |
| if (alu31) { |
| data0_512[alu29] = ((((acc1[2]+val11)-val14)*val21*(1/sqrt((val22+9.999999747378752e-06f))))+val23); |
| } |
| if (alu31) { |
| data0_512[alu30] = ((((acc1[3]+val24)-val25)*val26*(1/sqrt((val27+9.999999747378752e-06f))))+val28); |
| } |
| }`; |
|
|
| const setupNet = async (device, safetensor) => { |
| const metadata = getTensorMetadata(safetensor); |
| const infinityBuf = createInfinityUniformBuf(device); |
|
|
| const layouts=[device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 7, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 7, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 7, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 7, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 7, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 8, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]}),device.createBindGroupLayout({entries: [{binding: 0, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'uniform' }}, {binding: 1, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 2, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 3, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 4, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 5, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 6, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 7, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } },{binding: 8, visibility: GPUShaderStage.COMPUTE, buffer: { type: 'storage' } }]})] |
|
|
| const buf_0 = createEmptyBuf(device, 3211264);; |
| const input0 = createEmptyBuf(device, 150528);; |
| const buf_1 = createWeightBuf(device, 6912, getTensorBuffer(safetensor, metadata['runner.graph_values.685'])); |
| const buf_2 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.686'])); |
| const buf_3 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.843'])); |
| const buf_4 = createEmptyBuf(device, 3211264);; |
| const buf_5 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.0.bn1.running_mean'])); |
| const buf_6 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.0.bn1.weight'])); |
| const buf_7 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.0.bn1.running_var'])); |
| const buf_8 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.0.bn1.bias'])); |
| const buf_9 = createEmptyBuf(device, 3211264);; |
| const buf_10 = createWeightBuf(device, 147456, getTensorBuffer(safetensor, metadata['runner.graph_values.688'])); |
| const buf_11 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.689'])); |
| const buf_12 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.844'])); |
| const buf_13 = createEmptyBuf(device, 802816);; |
| const buf_14 = createWeightBuf(device, 147456, getTensorBuffer(safetensor, metadata['runner.graph_values.691'])); |
| const buf_15 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.692'])); |
| const buf_16 = createWeightBuf(device, 16384, getTensorBuffer(safetensor, metadata['runner.graph_values.694'])); |
| const buf_17 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.695'])); |
| const buf_18 = createEmptyBuf(device, 802816);; |
| const buf_19 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.1.bn1.running_mean'])); |
| const buf_20 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.1.bn1.weight'])); |
| const buf_21 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.1.bn1.running_var'])); |
| const buf_22 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.1.bn1.bias'])); |
| const buf_23 = createEmptyBuf(device, 802816);; |
| const buf_24 = createWeightBuf(device, 147456, getTensorBuffer(safetensor, metadata['runner.graph_values.697'])); |
| const buf_25 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.698'])); |
| const buf_26 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.845'])); |
| const buf_27 = createEmptyBuf(device, 802816);; |
| const buf_28 = createWeightBuf(device, 147456, getTensorBuffer(safetensor, metadata['runner.graph_values.700'])); |
| const buf_29 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.701'])); |
| const buf_30 = createEmptyBuf(device, 802816);; |
| const buf_31 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.2.bn1.running_mean'])); |
| const buf_32 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.2.bn1.weight'])); |
| const buf_33 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.2.bn1.running_var'])); |
| const buf_34 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer1.2.bn1.bias'])); |
| const buf_35 = createEmptyBuf(device, 802816);; |
| const buf_36 = createWeightBuf(device, 147456, getTensorBuffer(safetensor, metadata['runner.graph_values.703'])); |
| const buf_37 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.704'])); |
| const buf_38 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.846'])); |
| const buf_39 = createEmptyBuf(device, 802816);; |
| const buf_40 = createWeightBuf(device, 147456, getTensorBuffer(safetensor, metadata['runner.graph_values.706'])); |
| const buf_41 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.707'])); |
| const buf_42 = createEmptyBuf(device, 802816);; |
| const buf_43 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.0.bn1.running_mean'])); |
| const buf_44 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.0.bn1.weight'])); |
| const buf_45 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.0.bn1.running_var'])); |
| const buf_46 = createWeightBuf(device, 256, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.0.bn1.bias'])); |
| const buf_47 = createEmptyBuf(device, 1605632);; |
| const buf_48 = createWeightBuf(device, 294912, getTensorBuffer(safetensor, metadata['runner.graph_values.709'])); |
| const buf_49 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.710'])); |
| const buf_50 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.847'])); |
| const buf_51 = createEmptyBuf(device, 401408);; |
| const buf_52 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.712'])); |
| const buf_53 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.713'])); |
| const buf_54 = createWeightBuf(device, 32768, getTensorBuffer(safetensor, metadata['runner.graph_values.715'])); |
| const buf_55 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.716'])); |
| const buf_56 = createEmptyBuf(device, 401408);; |
| const buf_57 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.1.bn1.running_mean'])); |
| const buf_58 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.1.bn1.weight'])); |
| const buf_59 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.1.bn1.running_var'])); |
| const buf_60 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.1.bn1.bias'])); |
| const buf_61 = createEmptyBuf(device, 401408);; |
| const buf_62 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.718'])); |
| const buf_63 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.719'])); |
| const buf_64 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.848'])); |
| const buf_65 = createEmptyBuf(device, 401408);; |
| const buf_66 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.721'])); |
| const buf_67 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.722'])); |
| const buf_68 = createEmptyBuf(device, 401408);; |
| const buf_69 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.2.bn1.running_mean'])); |
| const buf_70 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.2.bn1.weight'])); |
| const buf_71 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.2.bn1.running_var'])); |
| const buf_72 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.2.bn1.bias'])); |
| const buf_73 = createEmptyBuf(device, 401408);; |
| const buf_74 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.724'])); |
| const buf_75 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.725'])); |
| const buf_76 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.849'])); |
| const buf_77 = createEmptyBuf(device, 401408);; |
| const buf_78 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.727'])); |
| const buf_79 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.728'])); |
| const buf_80 = createEmptyBuf(device, 401408);; |
| const buf_81 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.3.bn1.running_mean'])); |
| const buf_82 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.3.bn1.weight'])); |
| const buf_83 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.3.bn1.running_var'])); |
| const buf_84 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer2.3.bn1.bias'])); |
| const buf_85 = createEmptyBuf(device, 401408);; |
| const buf_86 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.730'])); |
| const buf_87 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.731'])); |
| const buf_88 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.850'])); |
| const buf_89 = createEmptyBuf(device, 401408);; |
| const buf_90 = createWeightBuf(device, 589824, getTensorBuffer(safetensor, metadata['runner.graph_values.733'])); |
| const buf_91 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.734'])); |
| const buf_92 = createEmptyBuf(device, 401408);; |
| const buf_93 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.0.bn1.running_mean'])); |
| const buf_94 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.0.bn1.weight'])); |
| const buf_95 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.0.bn1.running_var'])); |
| const buf_96 = createWeightBuf(device, 512, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.0.bn1.bias'])); |
| const buf_97 = createEmptyBuf(device, 802816);; |
| const buf_98 = createWeightBuf(device, 1179648, getTensorBuffer(safetensor, metadata['runner.graph_values.736'])); |
| const buf_99 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.737'])); |
| const buf_100 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.851'])); |
| const buf_101 = createEmptyBuf(device, 200704);; |
| const buf_102 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.739'])); |
| const buf_103 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.740'])); |
| const buf_104 = createWeightBuf(device, 131072, getTensorBuffer(safetensor, metadata['runner.graph_values.742'])); |
| const buf_105 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.743'])); |
| const buf_106 = createEmptyBuf(device, 200704);; |
| const buf_107 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.1.bn1.running_mean'])); |
| const buf_108 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.1.bn1.weight'])); |
| const buf_109 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.1.bn1.running_var'])); |
| const buf_110 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.1.bn1.bias'])); |
| const buf_111 = createEmptyBuf(device, 200704);; |
| const buf_112 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.745'])); |
| const buf_113 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.746'])); |
| const buf_114 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.852'])); |
| const buf_115 = createEmptyBuf(device, 200704);; |
| const buf_116 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.748'])); |
| const buf_117 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.749'])); |
| const buf_118 = createEmptyBuf(device, 200704);; |
| const buf_119 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.2.bn1.running_mean'])); |
| const buf_120 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.2.bn1.weight'])); |
| const buf_121 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.2.bn1.running_var'])); |
| const buf_122 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.2.bn1.bias'])); |
| const buf_123 = createEmptyBuf(device, 200704);; |
| const buf_124 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.751'])); |
| const buf_125 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.752'])); |
| const buf_126 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.853'])); |
| const buf_127 = createEmptyBuf(device, 200704);; |
| const buf_128 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.754'])); |
| const buf_129 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.755'])); |
| const buf_130 = createEmptyBuf(device, 200704);; |
| const buf_131 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.3.bn1.running_mean'])); |
| const buf_132 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.3.bn1.weight'])); |
| const buf_133 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.3.bn1.running_var'])); |
| const buf_134 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.3.bn1.bias'])); |
| const buf_135 = createEmptyBuf(device, 200704);; |
| const buf_136 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.757'])); |
| const buf_137 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.758'])); |
| const buf_138 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.854'])); |
| const buf_139 = createEmptyBuf(device, 200704);; |
| const buf_140 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.760'])); |
| const buf_141 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.761'])); |
| const buf_142 = createEmptyBuf(device, 200704);; |
| const buf_143 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.4.bn1.running_mean'])); |
| const buf_144 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.4.bn1.weight'])); |
| const buf_145 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.4.bn1.running_var'])); |
| const buf_146 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.4.bn1.bias'])); |
| const buf_147 = createEmptyBuf(device, 200704);; |
| const buf_148 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.763'])); |
| const buf_149 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.764'])); |
| const buf_150 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.855'])); |
| const buf_151 = createEmptyBuf(device, 200704);; |
| const buf_152 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.766'])); |
| const buf_153 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.767'])); |
| const buf_154 = createEmptyBuf(device, 200704);; |
| const buf_155 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.5.bn1.running_mean'])); |
| const buf_156 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.5.bn1.weight'])); |
| const buf_157 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.5.bn1.running_var'])); |
| const buf_158 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.5.bn1.bias'])); |
| const buf_159 = createEmptyBuf(device, 200704);; |
| const buf_160 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.769'])); |
| const buf_161 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.770'])); |
| const buf_162 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.856'])); |
| const buf_163 = createEmptyBuf(device, 200704);; |
| const buf_164 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.772'])); |
| const buf_165 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.773'])); |
| const buf_166 = createEmptyBuf(device, 200704);; |
| const buf_167 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.6.bn1.running_mean'])); |
| const buf_168 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.6.bn1.weight'])); |
| const buf_169 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.6.bn1.running_var'])); |
| const buf_170 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.6.bn1.bias'])); |
| const buf_171 = createEmptyBuf(device, 200704);; |
| const buf_172 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.775'])); |
| const buf_173 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.776'])); |
| const buf_174 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.857'])); |
| const buf_175 = createEmptyBuf(device, 200704);; |
| const buf_176 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.778'])); |
| const buf_177 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.779'])); |
| const buf_178 = createEmptyBuf(device, 200704);; |
| const buf_179 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.7.bn1.running_mean'])); |
| const buf_180 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.7.bn1.weight'])); |
| const buf_181 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.7.bn1.running_var'])); |
| const buf_182 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.7.bn1.bias'])); |
| const buf_183 = createEmptyBuf(device, 200704);; |
| const buf_184 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.781'])); |
| const buf_185 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.782'])); |
| const buf_186 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.858'])); |
| const buf_187 = createEmptyBuf(device, 200704);; |
| const buf_188 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.784'])); |
| const buf_189 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.785'])); |
| const buf_190 = createEmptyBuf(device, 200704);; |
| const buf_191 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.8.bn1.running_mean'])); |
| const buf_192 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.8.bn1.weight'])); |
| const buf_193 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.8.bn1.running_var'])); |
| const buf_194 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.8.bn1.bias'])); |
| const buf_195 = createEmptyBuf(device, 200704);; |
| const buf_196 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.787'])); |
| const buf_197 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.788'])); |
| const buf_198 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.859'])); |
| const buf_199 = createEmptyBuf(device, 200704);; |
| const buf_200 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.790'])); |
| const buf_201 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.791'])); |
| const buf_202 = createEmptyBuf(device, 200704);; |
| const buf_203 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.9.bn1.running_mean'])); |
| const buf_204 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.9.bn1.weight'])); |
| const buf_205 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.9.bn1.running_var'])); |
| const buf_206 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.9.bn1.bias'])); |
| const buf_207 = createEmptyBuf(device, 200704);; |
| const buf_208 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.793'])); |
| const buf_209 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.794'])); |
| const buf_210 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.860'])); |
| const buf_211 = createEmptyBuf(device, 200704);; |
| const buf_212 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.796'])); |
| const buf_213 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.797'])); |
| const buf_214 = createEmptyBuf(device, 200704);; |
| const buf_215 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.10.bn1.running_mean'])); |
| const buf_216 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.10.bn1.weight'])); |
| const buf_217 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.10.bn1.running_var'])); |
| const buf_218 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.10.bn1.bias'])); |
| const buf_219 = createEmptyBuf(device, 200704);; |
| const buf_220 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.799'])); |
| const buf_221 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.800'])); |
| const buf_222 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.861'])); |
| const buf_223 = createEmptyBuf(device, 200704);; |
| const buf_224 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.802'])); |
| const buf_225 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.803'])); |
| const buf_226 = createEmptyBuf(device, 200704);; |
| const buf_227 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.11.bn1.running_mean'])); |
| const buf_228 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.11.bn1.weight'])); |
| const buf_229 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.11.bn1.running_var'])); |
| const buf_230 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.11.bn1.bias'])); |
| const buf_231 = createEmptyBuf(device, 200704);; |
| const buf_232 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.805'])); |
| const buf_233 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.806'])); |
| const buf_234 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.862'])); |
| const buf_235 = createEmptyBuf(device, 200704);; |
| const buf_236 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.808'])); |
| const buf_237 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.809'])); |
| const buf_238 = createEmptyBuf(device, 200704);; |
| const buf_239 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.12.bn1.running_mean'])); |
| const buf_240 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.12.bn1.weight'])); |
| const buf_241 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.12.bn1.running_var'])); |
| const buf_242 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.12.bn1.bias'])); |
| const buf_243 = createEmptyBuf(device, 200704);; |
| const buf_244 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.811'])); |
| const buf_245 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.812'])); |
| const buf_246 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.863'])); |
| const buf_247 = createEmptyBuf(device, 200704);; |
| const buf_248 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.814'])); |
| const buf_249 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.815'])); |
| const buf_250 = createEmptyBuf(device, 200704);; |
| const buf_251 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.13.bn1.running_mean'])); |
| const buf_252 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.13.bn1.weight'])); |
| const buf_253 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.13.bn1.running_var'])); |
| const buf_254 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer3.13.bn1.bias'])); |
| const buf_255 = createEmptyBuf(device, 200704);; |
| const buf_256 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.817'])); |
| const buf_257 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.818'])); |
| const buf_258 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.864'])); |
| const buf_259 = createEmptyBuf(device, 200704);; |
| const buf_260 = createWeightBuf(device, 2359296, getTensorBuffer(safetensor, metadata['runner.graph_values.820'])); |
| const buf_261 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.821'])); |
| const buf_262 = createEmptyBuf(device, 200704);; |
| const buf_263 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.0.bn1.running_mean'])); |
| const buf_264 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.0.bn1.weight'])); |
| const buf_265 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.0.bn1.running_var'])); |
| const buf_266 = createWeightBuf(device, 1024, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.0.bn1.bias'])); |
| const buf_267 = createEmptyBuf(device, 401408);; |
| const buf_268 = createWeightBuf(device, 4718592, getTensorBuffer(safetensor, metadata['runner.graph_values.823'])); |
| const buf_269 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.824'])); |
| const buf_270 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.865'])); |
| const buf_271 = createEmptyBuf(device, 100352);; |
| const buf_272 = createWeightBuf(device, 9437184, getTensorBuffer(safetensor, metadata['runner.graph_values.826'])); |
| const buf_273 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.827'])); |
| const buf_274 = createWeightBuf(device, 524288, getTensorBuffer(safetensor, metadata['runner.graph_values.829'])); |
| const buf_275 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.830'])); |
| const buf_276 = createEmptyBuf(device, 100352);; |
| const buf_277 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.1.bn1.running_mean'])); |
| const buf_278 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.1.bn1.weight'])); |
| const buf_279 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.1.bn1.running_var'])); |
| const buf_280 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.1.bn1.bias'])); |
| const buf_281 = createEmptyBuf(device, 100352);; |
| const buf_282 = createWeightBuf(device, 9437184, getTensorBuffer(safetensor, metadata['runner.graph_values.832'])); |
| const buf_283 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.833'])); |
| const buf_284 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.866'])); |
| const buf_285 = createEmptyBuf(device, 100352);; |
| const buf_286 = createWeightBuf(device, 9437184, getTensorBuffer(safetensor, metadata['runner.graph_values.835'])); |
| const buf_287 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.836'])); |
| const buf_288 = createEmptyBuf(device, 100352);; |
| const buf_289 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.2.bn1.running_mean'])); |
| const buf_290 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.2.bn1.weight'])); |
| const buf_291 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.2.bn1.running_var'])); |
| const buf_292 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.layer4.2.bn1.bias'])); |
| const buf_293 = createEmptyBuf(device, 100352);; |
| const buf_294 = createWeightBuf(device, 9437184, getTensorBuffer(safetensor, metadata['runner.graph_values.838'])); |
| const buf_295 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.839'])); |
| const buf_296 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.867'])); |
| const buf_297 = createEmptyBuf(device, 100352);; |
| const buf_298 = createWeightBuf(device, 9437184, getTensorBuffer(safetensor, metadata['runner.graph_values.841'])); |
| const buf_299 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.842'])); |
| const buf_300 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.bn2.running_mean'])); |
| const buf_301 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.bn2.weight'])); |
| const buf_302 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.bn2.running_var'])); |
| const buf_303 = createEmptyBuf(device, 100352);; |
| const buf_304 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.bn2.bias'])); |
| const output0 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.683'])); |
| const buf_305 = createWeightBuf(device, 51380224, getTensorBuffer(safetensor, metadata['runner.graph_values.fc.weight'])); |
| const buf_306 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.fc.bias'])); |
| const buf_307 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.features.running_mean'])); |
| const buf_308 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.features.weight'])); |
| const buf_309 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.features.running_var'])); |
| const buf_310 = createWeightBuf(device, 2048, getTensorBuffer(safetensor, metadata['runner.graph_values.features.bias'])); |
|
|
| const gpuWriteBuffer0 = device.createBuffer({size:input0.size, usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.MAP_WRITE }); |
|
|
| const gpuReadBuffer0 = device.createBuffer({size:output0.size, usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ }); |
|
|
| const kernels = [r_8_7_7_2_16_4_4_4_3_3_3, E_8_196_8_16_4, r_8_7_7_2_16_4_4_4_64_3_3, r_2_7_7_8_8_2_4_4_64_3_3_16_4, E_8_49_8_16_4, r_2_7_7_8_8_2_4_4_64_3_3, r_2_7_7_8_8_2_4_4_64_3_3n1, E_8_49_8_16_4, r_2_7_7_8_8_2_4_4_64_3_3, r_2_7_7_8_8_2_4_4_64_3_3n1, E_8_49_8_16_4, r_4_7_7_8_8_2_4_4_64_3_3, r_7_7_32_4_4_4_128_3_3_16_4, E_4_49_32_4_4, r_7_7_32_4_4_4_128_3_3, r_7_7_32_4_4_4_128_3_3n1, E_4_49_32_4_4, r_7_7_32_4_4_4_128_3_3, r_7_7_32_4_4_4_128_3_3n1, E_4_49_32_4_4, r_7_7_32_4_4_4_128_3_3, r_7_7_32_4_4_4_128_3_3n1, E_4_49_32_4_4, r_2_7_7_32_4_4_4_128_3_3, r_2_7_7_32_2_2_4_256_3_3_32_4, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_2_7_7_32_2_2_4_256_3_3, r_2_7_7_32_2_2_4_256_3_3n1, E_8_49_32_4, r_4_7_7_32_2_2_4_256_3_3, r_16_32_7_7_512_3_3_64_4, E_4_49_32_4, r_16_32_7_7_512_3_3, r_16_32_7_7_512_3_3n1, E_4_49_32_4, r_16_32_7_7_512_3_3, r_16_32_7_7_512_3_3n2, E_4_49_32_4n1, r_32_8_4_4_3136]; |
| const pipelines = await Promise.all(kernels.map(async (name, i) => { |
| return await device.createComputePipelineAsync({ |
| layout: device.createPipelineLayout({ |
| bindGroupLayouts: [layouts[i]], |
| }), |
| compute: { |
| module: device.createShaderModule({ |
| code: name, |
| }), |
| entryPoint: "main", |
| }, |
| }); |
| })) |
|
|
| return async (_input0) => { |
| const commandEncoder = device.createCommandEncoder(); |
| await gpuWriteBuffer0.mapAsync(GPUMapMode.WRITE); |
| new Float32Array(gpuWriteBuffer0.getMappedRange()).set(_input0); |
| gpuWriteBuffer0.unmap(); |
| commandEncoder.copyBufferToBuffer(gpuWriteBuffer0, 0, input0, 0, gpuWriteBuffer0.size); |
| addComputePass(device, commandEncoder, pipelines[0], layouts[0], infinityBuf, [buf_0, input0, buf_1, buf_2, buf_3], [7, 7, 8]); |
| addComputePass(device, commandEncoder, pipelines[1], layouts[1], infinityBuf, [buf_4, buf_0, buf_5, buf_6, buf_7, buf_8], [196, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[2], layouts[2], infinityBuf, [buf_9, buf_4, buf_10, buf_11, buf_12], [7, 7, 8]); |
| addComputePass(device, commandEncoder, pipelines[3], layouts[3], infinityBuf, [buf_13, buf_9, buf_14, buf_15, buf_0, buf_16, buf_17], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[4], layouts[4], infinityBuf, [buf_18, buf_13, buf_19, buf_20, buf_21, buf_22], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[5], layouts[5], infinityBuf, [buf_23, buf_18, buf_24, buf_25, buf_26], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[6], layouts[6], infinityBuf, [buf_27, buf_23, buf_28, buf_29, buf_13], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[7], layouts[7], infinityBuf, [buf_30, buf_27, buf_31, buf_32, buf_33, buf_34], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[8], layouts[8], infinityBuf, [buf_35, buf_30, buf_36, buf_37, buf_38], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[9], layouts[9], infinityBuf, [buf_39, buf_35, buf_40, buf_41, buf_27], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[10], layouts[10], infinityBuf, [buf_42, buf_39, buf_43, buf_44, buf_45, buf_46], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[11], layouts[11], infinityBuf, [buf_47, buf_42, buf_48, buf_49, buf_50], [7, 7, 4]); |
| addComputePass(device, commandEncoder, pipelines[12], layouts[12], infinityBuf, [buf_51, buf_47, buf_52, buf_53, buf_39, buf_54, buf_55], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[13], layouts[13], infinityBuf, [buf_56, buf_51, buf_57, buf_58, buf_59, buf_60], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[14], layouts[14], infinityBuf, [buf_61, buf_56, buf_62, buf_63, buf_64], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[15], layouts[15], infinityBuf, [buf_65, buf_61, buf_66, buf_67, buf_51], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[16], layouts[16], infinityBuf, [buf_68, buf_65, buf_69, buf_70, buf_71, buf_72], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[17], layouts[17], infinityBuf, [buf_73, buf_68, buf_74, buf_75, buf_76], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[18], layouts[18], infinityBuf, [buf_77, buf_73, buf_78, buf_79, buf_65], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[19], layouts[19], infinityBuf, [buf_80, buf_77, buf_81, buf_82, buf_83, buf_84], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[20], layouts[20], infinityBuf, [buf_85, buf_80, buf_86, buf_87, buf_88], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[21], layouts[21], infinityBuf, [buf_89, buf_85, buf_90, buf_91, buf_77], [7, 7, 1]); |
| addComputePass(device, commandEncoder, pipelines[22], layouts[22], infinityBuf, [buf_92, buf_89, buf_93, buf_94, buf_95, buf_96], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[23], layouts[23], infinityBuf, [buf_97, buf_92, buf_98, buf_99, buf_100], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[24], layouts[24], infinityBuf, [buf_101, buf_97, buf_102, buf_103, buf_89, buf_104, buf_105], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[25], layouts[25], infinityBuf, [buf_106, buf_101, buf_107, buf_108, buf_109, buf_110], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[26], layouts[26], infinityBuf, [buf_111, buf_106, buf_112, buf_113, buf_114], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[27], layouts[27], infinityBuf, [buf_115, buf_111, buf_116, buf_117, buf_101], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[28], layouts[28], infinityBuf, [buf_118, buf_115, buf_119, buf_120, buf_121, buf_122], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[29], layouts[29], infinityBuf, [buf_123, buf_118, buf_124, buf_125, buf_126], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[30], layouts[30], infinityBuf, [buf_127, buf_123, buf_128, buf_129, buf_115], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[31], layouts[31], infinityBuf, [buf_130, buf_127, buf_131, buf_132, buf_133, buf_134], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[32], layouts[32], infinityBuf, [buf_135, buf_130, buf_136, buf_137, buf_138], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[33], layouts[33], infinityBuf, [buf_139, buf_135, buf_140, buf_141, buf_127], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[34], layouts[34], infinityBuf, [buf_142, buf_139, buf_143, buf_144, buf_145, buf_146], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[35], layouts[35], infinityBuf, [buf_147, buf_142, buf_148, buf_149, buf_150], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[36], layouts[36], infinityBuf, [buf_151, buf_147, buf_152, buf_153, buf_139], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[37], layouts[37], infinityBuf, [buf_154, buf_151, buf_155, buf_156, buf_157, buf_158], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[38], layouts[38], infinityBuf, [buf_159, buf_154, buf_160, buf_161, buf_162], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[39], layouts[39], infinityBuf, [buf_163, buf_159, buf_164, buf_165, buf_151], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[40], layouts[40], infinityBuf, [buf_166, buf_163, buf_167, buf_168, buf_169, buf_170], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[41], layouts[41], infinityBuf, [buf_171, buf_166, buf_172, buf_173, buf_174], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[42], layouts[42], infinityBuf, [buf_175, buf_171, buf_176, buf_177, buf_163], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[43], layouts[43], infinityBuf, [buf_178, buf_175, buf_179, buf_180, buf_181, buf_182], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[44], layouts[44], infinityBuf, [buf_183, buf_178, buf_184, buf_185, buf_186], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[45], layouts[45], infinityBuf, [buf_187, buf_183, buf_188, buf_189, buf_175], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[46], layouts[46], infinityBuf, [buf_190, buf_187, buf_191, buf_192, buf_193, buf_194], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[47], layouts[47], infinityBuf, [buf_195, buf_190, buf_196, buf_197, buf_198], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[48], layouts[48], infinityBuf, [buf_199, buf_195, buf_200, buf_201, buf_187], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[49], layouts[49], infinityBuf, [buf_202, buf_199, buf_203, buf_204, buf_205, buf_206], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[50], layouts[50], infinityBuf, [buf_207, buf_202, buf_208, buf_209, buf_210], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[51], layouts[51], infinityBuf, [buf_211, buf_207, buf_212, buf_213, buf_199], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[52], layouts[52], infinityBuf, [buf_214, buf_211, buf_215, buf_216, buf_217, buf_218], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[53], layouts[53], infinityBuf, [buf_219, buf_214, buf_220, buf_221, buf_222], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[54], layouts[54], infinityBuf, [buf_223, buf_219, buf_224, buf_225, buf_211], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[55], layouts[55], infinityBuf, [buf_226, buf_223, buf_227, buf_228, buf_229, buf_230], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[56], layouts[56], infinityBuf, [buf_231, buf_226, buf_232, buf_233, buf_234], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[57], layouts[57], infinityBuf, [buf_235, buf_231, buf_236, buf_237, buf_223], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[58], layouts[58], infinityBuf, [buf_238, buf_235, buf_239, buf_240, buf_241, buf_242], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[59], layouts[59], infinityBuf, [buf_243, buf_238, buf_244, buf_245, buf_246], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[60], layouts[60], infinityBuf, [buf_247, buf_243, buf_248, buf_249, buf_235], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[61], layouts[61], infinityBuf, [buf_250, buf_247, buf_251, buf_252, buf_253, buf_254], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[62], layouts[62], infinityBuf, [buf_255, buf_250, buf_256, buf_257, buf_258], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[63], layouts[63], infinityBuf, [buf_259, buf_255, buf_260, buf_261, buf_247], [7, 7, 2]); |
| addComputePass(device, commandEncoder, pipelines[64], layouts[64], infinityBuf, [buf_262, buf_259, buf_263, buf_264, buf_265, buf_266], [49, 8, 1]); |
| addComputePass(device, commandEncoder, pipelines[65], layouts[65], infinityBuf, [buf_267, buf_262, buf_268, buf_269, buf_270], [7, 7, 4]); |
| addComputePass(device, commandEncoder, pipelines[66], layouts[66], infinityBuf, [buf_271, buf_267, buf_272, buf_273, buf_259, buf_274, buf_275], [16, 1, 1]); |
| addComputePass(device, commandEncoder, pipelines[67], layouts[67], infinityBuf, [buf_276, buf_271, buf_277, buf_278, buf_279, buf_280], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[68], layouts[68], infinityBuf, [buf_281, buf_276, buf_282, buf_283, buf_284], [16, 1, 1]); |
| addComputePass(device, commandEncoder, pipelines[69], layouts[69], infinityBuf, [buf_285, buf_281, buf_286, buf_287, buf_271], [16, 1, 1]); |
| addComputePass(device, commandEncoder, pipelines[70], layouts[70], infinityBuf, [buf_288, buf_285, buf_289, buf_290, buf_291, buf_292], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[71], layouts[71], infinityBuf, [buf_293, buf_288, buf_294, buf_295, buf_296], [16, 1, 1]); |
| addComputePass(device, commandEncoder, pipelines[72], layouts[72], infinityBuf, [buf_297, buf_293, buf_298, buf_299, buf_285, buf_300, buf_301, buf_302], [16, 1, 1]); |
| addComputePass(device, commandEncoder, pipelines[73], layouts[73], infinityBuf, [buf_303, buf_297, buf_304], [49, 4, 1]); |
| addComputePass(device, commandEncoder, pipelines[74], layouts[74], infinityBuf, [output0, buf_303, buf_305, buf_306, buf_307, buf_308, buf_309, buf_310], [32, 1, 1]); |
| commandEncoder.copyBufferToBuffer(output0, 0, gpuReadBuffer0, 0, output0.size); |
| const gpuCommands = commandEncoder.finish(); |
| device.queue.submit([gpuCommands]); |
|
|
| await gpuReadBuffer0.mapAsync(GPUMapMode.READ); |
| const resultBuffer0 = new Float32Array(gpuReadBuffer0.size/4); |
| resultBuffer0.set(new Float32Array(gpuReadBuffer0.getMappedRange())); |
| gpuReadBuffer0.unmap(); |
| return [resultBuffer0]; |
| } |
| } |
| const load = async (device, weight_path) => { return await fetch(weight_path).then(x => x.arrayBuffer()).then(x => setupNet(device, new Uint8Array(x))); } |
| return { load, setupNet }; |
| })(); |
| export default arcface; |
|
|