Spaces:
Configuration error
Configuration error
| const mindgrab = (() => { | |
| 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, 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_5_256_32_4_8_16_4_3_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_251658240:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_16777216:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_405:array<f32>; | |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,12>; | |
| var gidx0 = i32(gindex.x); /* 128 */ | |
| var gidx1 = i32(gindex.y); /* 256 */ | |
| var gidx2 = i32(gindex.z); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx1; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var precast3 = (gidx0>>2u); | |
| var precast4 = (gidx0&3); | |
| var precast5 = (bitcast<u32>(precast0)<<16u); | |
| var precast6 = (bitcast<u32>(precast1)<<8u); | |
| var precast7 = (bitcast<u32>(precast2)<<2u); | |
| var precast8 = (bitcast<u32>(precast3)<<11u); | |
| var cast0 = bitcast<u32>(precast4); | |
| var precast9 = (cast0<<4u); | |
| var precast10 = (cast0<<6u); | |
| var cast1 = bitcast<i32>(precast5); | |
| var alu0 = (lidx1+bitcast<i32>(precast9)); | |
| var alu1 = (bitcast<i32>(precast6)+bitcast<i32>(precast8)+bitcast<i32>(precast7)+bitcast<i32>(precast10)); | |
| var alu2 = (gidx0<120); | |
| var alu3 = (alu0<60); | |
| var alu4 = (3<alu0); | |
| var alu5 = (7<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; | |
| for (var Ridx0 = 0; Ridx0 < 3; Ridx0++) { | |
| var precast11 = Ridx0; | |
| var cast2 = bitcast<u32>(precast11); | |
| var precast12 = (cast2<<4u); | |
| var precast13 = (cast2<<20u); | |
| var alu18 = (gidx1+bitcast<i32>(precast12)); | |
| var alu19 = (alu1+cast1+bitcast<i32>(precast13)); | |
| var alu20 = ((15<alu18)&(alu18<272)); | |
| var alu21 = (alu4&alu5&alu20); | |
| var val0 = select(0.0f, data1_16777216[(alu19+-1052688)], alu21); | |
| var alu22 = ((gidx2*81)+(Ridx0*9)); | |
| var val1 = data2_405[alu22]; | |
| var alu23 = (alu5&alu20); | |
| var val2 = select(0.0f, data1_16777216[(alu19+-1052672)], alu23); | |
| var val3 = data2_405[(alu22+1)]; | |
| var alu24 = (alu3&alu5&alu20); | |
| var val4 = select(0.0f, data1_16777216[(alu19+-1052656)], alu24); | |
| var val5 = data2_405[(alu22+2)]; | |
| var alu25 = (alu4&alu20); | |
| var val6 = select(0.0f, data1_16777216[(alu19+-1048592)], alu25); | |
| var val7 = data2_405[(alu22+3)]; | |
| var val8 = select(0.0f, data1_16777216[(alu19+-1048576)], alu20); | |
| var val9 = data2_405[(alu22+4)]; | |
| var alu26 = (alu3&alu20); | |
| var val10 = select(0.0f, data1_16777216[(alu19+-1048560)], alu26); | |
| var val11 = data2_405[(alu22+5)]; | |
| var alu27 = (alu4&alu2&alu20); | |
| var val12 = select(0.0f, data1_16777216[(alu19+-1044496)], alu27); | |
| var val13 = data2_405[(alu22+6)]; | |
| var alu28 = (alu2&alu20); | |
| var val14 = select(0.0f, data1_16777216[(alu19+-1044480)], alu28); | |
| var val15 = data2_405[(alu22+7)]; | |
| var alu29 = (alu3&alu2&alu20); | |
| var val16 = select(0.0f, data1_16777216[(alu19+-1044464)], alu29); | |
| var val17 = data2_405[(alu22+8)]; | |
| var val18 = data2_405[(alu22+27)]; | |
| var val19 = data2_405[(alu22+28)]; | |
| var val20 = data2_405[(alu22+29)]; | |
| var val21 = data2_405[(alu22+30)]; | |
| var val22 = data2_405[(alu22+31)]; | |
| var val23 = data2_405[(alu22+32)]; | |
| var val24 = data2_405[(alu22+33)]; | |
| var val25 = data2_405[(alu22+34)]; | |
| var val26 = data2_405[(alu22+35)]; | |
| var val27 = data2_405[(alu22+54)]; | |
| var val28 = data2_405[(alu22+55)]; | |
| var val29 = data2_405[(alu22+56)]; | |
| var val30 = data2_405[(alu22+57)]; | |
| var val31 = data2_405[(alu22+58)]; | |
| var val32 = data2_405[(alu22+59)]; | |
| var val33 = data2_405[(alu22+60)]; | |
| var val34 = data2_405[(alu22+61)]; | |
| var val35 = data2_405[(alu22+62)]; | |
| var val36 = select(0.0f, data1_16777216[(alu19+-1052687)], alu21); | |
| var val37 = select(0.0f, data1_16777216[(alu19+-1052671)], alu23); | |
| var val38 = select(0.0f, data1_16777216[(alu19+-1052670)], alu23); | |
| var val39 = select(0.0f, data1_16777216[(alu19+-1052655)], alu24); | |
| var val40 = select(0.0f, data1_16777216[(alu19+-1052654)], alu24); | |
| var val41 = select(0.0f, data1_16777216[(alu19+-1048591)], alu25); | |
| var val42 = select(0.0f, data1_16777216[(alu19+-1048590)], alu25); | |
| var val43 = select(0.0f, data1_16777216[(alu19+-1048575)], alu20); | |
| var val44 = select(0.0f, data1_16777216[(alu19+-1048574)], alu20); | |
| var val45 = select(0.0f, data1_16777216[(alu19+-1048559)], alu26); | |
| var val46 = select(0.0f, data1_16777216[(alu19+-1048558)], alu26); | |
| var val47 = select(0.0f, data1_16777216[(alu19+-1044495)], alu27); | |
| var val48 = select(0.0f, data1_16777216[(alu19+-1044494)], alu27); | |
| var val49 = select(0.0f, data1_16777216[(alu19+-1044479)], alu28); | |
| var val50 = select(0.0f, data1_16777216[(alu19+-1044478)], alu28); | |
| var val51 = select(0.0f, data1_16777216[(alu19+-1044463)], alu29); | |
| var val52 = select(0.0f, data1_16777216[(alu19+-1052686)], alu21); | |
| var val53 = select(0.0f, data1_16777216[(alu19+-1044462)], alu29); | |
| var val54 = select(0.0f, data1_16777216[(alu19+-1052685)], alu21); | |
| var val55 = select(0.0f, data1_16777216[(alu19+-1052669)], alu23); | |
| var val56 = select(0.0f, data1_16777216[(alu19+-1052653)], alu24); | |
| var val57 = select(0.0f, data1_16777216[(alu19+-1048589)], alu25); | |
| var val58 = select(0.0f, data1_16777216[(alu19+-1048573)], alu20); | |
| var val59 = select(0.0f, data1_16777216[(alu19+-1048557)], alu26); | |
| var val60 = select(0.0f, data1_16777216[(alu19+-1044493)], alu27); | |
| var val61 = select(0.0f, data1_16777216[(alu19+-1044477)], alu28); | |
| var val62 = select(0.0f, data1_16777216[(alu19+-1044461)], alu29); | |
| 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]+(val36*val1)+(val37*val3)+(val39*val5)+(val41*val7)+(val43*val9)+(val45*val11)+(val47*val13)+(val49*val15)+(val51*val17)); | |
| acc0[4] = (acc0[4]+(val36*val18)+(val37*val19)+(val39*val20)+(val41*val21)+(val43*val22)+(val45*val23)+(val47*val24)+(val49*val25)+(val51*val26)); | |
| acc0[5] = (acc0[5]+(val36*val27)+(val37*val28)+(val39*val29)+(val41*val30)+(val43*val31)+(val45*val32)+(val47*val33)+(val49*val34)+(val51*val35)); | |
| acc0[6] = (acc0[6]+(val52*val1)+(val38*val3)+(val40*val5)+(val42*val7)+(val44*val9)+(val46*val11)+(val48*val13)+(val50*val15)+(val53*val17)); | |
| acc0[7] = (acc0[7]+(val52*val18)+(val38*val19)+(val40*val20)+(val42*val21)+(val44*val22)+(val46*val23)+(val48*val24)+(val50*val25)+(val53*val26)); | |
| acc0[8] = (acc0[8]+(val52*val27)+(val38*val28)+(val40*val29)+(val42*val30)+(val44*val31)+(val46*val32)+(val48*val33)+(val50*val34)+(val53*val35)); | |
| acc0[9] = (acc0[9]+(val54*val1)+(val55*val3)+(val56*val5)+(val57*val7)+(val58*val9)+(val59*val11)+(val60*val13)+(val61*val15)+(val62*val17)); | |
| acc0[10] = (acc0[10]+(val54*val18)+(val55*val19)+(val56*val20)+(val57*val21)+(val58*val22)+(val59*val23)+(val60*val24)+(val61*val25)+(val62*val26)); | |
| acc0[11] = (acc0[11]+(val54*val27)+(val55*val28)+(val56*val29)+(val57*val30)+(val58*val31)+(val59*val32)+(val60*val33)+(val61*val34)+(val62*val35)); | |
| } | |
| var alu43 = (alu1+cast1+(gidx2*50331648)); | |
| data0_251658240[alu43] = acc0[0]; | |
| data0_251658240[(alu43+1)] = acc0[3]; | |
| data0_251658240[(alu43+2)] = acc0[6]; | |
| data0_251658240[(alu43+3)] = acc0[9]; | |
| data0_251658240[(alu43+16777216)] = acc0[1]; | |
| data0_251658240[(alu43+16777217)] = acc0[4]; | |
| data0_251658240[(alu43+16777218)] = acc0[7]; | |
| data0_251658240[(alu43+16777219)] = acc0[10]; | |
| data0_251658240[(alu43+33554432)] = acc0[2]; | |
| data0_251658240[(alu43+33554433)] = acc0[5]; | |
| data0_251658240[(alu43+33554434)] = acc0[8]; | |
| data0_251658240[(alu43+33554435)] = acc0[11]; | |
| }`; | |
| const r_10240_32_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_983040:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240: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,3>; | |
| var gidx0 = i32(gindex.x); /* 10240 */ | |
| var lidx0 = i32(lindex.x); /* 32 */ | |
| acc0[0] = 0.0f; | |
| acc0[1] = 0.0f; | |
| acc0[2] = 0.0f; | |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { | |
| var precast0 = Ridx0; | |
| var precast1 = (bitcast<u32>(precast0)<<2u); | |
| var alu3 = ((gidx0*24576)+(lidx0*768)+bitcast<i32>(precast1)); | |
| var val0 = data1_251658240[(alu3+1)]; | |
| var val1 = data1_251658240[(alu3+2)]; | |
| var val2 = data1_251658240[(alu3+3)]; | |
| var val3 = data1_251658240[(alu3+256)]; | |
| var val4 = data1_251658240[(alu3+257)]; | |
| var val5 = data1_251658240[(alu3+258)]; | |
| var val6 = data1_251658240[(alu3+259)]; | |
| var val7 = data1_251658240[alu3]; | |
| var val8 = data1_251658240[(alu3+512)]; | |
| var val9 = data1_251658240[(alu3+513)]; | |
| var val10 = data1_251658240[(alu3+514)]; | |
| var val11 = data1_251658240[(alu3+515)]; | |
| acc0[0] = (acc0[0]+val7+val0+val1+val2); | |
| acc0[1] = (acc0[1]+val3+val4+val5+val6); | |
| acc0[2] = (acc0[2]+val8+val9+val10+val11); | |
| } | |
| var alu8 = ((gidx0*96)+(lidx0*3)); | |
| data0_983040[(alu8+1)] = acc0[1]; | |
| data0_983040[(alu8+2)] = acc0[2]; | |
| data0_983040[alu8] = acc0[0]; | |
| }`; | |
| const r_40_32_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_3840:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_983040: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,3>; | |
| var gidx0 = i32(gindex.x); /* 40 */ | |
| var lidx0 = i32(lindex.x); /* 32 */ | |
| acc0[0] = 0.0f; | |
| acc0[1] = 0.0f; | |
| acc0[2] = 0.0f; | |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { | |
| var precast0 = Ridx0; | |
| var precast1 = (bitcast<u32>(precast0)<<2u); | |
| var alu3 = ((gidx0*24576)+(lidx0*768)+bitcast<i32>(precast1)); | |
| var val0 = data1_983040[(alu3+1)]; | |
| var val1 = data1_983040[(alu3+2)]; | |
| var val2 = data1_983040[(alu3+3)]; | |
| var val3 = data1_983040[(alu3+256)]; | |
| var val4 = data1_983040[(alu3+257)]; | |
| var val5 = data1_983040[(alu3+258)]; | |
| var val6 = data1_983040[(alu3+259)]; | |
| var val7 = data1_983040[alu3]; | |
| var val8 = data1_983040[(alu3+512)]; | |
| var val9 = data1_983040[(alu3+513)]; | |
| var val10 = data1_983040[(alu3+514)]; | |
| var val11 = data1_983040[(alu3+515)]; | |
| acc0[0] = (acc0[0]+val7+val0+val1+val2); | |
| acc0[1] = (acc0[1]+val3+val4+val5+val6); | |
| acc0[2] = (acc0[2]+val8+val9+val10+val11); | |
| } | |
| var alu8 = ((gidx0*96)+(lidx0*3)); | |
| data0_3840[(alu8+1)] = acc0[1]; | |
| data0_3840[(alu8+2)] = acc0[2]; | |
| data0_3840[alu8] = acc0[0]; | |
| }`; | |
| const r_15_16_16 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } | |
| @group(0) @binding(0) | |
| var<uniform> INFINITY : f32; | |
| var<workgroup> temp0: array<f32,16>; | |
| @group(0) @binding(1)var<storage,read_write>data0_15:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_3840:array<f32>; | |
| @compute @workgroup_size(16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,1>; | |
| var acc1: array<f32,1>; | |
| var gidx0 = i32(gindex.x); /* 15 */ | |
| var lidx0 = i32(lindex.x); /* 16 */ | |
| var precast0 = gidx0; | |
| var precast1 = lidx0; | |
| var precast2 = (bitcast<u32>(precast0)<<8u); | |
| var precast3 = (bitcast<u32>(precast1)<<4u); | |
| acc0[0] = 0.0f; | |
| for (var Ridx0 = 0; Ridx0 < 16; Ridx0++) { | |
| var val0 = data1_3840[(bitcast<i32>(precast3)+Ridx0+bitcast<i32>(precast2))]; | |
| acc0[0] = (acc0[0]+val0); | |
| } | |
| temp0[lidx0] = acc0[0]; | |
| workgroupBarrier(); | |
| acc1[0] = 0.0f; | |
| for (var Ridx102 = 0; Ridx102 < 16; Ridx102++) { | |
| var val1 = temp0[Ridx102]; | |
| acc1[0] = (acc1[0]+val1); | |
| } | |
| var alu8 = ((bool(lidx0))!=true); | |
| if (alu8) { | |
| data0_15[gidx0] = (acc1[0]*5.960464477539063e-08f); | |
| } | |
| }`; | |
| const r_5_1024_3_16_4_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_983040:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @compute @workgroup_size(3,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,4>; | |
| var gidx1 = i32(gindex.y); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 3 */ | |
| var val0 = data2_15[(lidx0+(gidx1*3))]; | |
| var gidx0 = i32(gindex.x); /* 1024 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx0; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var cast0 = bitcast<u32>(precast0); | |
| var precast3 = (cast0<<14u); | |
| var cast1 = bitcast<u32>(precast1); | |
| var precast4 = (cast1<<24u); | |
| var cast2 = bitcast<u32>(precast2); | |
| var precast5 = (cast2<<10u); | |
| acc0[0] = 0.0f; | |
| acc0[1] = 0.0f; | |
| acc0[2] = 0.0f; | |
| acc0[3] = 0.0f; | |
| for (var Ridx0 = 0; Ridx0 < 64; Ridx0++) { | |
| var precast6 = Ridx0; | |
| var precast7 = (bitcast<u32>(precast6)<<2u); | |
| var alu4 = (bitcast<i32>(precast3)+bitcast<i32>(precast5)+bitcast<i32>(precast7)+(gidx1*50331648)+bitcast<i32>(precast4)); | |
| var val1 = data1_251658240[alu4]; | |
| var val2 = data1_251658240[(alu4+1)]; | |
| var val3 = data1_251658240[(alu4+2)]; | |
| var val4 = data1_251658240[(alu4+3)]; | |
| var val5 = data1_251658240[(alu4+256)]; | |
| var val6 = data1_251658240[(alu4+257)]; | |
| var val7 = data1_251658240[(alu4+258)]; | |
| var val8 = data1_251658240[(alu4+259)]; | |
| var val9 = data1_251658240[(alu4+512)]; | |
| var val10 = data1_251658240[(alu4+513)]; | |
| var val11 = data1_251658240[(alu4+514)]; | |
| var val12 = data1_251658240[(alu4+515)]; | |
| var val13 = data1_251658240[(alu4+768)]; | |
| var val14 = data1_251658240[(alu4+769)]; | |
| var val15 = data1_251658240[(alu4+770)]; | |
| var val16 = data1_251658240[(alu4+771)]; | |
| var alu5 = (val1-val0); | |
| var alu6 = (val5-val0); | |
| var alu7 = (val9-val0); | |
| var alu8 = (val13-val0); | |
| var alu9 = (val2-val0); | |
| var alu10 = (val6-val0); | |
| var alu11 = (val10-val0); | |
| var alu12 = (val14-val0); | |
| var alu13 = (val3-val0); | |
| var alu14 = (val7-val0); | |
| var alu15 = (val11-val0); | |
| var alu16 = (val15-val0); | |
| var alu17 = (val4-val0); | |
| var alu18 = (val8-val0); | |
| var alu19 = (val12-val0); | |
| var alu20 = (val16-val0); | |
| acc0[0] = (acc0[0]+(alu5*alu5)+(alu9*alu9)+(alu13*alu13)+(alu17*alu17)); | |
| acc0[1] = (acc0[1]+(alu6*alu6)+(alu10*alu10)+(alu14*alu14)+(alu18*alu18)); | |
| acc0[2] = (acc0[2]+(alu7*alu7)+(alu11*alu11)+(alu15*alu15)+(alu19*alu19)); | |
| acc0[3] = (acc0[3]+(alu8*alu8)+(alu12*alu12)+(alu16*alu16)+(alu20*alu20)); | |
| } | |
| var precast8 = (cast0<<6u); | |
| var precast9 = (cast1<<16u); | |
| var precast10 = (cast2<<2u); | |
| var alu26 = (bitcast<i32>(precast8)+bitcast<i32>(precast10)+(gidx1*196608)+bitcast<i32>(precast9)); | |
| data0_983040[alu26] = acc0[0]; | |
| data0_983040[(alu26+1)] = acc0[1]; | |
| data0_983040[(alu26+2)] = acc0[2]; | |
| data0_983040[(alu26+3)] = acc0[3]; | |
| }`; | |
| const r_15_16_16n1 = `fn nan() -> f32 { let bits = 0xffffffffu; return bitcast<f32>(bits); } | |
| @group(0) @binding(0) | |
| var<uniform> INFINITY : f32; | |
| var<workgroup> temp0: array<f32,16>; | |
| @group(0) @binding(1)var<storage,read_write>data0_15:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_3840:array<f32>; | |
| @compute @workgroup_size(16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,1>; | |
| var acc1: array<f32,1>; | |
| var gidx0 = i32(gindex.x); /* 15 */ | |
| var lidx0 = i32(lindex.x); /* 16 */ | |
| var precast0 = gidx0; | |
| var precast1 = lidx0; | |
| var precast2 = (bitcast<u32>(precast0)<<8u); | |
| var precast3 = (bitcast<u32>(precast1)<<4u); | |
| acc0[0] = 0.0f; | |
| for (var Ridx0 = 0; Ridx0 < 16; Ridx0++) { | |
| var val0 = data1_3840[(bitcast<i32>(precast3)+Ridx0+bitcast<i32>(precast2))]; | |
| acc0[0] = (acc0[0]+val0); | |
| } | |
| temp0[lidx0] = acc0[0]; | |
| workgroupBarrier(); | |
| acc1[0] = 0.0f; | |
| for (var Ridx102 = 0; Ridx102 < 16; Ridx102++) { | |
| var val1 = temp0[Ridx102]; | |
| acc1[0] = (acc1[0]+val1); | |
| } | |
| var alu8 = ((bool(lidx0))!=true); | |
| if (alu8) { | |
| data0_15[gidx0] = (1/sqrt(((acc1[0]*5.960464477539063e-08f)+1e-05f))); | |
| } | |
| }`; | |
| const r_5_256_32_4_8_16_4_3_15_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_251658240:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @group(0) @binding(4)var<storage,read_write>data3_15:array<f32>; | |
| @group(0) @binding(5)var<storage,read_write>data4_6075:array<f32>; | |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,12>; | |
| var gidx0 = i32(gindex.x); /* 128 */ | |
| var gidx1 = i32(gindex.y); /* 256 */ | |
| var gidx2 = i32(gindex.z); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx1; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var precast3 = (gidx0>>2u); | |
| var precast4 = (gidx0&3); | |
| var precast5 = (bitcast<u32>(precast0)<<16u); | |
| var precast6 = (bitcast<u32>(precast1)<<8u); | |
| var precast7 = (bitcast<u32>(precast2)<<2u); | |
| var precast8 = (bitcast<u32>(precast3)<<11u); | |
| var cast0 = bitcast<u32>(precast4); | |
| var precast9 = (cast0<<4u); | |
| var precast10 = (cast0<<6u); | |
| var cast1 = bitcast<i32>(precast5); | |
| var alu0 = (lidx1+bitcast<i32>(precast9)); | |
| var alu1 = (bitcast<i32>(precast6)+bitcast<i32>(precast8)+bitcast<i32>(precast7)+bitcast<i32>(precast10)); | |
| var alu2 = (gidx0<124); | |
| var alu3 = (alu0<62); | |
| var alu4 = (1<alu0); | |
| var alu5 = (3<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; | |
| for (var Ridx0 = 0; Ridx0 < 15; Ridx0++) { | |
| var val0 = data2_15[Ridx0]; | |
| var val1 = data3_15[Ridx0]; | |
| var precast11 = Ridx0; | |
| var precast12 = (bitcast<u32>(precast11)<<24u); | |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { | |
| var precast13 = Ridx1; | |
| var cast2 = bitcast<u32>(precast13); | |
| var precast14 = (cast2<<3u); | |
| var precast15 = (cast2<<19u); | |
| var alu18 = (gidx1+bitcast<i32>(precast14)); | |
| var alu19 = (alu1+cast1+bitcast<i32>(precast15)+bitcast<i32>(precast12)); | |
| var alu20 = ((7<alu18)&(alu18<264)); | |
| var alu21 = (alu4&alu5&alu20); | |
| var val2 = select(0.0f, data1_251658240[(alu19+-526344)], alu21); | |
| var alu22 = ((Ridx0*27)+(Ridx1*9)+(gidx2*1215)); | |
| var val3 = data4_6075[(alu22+1)]; | |
| var val4 = data4_6075[(alu22+3)]; | |
| var val5 = data4_6075[alu22]; | |
| var alu23 = (alu5&alu20); | |
| var val6 = select(0.0f, data1_251658240[(alu19+-526336)], alu23); | |
| var alu24 = (alu3&alu5&alu20); | |
| var val7 = select(0.0f, data1_251658240[(alu19+-526328)], alu24); | |
| var val8 = data4_6075[(alu22+2)]; | |
| var alu25 = (alu4&alu20); | |
| var val9 = select(0.0f, data1_251658240[(alu19+-524296)], alu25); | |
| var val10 = select(0.0f, data1_251658240[(alu19+-524288)], alu20); | |
| var val11 = data4_6075[(alu22+4)]; | |
| var alu26 = (alu3&alu20); | |
| var val12 = select(0.0f, data1_251658240[(alu19+-524280)], alu26); | |
| var val13 = data4_6075[(alu22+5)]; | |
| var alu27 = (alu4&alu2&alu20); | |
| var val14 = select(0.0f, data1_251658240[(alu19+-522248)], alu27); | |
| var val15 = data4_6075[(alu22+6)]; | |
| var alu28 = (alu2&alu20); | |
| var val16 = select(0.0f, data1_251658240[(alu19+-522240)], alu28); | |
| var val17 = data4_6075[(alu22+7)]; | |
| var alu29 = (alu3&alu2&alu20); | |
| var val18 = select(0.0f, data1_251658240[(alu19+-522232)], alu29); | |
| var val19 = data4_6075[(alu22+8)]; | |
| var val20 = data4_6075[(alu22+405)]; | |
| var val21 = data4_6075[(alu22+406)]; | |
| var val22 = data4_6075[(alu22+407)]; | |
| var val23 = data4_6075[(alu22+408)]; | |
| var val24 = data4_6075[(alu22+409)]; | |
| var val25 = data4_6075[(alu22+410)]; | |
| var val26 = data4_6075[(alu22+411)]; | |
| var val27 = data4_6075[(alu22+412)]; | |
| var val28 = data4_6075[(alu22+413)]; | |
| var val29 = data4_6075[(alu22+810)]; | |
| var val30 = data4_6075[(alu22+811)]; | |
| var val31 = data4_6075[(alu22+812)]; | |
| var val32 = data4_6075[(alu22+813)]; | |
| var val33 = data4_6075[(alu22+814)]; | |
| var val34 = data4_6075[(alu22+815)]; | |
| var val35 = data4_6075[(alu22+816)]; | |
| var val36 = data4_6075[(alu22+817)]; | |
| var val37 = data4_6075[(alu22+818)]; | |
| var val38 = select(0.0f, data1_251658240[(alu19+-526343)], alu21); | |
| var val39 = select(0.0f, data1_251658240[(alu19+-522239)], alu28); | |
| var val40 = select(0.0f, data1_251658240[(alu19+-522231)], alu29); | |
| var val41 = select(0.0f, data1_251658240[(alu19+-526342)], alu21); | |
| var val42 = select(0.0f, data1_251658240[(alu19+-526334)], alu23); | |
| var val43 = select(0.0f, data1_251658240[(alu19+-526326)], alu24); | |
| var val44 = select(0.0f, data1_251658240[(alu19+-524294)], alu25); | |
| var val45 = select(0.0f, data1_251658240[(alu19+-524286)], alu20); | |
| var val46 = select(0.0f, data1_251658240[(alu19+-524278)], alu26); | |
| var val47 = select(0.0f, data1_251658240[(alu19+-522246)], alu27); | |
| var val48 = select(0.0f, data1_251658240[(alu19+-522238)], alu28); | |
| var val49 = select(0.0f, data1_251658240[(alu19+-522230)], alu29); | |
| var val50 = select(0.0f, data1_251658240[(alu19+-526341)], alu21); | |
| var val51 = select(0.0f, data1_251658240[(alu19+-526335)], alu23); | |
| var val52 = select(0.0f, data1_251658240[(alu19+-526333)], alu23); | |
| var val53 = select(0.0f, data1_251658240[(alu19+-526327)], alu24); | |
| var val54 = select(0.0f, data1_251658240[(alu19+-526325)], alu24); | |
| var val55 = select(0.0f, data1_251658240[(alu19+-524295)], alu25); | |
| var val56 = select(0.0f, data1_251658240[(alu19+-524293)], alu25); | |
| var val57 = select(0.0f, data1_251658240[(alu19+-524287)], alu20); | |
| var val58 = select(0.0f, data1_251658240[(alu19+-524285)], alu20); | |
| var val59 = select(0.0f, data1_251658240[(alu19+-524279)], alu26); | |
| var val60 = select(0.0f, data1_251658240[(alu19+-524277)], alu26); | |
| var val61 = select(0.0f, data1_251658240[(alu19+-522247)], alu27); | |
| var val62 = select(0.0f, data1_251658240[(alu19+-522245)], alu27); | |
| var val63 = select(0.0f, data1_251658240[(alu19+-522237)], alu28); | |
| var val64 = select(0.0f, data1_251658240[(alu19+-522229)], alu29); | |
| var alu30 = ((val2-val0)*val1); | |
| var alu31 = ((val38-val0)*val1); | |
| var alu32 = ((val41-val0)*val1); | |
| var alu33 = ((val50-val0)*val1); | |
| var alu34 = ((val6-val0)*val1); | |
| var alu35 = ((val51-val0)*val1); | |
| var alu36 = ((val42-val0)*val1); | |
| var alu37 = ((val52-val0)*val1); | |
| var alu38 = ((val7-val0)*val1); | |
| var alu39 = ((val53-val0)*val1); | |
| var alu40 = ((val43-val0)*val1); | |
| var alu41 = ((val54-val0)*val1); | |
| var alu42 = ((val9-val0)*val1); | |
| var alu43 = ((val55-val0)*val1); | |
| var alu44 = ((val44-val0)*val1); | |
| var alu45 = ((val56-val0)*val1); | |
| var alu46 = ((val10-val0)*val1); | |
| var alu47 = ((val57-val0)*val1); | |
| var alu48 = ((val45-val0)*val1); | |
| var alu49 = ((val58-val0)*val1); | |
| var alu50 = ((val12-val0)*val1); | |
| var alu51 = ((val59-val0)*val1); | |
| var alu52 = ((val46-val0)*val1); | |
| var alu53 = ((val60-val0)*val1); | |
| var alu54 = ((val14-val0)*val1); | |
| var alu55 = ((val61-val0)*val1); | |
| var alu56 = ((val47-val0)*val1); | |
| var alu57 = ((val62-val0)*val1); | |
| var alu58 = ((val16-val0)*val1); | |
| var alu59 = ((val39-val0)*val1); | |
| var alu60 = ((val48-val0)*val1); | |
| var alu61 = ((val63-val0)*val1); | |
| var alu62 = ((val18-val0)*val1); | |
| var alu63 = ((val40-val0)*val1); | |
| var alu64 = ((val49-val0)*val1); | |
| var alu65 = ((val64-val0)*val1); | |
| var alu66 = (alu20&alu5); | |
| var alu67 = (alu66&alu4); | |
| var alu68 = select(0.0f,((1/(1.0f+exp2(((alu30+(0.044715f*alu30*alu30*alu30))*-2.302208198144325f))))*alu30),alu67); | |
| var alu69 = select(0.0f,((1/(1.0f+exp2(((alu31+(0.044715f*alu31*alu31*alu31))*-2.302208198144325f))))*alu31),alu67); | |
| var alu70 = select(0.0f,((1/(1.0f+exp2(((alu32+(0.044715f*alu32*alu32*alu32))*-2.302208198144325f))))*alu32),alu67); | |
| var alu71 = select(0.0f,((1/(1.0f+exp2(((alu33+(0.044715f*alu33*alu33*alu33))*-2.302208198144325f))))*alu33),alu67); | |
| var alu72 = select(0.0f,((1/(1.0f+exp2(((alu34+(0.044715f*alu34*alu34*alu34))*-2.302208198144325f))))*alu34),alu66); | |
| var alu73 = select(0.0f,((1/(1.0f+exp2(((alu35+(0.044715f*alu35*alu35*alu35))*-2.302208198144325f))))*alu35),alu66); | |
| var alu74 = select(0.0f,((1/(1.0f+exp2(((alu36+(0.044715f*alu36*alu36*alu36))*-2.302208198144325f))))*alu36),alu66); | |
| var alu75 = select(0.0f,((1/(1.0f+exp2(((alu37+(0.044715f*alu37*alu37*alu37))*-2.302208198144325f))))*alu37),alu66); | |
| var alu76 = (alu66&alu3); | |
| var alu77 = select(0.0f,((1/(1.0f+exp2(((alu38+(0.044715f*alu38*alu38*alu38))*-2.302208198144325f))))*alu38),alu76); | |
| var alu78 = select(0.0f,((1/(1.0f+exp2(((alu39+(0.044715f*alu39*alu39*alu39))*-2.302208198144325f))))*alu39),alu76); | |
| var alu79 = select(0.0f,((1/(1.0f+exp2(((alu40+(0.044715f*alu40*alu40*alu40))*-2.302208198144325f))))*alu40),alu76); | |
| var alu80 = select(0.0f,((1/(1.0f+exp2(((alu41+(0.044715f*alu41*alu41*alu41))*-2.302208198144325f))))*alu41),alu76); | |
| var alu81 = (alu20&alu4); | |
| var alu82 = select(0.0f,((1/(1.0f+exp2(((alu42+(0.044715f*alu42*alu42*alu42))*-2.302208198144325f))))*alu42),alu81); | |
| var alu83 = select(0.0f,((1/(1.0f+exp2(((alu43+(0.044715f*alu43*alu43*alu43))*-2.302208198144325f))))*alu43),alu81); | |
| var alu84 = select(0.0f,((1/(1.0f+exp2(((alu44+(0.044715f*alu44*alu44*alu44))*-2.302208198144325f))))*alu44),alu81); | |
| var alu85 = select(0.0f,((1/(1.0f+exp2(((alu45+(0.044715f*alu45*alu45*alu45))*-2.302208198144325f))))*alu45),alu81); | |
| var alu86 = select(0.0f,((1/(1.0f+exp2(((alu46+(0.044715f*alu46*alu46*alu46))*-2.302208198144325f))))*alu46),alu20); | |
| var alu87 = select(0.0f,((1/(1.0f+exp2(((alu47+(0.044715f*alu47*alu47*alu47))*-2.302208198144325f))))*alu47),alu20); | |
| var alu88 = select(0.0f,((1/(1.0f+exp2(((alu48+(0.044715f*alu48*alu48*alu48))*-2.302208198144325f))))*alu48),alu20); | |
| var alu89 = select(0.0f,((1/(1.0f+exp2(((alu49+(0.044715f*alu49*alu49*alu49))*-2.302208198144325f))))*alu49),alu20); | |
| var alu90 = (alu20&alu3); | |
| var alu91 = select(0.0f,((1/(1.0f+exp2(((alu50+(0.044715f*alu50*alu50*alu50))*-2.302208198144325f))))*alu50),alu90); | |
| var alu92 = select(0.0f,((1/(1.0f+exp2(((alu51+(0.044715f*alu51*alu51*alu51))*-2.302208198144325f))))*alu51),alu90); | |
| var alu93 = select(0.0f,((1/(1.0f+exp2(((alu52+(0.044715f*alu52*alu52*alu52))*-2.302208198144325f))))*alu52),alu90); | |
| var alu94 = select(0.0f,((1/(1.0f+exp2(((alu53+(0.044715f*alu53*alu53*alu53))*-2.302208198144325f))))*alu53),alu90); | |
| var alu95 = (alu20&alu2); | |
| var alu96 = (alu95&alu4); | |
| var alu97 = select(0.0f,((1/(1.0f+exp2(((alu54+(0.044715f*alu54*alu54*alu54))*-2.302208198144325f))))*alu54),alu96); | |
| var alu98 = select(0.0f,((1/(1.0f+exp2(((alu55+(0.044715f*alu55*alu55*alu55))*-2.302208198144325f))))*alu55),alu96); | |
| var alu99 = select(0.0f,((1/(1.0f+exp2(((alu56+(0.044715f*alu56*alu56*alu56))*-2.302208198144325f))))*alu56),alu96); | |
| var alu100 = select(0.0f,((1/(1.0f+exp2(((alu57+(0.044715f*alu57*alu57*alu57))*-2.302208198144325f))))*alu57),alu96); | |
| var alu101 = select(0.0f,((1/(1.0f+exp2(((alu58+(0.044715f*alu58*alu58*alu58))*-2.302208198144325f))))*alu58),alu95); | |
| var alu102 = select(0.0f,((1/(1.0f+exp2(((alu59+(0.044715f*alu59*alu59*alu59))*-2.302208198144325f))))*alu59),alu95); | |
| var alu103 = select(0.0f,((1/(1.0f+exp2(((alu60+(0.044715f*alu60*alu60*alu60))*-2.302208198144325f))))*alu60),alu95); | |
| var alu104 = select(0.0f,((1/(1.0f+exp2(((alu61+(0.044715f*alu61*alu61*alu61))*-2.302208198144325f))))*alu61),alu95); | |
| var alu105 = (alu95&alu3); | |
| var alu106 = select(0.0f,((1/(1.0f+exp2(((alu62+(0.044715f*alu62*alu62*alu62))*-2.302208198144325f))))*alu62),alu105); | |
| var alu107 = select(0.0f,((1/(1.0f+exp2(((alu63+(0.044715f*alu63*alu63*alu63))*-2.302208198144325f))))*alu63),alu105); | |
| var alu108 = select(0.0f,((1/(1.0f+exp2(((alu64+(0.044715f*alu64*alu64*alu64))*-2.302208198144325f))))*alu64),alu105); | |
| var alu109 = select(0.0f,((1/(1.0f+exp2(((alu65+(0.044715f*alu65*alu65*alu65))*-2.302208198144325f))))*alu65),alu105); | |
| acc0[0] = (acc0[0]+(alu68*val5)+(alu72*val3)+(alu77*val8)+(alu82*val4)+(alu86*val11)+(alu91*val13)+(alu97*val15)+(alu101*val17)+(alu106*val19)); | |
| acc0[1] = (acc0[1]+(alu68*val20)+(alu72*val21)+(alu77*val22)+(alu82*val23)+(alu86*val24)+(alu91*val25)+(alu97*val26)+(alu101*val27)+(alu106*val28)); | |
| acc0[2] = (acc0[2]+(alu68*val29)+(alu72*val30)+(alu77*val31)+(alu82*val32)+(alu86*val33)+(alu91*val34)+(alu97*val35)+(alu101*val36)+(alu106*val37)); | |
| acc0[3] = (acc0[3]+(alu69*val5)+(alu73*val3)+(alu78*val8)+(alu83*val4)+(alu87*val11)+(alu92*val13)+(alu98*val15)+(alu102*val17)+(alu107*val19)); | |
| acc0[4] = (acc0[4]+(alu69*val20)+(alu73*val21)+(alu78*val22)+(alu83*val23)+(alu87*val24)+(alu92*val25)+(alu98*val26)+(alu102*val27)+(alu107*val28)); | |
| acc0[5] = (acc0[5]+(alu69*val29)+(alu73*val30)+(alu78*val31)+(alu83*val32)+(alu87*val33)+(alu92*val34)+(alu98*val35)+(alu102*val36)+(alu107*val37)); | |
| acc0[6] = (acc0[6]+(alu70*val5)+(alu74*val3)+(alu79*val8)+(alu84*val4)+(alu88*val11)+(alu93*val13)+(alu99*val15)+(alu103*val17)+(alu108*val19)); | |
| acc0[7] = (acc0[7]+(alu70*val20)+(alu74*val21)+(alu79*val22)+(alu84*val23)+(alu88*val24)+(alu93*val25)+(alu99*val26)+(alu103*val27)+(alu108*val28)); | |
| acc0[8] = (acc0[8]+(alu70*val29)+(alu74*val30)+(alu79*val31)+(alu84*val32)+(alu88*val33)+(alu93*val34)+(alu99*val35)+(alu103*val36)+(alu108*val37)); | |
| acc0[9] = (acc0[9]+(alu71*val5)+(alu75*val3)+(alu80*val8)+(alu85*val4)+(alu89*val11)+(alu94*val13)+(alu100*val15)+(alu104*val17)+(alu109*val19)); | |
| acc0[10] = (acc0[10]+(alu71*val20)+(alu75*val21)+(alu80*val22)+(alu85*val23)+(alu89*val24)+(alu94*val25)+(alu100*val26)+(alu104*val27)+(alu109*val28)); | |
| acc0[11] = (acc0[11]+(alu71*val29)+(alu75*val30)+(alu80*val31)+(alu85*val32)+(alu89*val33)+(alu94*val34)+(alu100*val35)+(alu104*val36)+(alu109*val37)); | |
| } | |
| } | |
| var alu124 = (alu1+cast1+(gidx2*50331648)); | |
| data0_251658240[alu124] = acc0[0]; | |
| data0_251658240[(alu124+1)] = acc0[3]; | |
| data0_251658240[(alu124+2)] = acc0[6]; | |
| data0_251658240[(alu124+3)] = acc0[9]; | |
| data0_251658240[(alu124+16777216)] = acc0[1]; | |
| data0_251658240[(alu124+16777217)] = acc0[4]; | |
| data0_251658240[(alu124+16777218)] = acc0[7]; | |
| data0_251658240[(alu124+16777219)] = acc0[10]; | |
| data0_251658240[(alu124+33554432)] = acc0[2]; | |
| data0_251658240[(alu124+33554433)] = acc0[5]; | |
| data0_251658240[(alu124+33554434)] = acc0[8]; | |
| data0_251658240[(alu124+33554435)] = acc0[11]; | |
| }`; | |
| const r_5_256_32_4_8_16_4_3_15_3_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_251658240:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @group(0) @binding(4)var<storage,read_write>data3_15:array<f32>; | |
| @group(0) @binding(5)var<storage,read_write>data4_6075:array<f32>; | |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,12>; | |
| var gidx0 = i32(gindex.x); /* 128 */ | |
| var gidx1 = i32(gindex.y); /* 256 */ | |
| var gidx2 = i32(gindex.z); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx1; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var precast3 = (gidx0>>2u); | |
| var alu0 = (gidx0&3); | |
| var precast4 = alu0; | |
| var precast5 = (bitcast<u32>(precast0)<<16u); | |
| var precast6 = (bitcast<u32>(precast1)<<8u); | |
| var precast7 = (bitcast<u32>(precast2)<<2u); | |
| var cast0 = bitcast<u32>(precast3); | |
| var precast8 = (cast0<<3u); | |
| var precast9 = (cast0<<11u); | |
| var cast1 = bitcast<u32>(precast4); | |
| var precast10 = (cast1<<4u); | |
| var precast11 = (cast1<<6u); | |
| var cast2 = bitcast<i32>(precast5); | |
| var alu1 = (lidx0+bitcast<i32>(precast8)); | |
| var alu2 = (bitcast<i32>(precast6)+bitcast<i32>(precast9)+bitcast<i32>(precast7)+bitcast<i32>(precast11)); | |
| var alu3 = (alu1<252); | |
| var alu4 = ((lidx1+bitcast<i32>(precast10))<63); | |
| var alu5 = (0<(lidx1+alu0)); | |
| var alu6 = (3<alu1); | |
| 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; | |
| for (var Ridx0 = 0; Ridx0 < 15; Ridx0++) { | |
| var val0 = data2_15[Ridx0]; | |
| var val1 = data3_15[Ridx0]; | |
| var precast12 = Ridx0; | |
| var precast13 = (bitcast<u32>(precast12)<<24u); | |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { | |
| var precast14 = Ridx1; | |
| var cast3 = bitcast<u32>(precast14); | |
| var precast15 = (cast3<<2u); | |
| var precast16 = (cast3<<18u); | |
| var alu19 = (gidx1+bitcast<i32>(precast15)); | |
| var alu20 = (alu2+cast2+bitcast<i32>(precast16)+bitcast<i32>(precast13)); | |
| var alu21 = ((3<alu19)&(alu19<260)); | |
| var alu22 = (alu5&alu6&alu21); | |
| var val2 = select(0.0f, data1_251658240[(alu20+-263172)], alu22); | |
| var alu23 = ((Ridx0*27)+(Ridx1*9)+(gidx2*1215)); | |
| var val3 = data4_6075[(alu23+1)]; | |
| var val4 = data4_6075[alu23]; | |
| var alu24 = (alu6&alu21); | |
| var val5 = select(0.0f, data1_251658240[(alu20+-263168)], alu24); | |
| var alu25 = (alu4&alu6&alu21); | |
| var val6 = select(0.0f, data1_251658240[(alu20+-263164)], alu25); | |
| var val7 = data4_6075[(alu23+2)]; | |
| var alu26 = (alu5&alu21); | |
| var val8 = select(0.0f, data1_251658240[(alu20+-262148)], alu26); | |
| var val9 = data4_6075[(alu23+3)]; | |
| var val10 = select(0.0f, data1_251658240[(alu20+-262144)], alu21); | |
| var val11 = data4_6075[(alu23+4)]; | |
| var alu27 = (alu4&alu21); | |
| var val12 = select(0.0f, data1_251658240[(alu20+-262140)], alu27); | |
| var val13 = data4_6075[(alu23+5)]; | |
| var alu28 = (alu5&alu3&alu21); | |
| var val14 = select(0.0f, data1_251658240[(alu20+-261124)], alu28); | |
| var val15 = data4_6075[(alu23+6)]; | |
| var alu29 = (alu3&alu21); | |
| var val16 = select(0.0f, data1_251658240[(alu20+-261120)], alu29); | |
| var val17 = data4_6075[(alu23+7)]; | |
| var alu30 = (alu4&alu3&alu21); | |
| var val18 = select(0.0f, data1_251658240[(alu20+-261116)], alu30); | |
| var val19 = data4_6075[(alu23+8)]; | |
| var val20 = data4_6075[(alu23+405)]; | |
| var val21 = data4_6075[(alu23+406)]; | |
| var val22 = data4_6075[(alu23+407)]; | |
| var val23 = data4_6075[(alu23+408)]; | |
| var val24 = data4_6075[(alu23+409)]; | |
| var val25 = data4_6075[(alu23+410)]; | |
| var val26 = data4_6075[(alu23+411)]; | |
| var val27 = data4_6075[(alu23+412)]; | |
| var val28 = data4_6075[(alu23+413)]; | |
| var val29 = data4_6075[(alu23+810)]; | |
| var val30 = data4_6075[(alu23+811)]; | |
| var val31 = data4_6075[(alu23+812)]; | |
| var val32 = data4_6075[(alu23+813)]; | |
| var val33 = data4_6075[(alu23+814)]; | |
| var val34 = data4_6075[(alu23+815)]; | |
| var val35 = data4_6075[(alu23+816)]; | |
| var val36 = data4_6075[(alu23+817)]; | |
| var val37 = data4_6075[(alu23+818)]; | |
| var val38 = select(0.0f, data1_251658240[(alu20+-263171)], alu22); | |
| var val39 = select(0.0f, data1_251658240[(alu20+-262146)], alu26); | |
| var val40 = select(0.0f, data1_251658240[(alu20+-262142)], alu21); | |
| var val41 = select(0.0f, data1_251658240[(alu20+-262138)], alu27); | |
| var val42 = select(0.0f, data1_251658240[(alu20+-261122)], alu28); | |
| var val43 = select(0.0f, data1_251658240[(alu20+-261119)], alu29); | |
| var val44 = select(0.0f, data1_251658240[(alu20+-261118)], alu29); | |
| var val45 = select(0.0f, data1_251658240[(alu20+-261115)], alu30); | |
| var val46 = select(0.0f, data1_251658240[(alu20+-263170)], alu22); | |
| var val47 = select(0.0f, data1_251658240[(alu20+-263166)], alu24); | |
| var val48 = select(0.0f, data1_251658240[(alu20+-263162)], alu25); | |
| var val49 = select(0.0f, data1_251658240[(alu20+-261114)], alu30); | |
| var val50 = select(0.0f, data1_251658240[(alu20+-263169)], alu22); | |
| var val51 = select(0.0f, data1_251658240[(alu20+-263167)], alu24); | |
| var val52 = select(0.0f, data1_251658240[(alu20+-263165)], alu24); | |
| var val53 = select(0.0f, data1_251658240[(alu20+-263163)], alu25); | |
| var val54 = select(0.0f, data1_251658240[(alu20+-263161)], alu25); | |
| var val55 = select(0.0f, data1_251658240[(alu20+-262147)], alu26); | |
| var val56 = select(0.0f, data1_251658240[(alu20+-262145)], alu26); | |
| var val57 = select(0.0f, data1_251658240[(alu20+-262143)], alu21); | |
| var val58 = select(0.0f, data1_251658240[(alu20+-262141)], alu21); | |
| var val59 = select(0.0f, data1_251658240[(alu20+-262139)], alu27); | |
| var val60 = select(0.0f, data1_251658240[(alu20+-262137)], alu27); | |
| var val61 = select(0.0f, data1_251658240[(alu20+-261123)], alu28); | |
| var val62 = select(0.0f, data1_251658240[(alu20+-261121)], alu28); | |
| var val63 = select(0.0f, data1_251658240[(alu20+-261117)], alu29); | |
| var val64 = select(0.0f, data1_251658240[(alu20+-261113)], alu30); | |
| var alu31 = ((val2-val0)*val1); | |
| var alu32 = ((val38-val0)*val1); | |
| var alu33 = ((val46-val0)*val1); | |
| var alu34 = ((val50-val0)*val1); | |
| var alu35 = ((val5-val0)*val1); | |
| var alu36 = ((val51-val0)*val1); | |
| var alu37 = ((val47-val0)*val1); | |
| var alu38 = ((val52-val0)*val1); | |
| var alu39 = ((val6-val0)*val1); | |
| var alu40 = ((val53-val0)*val1); | |
| var alu41 = ((val48-val0)*val1); | |
| var alu42 = ((val54-val0)*val1); | |
| var alu43 = ((val8-val0)*val1); | |
| var alu44 = ((val55-val0)*val1); | |
| var alu45 = ((val39-val0)*val1); | |
| var alu46 = ((val56-val0)*val1); | |
| var alu47 = ((val10-val0)*val1); | |
| var alu48 = ((val57-val0)*val1); | |
| var alu49 = ((val40-val0)*val1); | |
| var alu50 = ((val58-val0)*val1); | |
| var alu51 = ((val12-val0)*val1); | |
| var alu52 = ((val59-val0)*val1); | |
| var alu53 = ((val41-val0)*val1); | |
| var alu54 = ((val60-val0)*val1); | |
| var alu55 = ((val14-val0)*val1); | |
| var alu56 = ((val61-val0)*val1); | |
| var alu57 = ((val42-val0)*val1); | |
| var alu58 = ((val62-val0)*val1); | |
| var alu59 = ((val16-val0)*val1); | |
| var alu60 = ((val43-val0)*val1); | |
| var alu61 = ((val44-val0)*val1); | |
| var alu62 = ((val63-val0)*val1); | |
| var alu63 = ((val18-val0)*val1); | |
| var alu64 = ((val45-val0)*val1); | |
| var alu65 = ((val49-val0)*val1); | |
| var alu66 = ((val64-val0)*val1); | |
| var alu67 = (alu21&alu6); | |
| var alu68 = (alu67&alu5); | |
| var alu69 = select(0.0f,((1/(1.0f+exp2(((alu31+(0.044715f*alu31*alu31*alu31))*-2.302208198144325f))))*alu31),alu68); | |
| var alu70 = select(0.0f,((1/(1.0f+exp2(((alu32+(0.044715f*alu32*alu32*alu32))*-2.302208198144325f))))*alu32),alu68); | |
| var alu71 = select(0.0f,((1/(1.0f+exp2(((alu33+(0.044715f*alu33*alu33*alu33))*-2.302208198144325f))))*alu33),alu68); | |
| var alu72 = select(0.0f,((1/(1.0f+exp2(((alu34+(0.044715f*alu34*alu34*alu34))*-2.302208198144325f))))*alu34),alu68); | |
| var alu73 = select(0.0f,((1/(1.0f+exp2(((alu35+(0.044715f*alu35*alu35*alu35))*-2.302208198144325f))))*alu35),alu67); | |
| var alu74 = select(0.0f,((1/(1.0f+exp2(((alu36+(0.044715f*alu36*alu36*alu36))*-2.302208198144325f))))*alu36),alu67); | |
| var alu75 = select(0.0f,((1/(1.0f+exp2(((alu37+(0.044715f*alu37*alu37*alu37))*-2.302208198144325f))))*alu37),alu67); | |
| var alu76 = select(0.0f,((1/(1.0f+exp2(((alu38+(0.044715f*alu38*alu38*alu38))*-2.302208198144325f))))*alu38),alu67); | |
| var alu77 = (alu67&alu4); | |
| var alu78 = select(0.0f,((1/(1.0f+exp2(((alu39+(0.044715f*alu39*alu39*alu39))*-2.302208198144325f))))*alu39),alu77); | |
| var alu79 = select(0.0f,((1/(1.0f+exp2(((alu40+(0.044715f*alu40*alu40*alu40))*-2.302208198144325f))))*alu40),alu77); | |
| var alu80 = select(0.0f,((1/(1.0f+exp2(((alu41+(0.044715f*alu41*alu41*alu41))*-2.302208198144325f))))*alu41),alu77); | |
| var alu81 = select(0.0f,((1/(1.0f+exp2(((alu42+(0.044715f*alu42*alu42*alu42))*-2.302208198144325f))))*alu42),alu77); | |
| var alu82 = (alu21&alu5); | |
| var alu83 = select(0.0f,((1/(1.0f+exp2(((alu43+(0.044715f*alu43*alu43*alu43))*-2.302208198144325f))))*alu43),alu82); | |
| var alu84 = select(0.0f,((1/(1.0f+exp2(((alu44+(0.044715f*alu44*alu44*alu44))*-2.302208198144325f))))*alu44),alu82); | |
| var alu85 = select(0.0f,((1/(1.0f+exp2(((alu45+(0.044715f*alu45*alu45*alu45))*-2.302208198144325f))))*alu45),alu82); | |
| var alu86 = select(0.0f,((1/(1.0f+exp2(((alu46+(0.044715f*alu46*alu46*alu46))*-2.302208198144325f))))*alu46),alu82); | |
| var alu87 = select(0.0f,((1/(1.0f+exp2(((alu47+(0.044715f*alu47*alu47*alu47))*-2.302208198144325f))))*alu47),alu21); | |
| var alu88 = select(0.0f,((1/(1.0f+exp2(((alu48+(0.044715f*alu48*alu48*alu48))*-2.302208198144325f))))*alu48),alu21); | |
| var alu89 = select(0.0f,((1/(1.0f+exp2(((alu49+(0.044715f*alu49*alu49*alu49))*-2.302208198144325f))))*alu49),alu21); | |
| var alu90 = select(0.0f,((1/(1.0f+exp2(((alu50+(0.044715f*alu50*alu50*alu50))*-2.302208198144325f))))*alu50),alu21); | |
| var alu91 = (alu21&alu4); | |
| var alu92 = select(0.0f,((1/(1.0f+exp2(((alu51+(0.044715f*alu51*alu51*alu51))*-2.302208198144325f))))*alu51),alu91); | |
| var alu93 = select(0.0f,((1/(1.0f+exp2(((alu52+(0.044715f*alu52*alu52*alu52))*-2.302208198144325f))))*alu52),alu91); | |
| var alu94 = select(0.0f,((1/(1.0f+exp2(((alu53+(0.044715f*alu53*alu53*alu53))*-2.302208198144325f))))*alu53),alu91); | |
| var alu95 = select(0.0f,((1/(1.0f+exp2(((alu54+(0.044715f*alu54*alu54*alu54))*-2.302208198144325f))))*alu54),alu91); | |
| var alu96 = (alu21&alu3); | |
| var alu97 = (alu96&alu5); | |
| var alu98 = select(0.0f,((1/(1.0f+exp2(((alu55+(0.044715f*alu55*alu55*alu55))*-2.302208198144325f))))*alu55),alu97); | |
| var alu99 = select(0.0f,((1/(1.0f+exp2(((alu56+(0.044715f*alu56*alu56*alu56))*-2.302208198144325f))))*alu56),alu97); | |
| var alu100 = select(0.0f,((1/(1.0f+exp2(((alu57+(0.044715f*alu57*alu57*alu57))*-2.302208198144325f))))*alu57),alu97); | |
| var alu101 = select(0.0f,((1/(1.0f+exp2(((alu58+(0.044715f*alu58*alu58*alu58))*-2.302208198144325f))))*alu58),alu97); | |
| var alu102 = select(0.0f,((1/(1.0f+exp2(((alu59+(0.044715f*alu59*alu59*alu59))*-2.302208198144325f))))*alu59),alu96); | |
| var alu103 = select(0.0f,((1/(1.0f+exp2(((alu60+(0.044715f*alu60*alu60*alu60))*-2.302208198144325f))))*alu60),alu96); | |
| var alu104 = select(0.0f,((1/(1.0f+exp2(((alu61+(0.044715f*alu61*alu61*alu61))*-2.302208198144325f))))*alu61),alu96); | |
| var alu105 = select(0.0f,((1/(1.0f+exp2(((alu62+(0.044715f*alu62*alu62*alu62))*-2.302208198144325f))))*alu62),alu96); | |
| var alu106 = (alu96&alu4); | |
| var alu107 = select(0.0f,((1/(1.0f+exp2(((alu63+(0.044715f*alu63*alu63*alu63))*-2.302208198144325f))))*alu63),alu106); | |
| var alu108 = select(0.0f,((1/(1.0f+exp2(((alu64+(0.044715f*alu64*alu64*alu64))*-2.302208198144325f))))*alu64),alu106); | |
| var alu109 = select(0.0f,((1/(1.0f+exp2(((alu65+(0.044715f*alu65*alu65*alu65))*-2.302208198144325f))))*alu65),alu106); | |
| var alu110 = select(0.0f,((1/(1.0f+exp2(((alu66+(0.044715f*alu66*alu66*alu66))*-2.302208198144325f))))*alu66),alu106); | |
| acc0[0] = (acc0[0]+(alu69*val4)+(alu73*val3)+(alu78*val7)+(alu83*val9)+(alu87*val11)+(alu92*val13)+(alu98*val15)+(alu102*val17)+(alu107*val19)); | |
| acc0[1] = (acc0[1]+(alu69*val20)+(alu73*val21)+(alu78*val22)+(alu83*val23)+(alu87*val24)+(alu92*val25)+(alu98*val26)+(alu102*val27)+(alu107*val28)); | |
| acc0[2] = (acc0[2]+(alu69*val29)+(alu73*val30)+(alu78*val31)+(alu83*val32)+(alu87*val33)+(alu92*val34)+(alu98*val35)+(alu102*val36)+(alu107*val37)); | |
| acc0[3] = (acc0[3]+(alu70*val4)+(alu74*val3)+(alu79*val7)+(alu84*val9)+(alu88*val11)+(alu93*val13)+(alu99*val15)+(alu103*val17)+(alu108*val19)); | |
| acc0[4] = (acc0[4]+(alu70*val20)+(alu74*val21)+(alu79*val22)+(alu84*val23)+(alu88*val24)+(alu93*val25)+(alu99*val26)+(alu103*val27)+(alu108*val28)); | |
| acc0[5] = (acc0[5]+(alu70*val29)+(alu74*val30)+(alu79*val31)+(alu84*val32)+(alu88*val33)+(alu93*val34)+(alu99*val35)+(alu103*val36)+(alu108*val37)); | |
| acc0[6] = (acc0[6]+(alu71*val4)+(alu75*val3)+(alu80*val7)+(alu85*val9)+(alu89*val11)+(alu94*val13)+(alu100*val15)+(alu104*val17)+(alu109*val19)); | |
| acc0[7] = (acc0[7]+(alu71*val20)+(alu75*val21)+(alu80*val22)+(alu85*val23)+(alu89*val24)+(alu94*val25)+(alu100*val26)+(alu104*val27)+(alu109*val28)); | |
| acc0[8] = (acc0[8]+(alu71*val29)+(alu75*val30)+(alu80*val31)+(alu85*val32)+(alu89*val33)+(alu94*val34)+(alu100*val35)+(alu104*val36)+(alu109*val37)); | |
| acc0[9] = (acc0[9]+(alu72*val4)+(alu76*val3)+(alu81*val7)+(alu86*val9)+(alu90*val11)+(alu95*val13)+(alu101*val15)+(alu105*val17)+(alu110*val19)); | |
| acc0[10] = (acc0[10]+(alu72*val20)+(alu76*val21)+(alu81*val22)+(alu86*val23)+(alu90*val24)+(alu95*val25)+(alu101*val26)+(alu105*val27)+(alu110*val28)); | |
| acc0[11] = (acc0[11]+(alu72*val29)+(alu76*val30)+(alu81*val31)+(alu86*val32)+(alu90*val33)+(alu95*val34)+(alu101*val35)+(alu105*val36)+(alu110*val37)); | |
| } | |
| } | |
| var alu125 = (alu2+cast2+(gidx2*50331648)); | |
| data0_251658240[alu125] = acc0[0]; | |
| data0_251658240[(alu125+1)] = acc0[3]; | |
| data0_251658240[(alu125+2)] = acc0[6]; | |
| data0_251658240[(alu125+3)] = acc0[9]; | |
| data0_251658240[(alu125+16777216)] = acc0[1]; | |
| data0_251658240[(alu125+16777217)] = acc0[4]; | |
| data0_251658240[(alu125+16777218)] = acc0[7]; | |
| data0_251658240[(alu125+16777219)] = acc0[10]; | |
| data0_251658240[(alu125+33554432)] = acc0[2]; | |
| data0_251658240[(alu125+33554433)] = acc0[5]; | |
| data0_251658240[(alu125+33554434)] = acc0[8]; | |
| data0_251658240[(alu125+33554435)] = acc0[11]; | |
| }`; | |
| const r_5_256_32_4_8_16_4_3_15_3_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_251658240:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @group(0) @binding(4)var<storage,read_write>data3_15:array<f32>; | |
| @group(0) @binding(5)var<storage,read_write>data4_6075:array<f32>; | |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,12>; | |
| var gidx0 = i32(gindex.x); /* 128 */ | |
| var gidx1 = i32(gindex.y); /* 256 */ | |
| var gidx2 = i32(gindex.z); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx1; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var precast3 = (gidx0>>2u); | |
| var precast4 = (gidx0&3); | |
| var precast5 = (bitcast<u32>(precast0)<<16u); | |
| var precast6 = (bitcast<u32>(precast1)<<8u); | |
| var cast0 = bitcast<u32>(precast2); | |
| var precast7 = (cast0<<1u); | |
| var precast8 = (cast0<<2u); | |
| var cast1 = bitcast<u32>(precast3); | |
| var precast9 = (cast1<<3u); | |
| var precast10 = (cast1<<11u); | |
| var cast2 = bitcast<u32>(precast4); | |
| var precast11 = (cast2<<4u); | |
| var precast12 = (cast2<<5u); | |
| var precast13 = (cast2<<6u); | |
| var cast3 = bitcast<i32>(precast5); | |
| var alu0 = (lidx0+bitcast<i32>(precast9)); | |
| var alu1 = (bitcast<i32>(precast8)+bitcast<i32>(precast13)); | |
| var alu2 = (bitcast<i32>(precast6)+bitcast<i32>(precast10)+alu1); | |
| var alu3 = (alu0<254); | |
| var alu4 = ((lidx1+bitcast<i32>(precast11))<63); | |
| var alu5 = (alu1<251); | |
| var alu6 = (0<(bitcast<i32>(precast7)+bitcast<i32>(precast12))); | |
| var alu7 = (0<alu1); | |
| var alu8 = (1<alu0); | |
| 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; | |
| for (var Ridx0 = 0; Ridx0 < 15; Ridx0++) { | |
| var val0 = data2_15[Ridx0]; | |
| var val1 = data3_15[Ridx0]; | |
| var precast14 = Ridx0; | |
| var precast15 = (bitcast<u32>(precast14)<<24u); | |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { | |
| var precast16 = Ridx1; | |
| var cast4 = bitcast<u32>(precast16); | |
| var precast17 = (cast4<<1u); | |
| var precast18 = (cast4<<17u); | |
| var alu21 = (gidx1+bitcast<i32>(precast17)); | |
| var alu22 = (alu2+cast3+bitcast<i32>(precast18)+bitcast<i32>(precast15)); | |
| var alu23 = ((1<alu21)&(alu21<258)); | |
| var val2 = select(0.0f, data1_251658240[(alu22+-131586)], (alu6&alu8&alu23)); | |
| var alu24 = ((Ridx0*27)+(Ridx1*9)+(gidx2*1215)); | |
| var val3 = data4_6075[alu24]; | |
| var alu25 = (alu8&alu23); | |
| var val4 = select(0.0f, data1_251658240[(alu22+-131584)], alu25); | |
| var val5 = data4_6075[(alu24+1)]; | |
| var val6 = select(0.0f, data1_251658240[(alu22+-131582)], alu25); | |
| var val7 = data4_6075[(alu24+2)]; | |
| var val8 = select(0.0f, data1_251658240[(alu22+-131074)], (alu6&alu23)); | |
| var val9 = data4_6075[(alu24+3)]; | |
| var val10 = select(0.0f, data1_251658240[(alu22+-131072)], alu23); | |
| var val11 = data4_6075[(alu24+4)]; | |
| var val12 = select(0.0f, data1_251658240[(alu22+-131070)], alu23); | |
| var val13 = data4_6075[(alu24+5)]; | |
| var val14 = select(0.0f, data1_251658240[(alu22+-130562)], (alu6&alu3&alu23)); | |
| var val15 = data4_6075[(alu24+6)]; | |
| var alu26 = (alu3&alu23); | |
| var val16 = select(0.0f, data1_251658240[(alu22+-130560)], alu26); | |
| var val17 = data4_6075[(alu24+7)]; | |
| var val18 = select(0.0f, data1_251658240[(alu22+-130558)], alu26); | |
| var val19 = data4_6075[(alu24+8)]; | |
| var val20 = data4_6075[(alu24+405)]; | |
| var val21 = data4_6075[(alu24+406)]; | |
| var val22 = data4_6075[(alu24+407)]; | |
| var val23 = data4_6075[(alu24+408)]; | |
| var val24 = data4_6075[(alu24+409)]; | |
| var val25 = data4_6075[(alu24+410)]; | |
| var val26 = data4_6075[(alu24+411)]; | |
| var val27 = data4_6075[(alu24+412)]; | |
| var val28 = data4_6075[(alu24+413)]; | |
| var val29 = data4_6075[(alu24+810)]; | |
| var val30 = data4_6075[(alu24+811)]; | |
| var val31 = data4_6075[(alu24+812)]; | |
| var val32 = data4_6075[(alu24+813)]; | |
| var val33 = data4_6075[(alu24+814)]; | |
| var val34 = data4_6075[(alu24+815)]; | |
| var val35 = data4_6075[(alu24+816)]; | |
| var val36 = data4_6075[(alu24+817)]; | |
| var val37 = data4_6075[(alu24+818)]; | |
| var val38 = select(0.0f, data1_251658240[(alu22+-131585)], (alu7&alu8&alu23)); | |
| var val39 = select(0.0f, data1_251658240[(alu22+-131583)], alu25); | |
| var val40 = select(0.0f, data1_251658240[(alu22+-131581)], alu25); | |
| var val41 = select(0.0f, data1_251658240[(alu22+-131580)], (alu4&alu8&alu23)); | |
| var val42 = select(0.0f, data1_251658240[(alu22+-131579)], (alu5&alu8&alu23)); | |
| var val43 = select(0.0f, data1_251658240[(alu22+-131073)], (alu7&alu23)); | |
| var val44 = select(0.0f, data1_251658240[(alu22+-131071)], alu23); | |
| var val45 = select(0.0f, data1_251658240[(alu22+-131069)], alu23); | |
| var val46 = select(0.0f, data1_251658240[(alu22+-131068)], (alu4&alu23)); | |
| var val47 = select(0.0f, data1_251658240[(alu22+-131067)], (alu5&alu23)); | |
| var val48 = select(0.0f, data1_251658240[(alu22+-130561)], (alu7&alu3&alu23)); | |
| var val49 = select(0.0f, data1_251658240[(alu22+-130559)], alu26); | |
| var val50 = select(0.0f, data1_251658240[(alu22+-130557)], alu26); | |
| var val51 = select(0.0f, data1_251658240[(alu22+-130556)], (alu4&alu3&alu23)); | |
| var val52 = select(0.0f, data1_251658240[(alu22+-130555)], (alu5&alu3&alu23)); | |
| var alu27 = ((val2-val0)*val1); | |
| var alu28 = ((val38-val0)*val1); | |
| var alu29 = ((val4-val0)*val1); | |
| var alu30 = ((val39-val0)*val1); | |
| var alu31 = ((val6-val0)*val1); | |
| var alu32 = ((val40-val0)*val1); | |
| var alu33 = ((val41-val0)*val1); | |
| var alu34 = ((val42-val0)*val1); | |
| var alu35 = ((val8-val0)*val1); | |
| var alu36 = ((val43-val0)*val1); | |
| var alu37 = ((val10-val0)*val1); | |
| var alu38 = ((val44-val0)*val1); | |
| var alu39 = ((val12-val0)*val1); | |
| var alu40 = ((val45-val0)*val1); | |
| var alu41 = ((val46-val0)*val1); | |
| var alu42 = ((val47-val0)*val1); | |
| var alu43 = ((val14-val0)*val1); | |
| var alu44 = ((val48-val0)*val1); | |
| var alu45 = ((val16-val0)*val1); | |
| var alu46 = ((val49-val0)*val1); | |
| var alu47 = ((val18-val0)*val1); | |
| var alu48 = ((val50-val0)*val1); | |
| var alu49 = ((val51-val0)*val1); | |
| var alu50 = ((val52-val0)*val1); | |
| var alu51 = (alu23&alu8); | |
| var alu52 = select(0.0f,((1/(1.0f+exp2(((alu27+(0.044715f*alu27*alu27*alu27))*-2.302208198144325f))))*alu27),(alu51&alu6)); | |
| var alu53 = select(0.0f,((1/(1.0f+exp2(((alu28+(0.044715f*alu28*alu28*alu28))*-2.302208198144325f))))*alu28),(alu51&alu7)); | |
| var alu54 = select(0.0f,((1/(1.0f+exp2(((alu29+(0.044715f*alu29*alu29*alu29))*-2.302208198144325f))))*alu29),alu51); | |
| var alu55 = select(0.0f,((1/(1.0f+exp2(((alu30+(0.044715f*alu30*alu30*alu30))*-2.302208198144325f))))*alu30),alu51); | |
| var alu56 = select(0.0f,((1/(1.0f+exp2(((alu31+(0.044715f*alu31*alu31*alu31))*-2.302208198144325f))))*alu31),alu51); | |
| var alu57 = select(0.0f,((1/(1.0f+exp2(((alu32+(0.044715f*alu32*alu32*alu32))*-2.302208198144325f))))*alu32),alu51); | |
| var alu58 = select(0.0f,((1/(1.0f+exp2(((alu33+(0.044715f*alu33*alu33*alu33))*-2.302208198144325f))))*alu33),(alu51&alu4)); | |
| var alu59 = select(0.0f,((1/(1.0f+exp2(((alu34+(0.044715f*alu34*alu34*alu34))*-2.302208198144325f))))*alu34),(alu51&alu5)); | |
| var alu60 = select(0.0f,((1/(1.0f+exp2(((alu35+(0.044715f*alu35*alu35*alu35))*-2.302208198144325f))))*alu35),(alu23&alu6)); | |
| var alu61 = select(0.0f,((1/(1.0f+exp2(((alu36+(0.044715f*alu36*alu36*alu36))*-2.302208198144325f))))*alu36),(alu23&alu7)); | |
| var alu62 = select(0.0f,((1/(1.0f+exp2(((alu37+(0.044715f*alu37*alu37*alu37))*-2.302208198144325f))))*alu37),alu23); | |
| var alu63 = select(0.0f,((1/(1.0f+exp2(((alu38+(0.044715f*alu38*alu38*alu38))*-2.302208198144325f))))*alu38),alu23); | |
| var alu64 = select(0.0f,((1/(1.0f+exp2(((alu39+(0.044715f*alu39*alu39*alu39))*-2.302208198144325f))))*alu39),alu23); | |
| var alu65 = select(0.0f,((1/(1.0f+exp2(((alu40+(0.044715f*alu40*alu40*alu40))*-2.302208198144325f))))*alu40),alu23); | |
| var alu66 = select(0.0f,((1/(1.0f+exp2(((alu41+(0.044715f*alu41*alu41*alu41))*-2.302208198144325f))))*alu41),(alu23&alu4)); | |
| var alu67 = select(0.0f,((1/(1.0f+exp2(((alu42+(0.044715f*alu42*alu42*alu42))*-2.302208198144325f))))*alu42),(alu23&alu5)); | |
| var alu68 = (alu23&alu3); | |
| var alu69 = select(0.0f,((1/(1.0f+exp2(((alu43+(0.044715f*alu43*alu43*alu43))*-2.302208198144325f))))*alu43),(alu68&alu6)); | |
| var alu70 = select(0.0f,((1/(1.0f+exp2(((alu44+(0.044715f*alu44*alu44*alu44))*-2.302208198144325f))))*alu44),(alu68&alu7)); | |
| var alu71 = select(0.0f,((1/(1.0f+exp2(((alu45+(0.044715f*alu45*alu45*alu45))*-2.302208198144325f))))*alu45),alu68); | |
| var alu72 = select(0.0f,((1/(1.0f+exp2(((alu46+(0.044715f*alu46*alu46*alu46))*-2.302208198144325f))))*alu46),alu68); | |
| var alu73 = select(0.0f,((1/(1.0f+exp2(((alu47+(0.044715f*alu47*alu47*alu47))*-2.302208198144325f))))*alu47),alu68); | |
| var alu74 = select(0.0f,((1/(1.0f+exp2(((alu48+(0.044715f*alu48*alu48*alu48))*-2.302208198144325f))))*alu48),alu68); | |
| var alu75 = select(0.0f,((1/(1.0f+exp2(((alu49+(0.044715f*alu49*alu49*alu49))*-2.302208198144325f))))*alu49),(alu68&alu4)); | |
| var alu76 = select(0.0f,((1/(1.0f+exp2(((alu50+(0.044715f*alu50*alu50*alu50))*-2.302208198144325f))))*alu50),(alu68&alu5)); | |
| acc0[0] = (acc0[0]+(alu52*val3)+(alu54*val5)+(alu56*val7)+(alu60*val9)+(alu62*val11)+(alu64*val13)+(alu69*val15)+(alu71*val17)+(alu73*val19)); | |
| acc0[1] = (acc0[1]+(alu52*val20)+(alu54*val21)+(alu56*val22)+(alu60*val23)+(alu62*val24)+(alu64*val25)+(alu69*val26)+(alu71*val27)+(alu73*val28)); | |
| acc0[2] = (acc0[2]+(alu52*val29)+(alu54*val30)+(alu56*val31)+(alu60*val32)+(alu62*val33)+(alu64*val34)+(alu69*val35)+(alu71*val36)+(alu73*val37)); | |
| acc0[3] = (acc0[3]+(alu53*val3)+(alu55*val5)+(alu57*val7)+(alu61*val9)+(alu63*val11)+(alu65*val13)+(alu70*val15)+(alu72*val17)+(alu74*val19)); | |
| acc0[4] = (acc0[4]+(alu53*val20)+(alu55*val21)+(alu57*val22)+(alu61*val23)+(alu63*val24)+(alu65*val25)+(alu70*val26)+(alu72*val27)+(alu74*val28)); | |
| acc0[5] = (acc0[5]+(alu53*val29)+(alu55*val30)+(alu57*val31)+(alu61*val32)+(alu63*val33)+(alu65*val34)+(alu70*val35)+(alu72*val36)+(alu74*val37)); | |
| acc0[6] = (acc0[6]+(alu54*val3)+(alu56*val5)+(alu58*val7)+(alu62*val9)+(alu64*val11)+(alu66*val13)+(alu71*val15)+(alu73*val17)+(alu75*val19)); | |
| acc0[7] = (acc0[7]+(alu54*val20)+(alu56*val21)+(alu58*val22)+(alu62*val23)+(alu64*val24)+(alu66*val25)+(alu71*val26)+(alu73*val27)+(alu75*val28)); | |
| acc0[8] = (acc0[8]+(alu54*val29)+(alu56*val30)+(alu58*val31)+(alu62*val32)+(alu64*val33)+(alu66*val34)+(alu71*val35)+(alu73*val36)+(alu75*val37)); | |
| acc0[9] = (acc0[9]+(alu55*val3)+(alu57*val5)+(alu59*val7)+(alu63*val9)+(alu65*val11)+(alu67*val13)+(alu72*val15)+(alu74*val17)+(alu76*val19)); | |
| acc0[10] = (acc0[10]+(alu55*val20)+(alu57*val21)+(alu59*val22)+(alu63*val23)+(alu65*val24)+(alu67*val25)+(alu72*val26)+(alu74*val27)+(alu76*val28)); | |
| acc0[11] = (acc0[11]+(alu55*val29)+(alu57*val30)+(alu59*val31)+(alu63*val32)+(alu65*val33)+(alu67*val34)+(alu72*val35)+(alu74*val36)+(alu76*val37)); | |
| } | |
| } | |
| var alu91 = (alu2+cast3+(gidx2*50331648)); | |
| data0_251658240[alu91] = acc0[0]; | |
| data0_251658240[(alu91+1)] = acc0[3]; | |
| data0_251658240[(alu91+2)] = acc0[6]; | |
| data0_251658240[(alu91+3)] = acc0[9]; | |
| data0_251658240[(alu91+16777216)] = acc0[1]; | |
| data0_251658240[(alu91+16777217)] = acc0[4]; | |
| data0_251658240[(alu91+16777218)] = acc0[7]; | |
| data0_251658240[(alu91+16777219)] = acc0[10]; | |
| data0_251658240[(alu91+33554432)] = acc0[2]; | |
| data0_251658240[(alu91+33554433)] = acc0[5]; | |
| data0_251658240[(alu91+33554434)] = acc0[8]; | |
| data0_251658240[(alu91+33554435)] = acc0[11]; | |
| }`; | |
| const r_5_256_32_4_8_16_4_3_15_3_3_3n3 = `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_251658240:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @group(0) @binding(4)var<storage,read_write>data3_15:array<f32>; | |
| @group(0) @binding(5)var<storage,read_write>data4_6075:array<f32>; | |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,12>; | |
| var gidx0 = i32(gindex.x); /* 128 */ | |
| var gidx1 = i32(gindex.y); /* 256 */ | |
| var gidx2 = i32(gindex.z); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx1; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var alu0 = (gidx0>>2u); | |
| var precast3 = alu0; | |
| var alu1 = (gidx0&3); | |
| var precast4 = alu1; | |
| var precast5 = (bitcast<u32>(precast0)<<16u); | |
| var precast6 = (bitcast<u32>(precast1)<<8u); | |
| var precast7 = (bitcast<u32>(precast2)<<2u); | |
| var cast0 = bitcast<u32>(precast3); | |
| var precast8 = (cast0<<3u); | |
| var precast9 = (cast0<<11u); | |
| var cast1 = bitcast<u32>(precast4); | |
| var precast10 = (cast1<<4u); | |
| var precast11 = (cast1<<6u); | |
| var cast2 = bitcast<i32>(precast5); | |
| var alu2 = (bitcast<i32>(precast6)+bitcast<i32>(precast9)+bitcast<i32>(precast7)+bitcast<i32>(precast11)); | |
| var alu3 = ((lidx0+bitcast<i32>(precast8))<255); | |
| var alu4 = ((lidx1+bitcast<i32>(precast10))<63); | |
| var alu5 = (0<(lidx0+alu0)); | |
| var alu6 = (0<(lidx1+alu1)); | |
| 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; | |
| for (var Ridx0 = 0; Ridx0 < 15; Ridx0++) { | |
| var val0 = data2_15[Ridx0]; | |
| var val1 = data3_15[Ridx0]; | |
| var precast12 = Ridx0; | |
| var precast13 = (bitcast<u32>(precast12)<<24u); | |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { | |
| var precast14 = Ridx1; | |
| var precast15 = (bitcast<u32>(precast14)<<16u); | |
| var alu19 = (gidx1+Ridx1); | |
| var alu20 = (alu2+cast2+bitcast<i32>(precast15)+bitcast<i32>(precast13)); | |
| var alu21 = ((0<alu19)&(alu19<257)); | |
| var val2 = select(0.0f, data1_251658240[(alu20+-65793)], (alu6&alu5&alu21)); | |
| var alu22 = ((Ridx0*27)+(Ridx1*9)+(gidx2*1215)); | |
| var val3 = data4_6075[(alu22+1)]; | |
| var val4 = data4_6075[alu22]; | |
| var alu23 = (alu5&alu21); | |
| var val5 = select(0.0f, data1_251658240[(alu20+-65792)], alu23); | |
| var val6 = select(0.0f, data1_251658240[(alu20+-65791)], alu23); | |
| var val7 = data4_6075[(alu22+2)]; | |
| var val8 = select(0.0f, data1_251658240[(alu20+-65537)], (alu6&alu21)); | |
| var val9 = data4_6075[(alu22+3)]; | |
| var val10 = select(0.0f, data1_251658240[(alu20+-65536)], alu21); | |
| var val11 = data4_6075[(alu22+4)]; | |
| var val12 = select(0.0f, data1_251658240[(alu20+-65535)], alu21); | |
| var val13 = data4_6075[(alu22+5)]; | |
| var val14 = select(0.0f, data1_251658240[(alu20+-65281)], (alu6&alu3&alu21)); | |
| var val15 = data4_6075[(alu22+6)]; | |
| var alu24 = (alu3&alu21); | |
| var val16 = select(0.0f, data1_251658240[(alu20+-65280)], alu24); | |
| var val17 = data4_6075[(alu22+7)]; | |
| var val18 = select(0.0f, data1_251658240[(alu20+-65279)], alu24); | |
| var val19 = data4_6075[(alu22+8)]; | |
| var val20 = data4_6075[(alu22+405)]; | |
| var val21 = data4_6075[(alu22+406)]; | |
| var val22 = data4_6075[(alu22+407)]; | |
| var val23 = data4_6075[(alu22+408)]; | |
| var val24 = data4_6075[(alu22+409)]; | |
| var val25 = data4_6075[(alu22+410)]; | |
| var val26 = data4_6075[(alu22+411)]; | |
| var val27 = data4_6075[(alu22+412)]; | |
| var val28 = data4_6075[(alu22+413)]; | |
| var val29 = data4_6075[(alu22+810)]; | |
| var val30 = data4_6075[(alu22+811)]; | |
| var val31 = data4_6075[(alu22+812)]; | |
| var val32 = data4_6075[(alu22+813)]; | |
| var val33 = data4_6075[(alu22+814)]; | |
| var val34 = data4_6075[(alu22+815)]; | |
| var val35 = data4_6075[(alu22+816)]; | |
| var val36 = data4_6075[(alu22+817)]; | |
| var val37 = data4_6075[(alu22+818)]; | |
| var val38 = select(0.0f, data1_251658240[(alu20+-65790)], alu23); | |
| var val39 = select(0.0f, data1_251658240[(alu20+-65534)], alu21); | |
| var val40 = select(0.0f, data1_251658240[(alu20+-65278)], alu24); | |
| var val41 = select(0.0f, data1_251658240[(alu20+-65789)], alu23); | |
| var val42 = select(0.0f, data1_251658240[(alu20+-65533)], alu21); | |
| var val43 = select(0.0f, data1_251658240[(alu20+-65277)], alu24); | |
| var val44 = select(0.0f, data1_251658240[(alu20+-65788)], (alu4&alu5&alu21)); | |
| var val45 = select(0.0f, data1_251658240[(alu20+-65532)], (alu4&alu21)); | |
| var val46 = select(0.0f, data1_251658240[(alu20+-65276)], (alu4&alu3&alu21)); | |
| var alu25 = ((val2-val0)*val1); | |
| var alu26 = ((val5-val0)*val1); | |
| var alu27 = ((val6-val0)*val1); | |
| var alu28 = ((val38-val0)*val1); | |
| var alu29 = ((val41-val0)*val1); | |
| var alu30 = ((val44-val0)*val1); | |
| var alu31 = ((val8-val0)*val1); | |
| var alu32 = ((val10-val0)*val1); | |
| var alu33 = ((val12-val0)*val1); | |
| var alu34 = ((val39-val0)*val1); | |
| var alu35 = ((val42-val0)*val1); | |
| var alu36 = ((val45-val0)*val1); | |
| var alu37 = ((val14-val0)*val1); | |
| var alu38 = ((val16-val0)*val1); | |
| var alu39 = ((val18-val0)*val1); | |
| var alu40 = ((val40-val0)*val1); | |
| var alu41 = ((val43-val0)*val1); | |
| var alu42 = ((val46-val0)*val1); | |
| var alu43 = (alu21&alu5); | |
| var alu44 = select(0.0f,((1/(1.0f+exp2(((alu25+(0.044715f*alu25*alu25*alu25))*-2.302208198144325f))))*alu25),(alu43&alu6)); | |
| var alu45 = select(0.0f,((1/(1.0f+exp2(((alu26+(0.044715f*alu26*alu26*alu26))*-2.302208198144325f))))*alu26),alu43); | |
| var alu46 = select(0.0f,((1/(1.0f+exp2(((alu27+(0.044715f*alu27*alu27*alu27))*-2.302208198144325f))))*alu27),alu43); | |
| var alu47 = select(0.0f,((1/(1.0f+exp2(((alu28+(0.044715f*alu28*alu28*alu28))*-2.302208198144325f))))*alu28),alu43); | |
| var alu48 = select(0.0f,((1/(1.0f+exp2(((alu29+(0.044715f*alu29*alu29*alu29))*-2.302208198144325f))))*alu29),alu43); | |
| var alu49 = select(0.0f,((1/(1.0f+exp2(((alu30+(0.044715f*alu30*alu30*alu30))*-2.302208198144325f))))*alu30),(alu43&alu4)); | |
| var alu50 = select(0.0f,((1/(1.0f+exp2(((alu31+(0.044715f*alu31*alu31*alu31))*-2.302208198144325f))))*alu31),(alu21&alu6)); | |
| var alu51 = select(0.0f,((1/(1.0f+exp2(((alu32+(0.044715f*alu32*alu32*alu32))*-2.302208198144325f))))*alu32),alu21); | |
| var alu52 = select(0.0f,((1/(1.0f+exp2(((alu33+(0.044715f*alu33*alu33*alu33))*-2.302208198144325f))))*alu33),alu21); | |
| var alu53 = select(0.0f,((1/(1.0f+exp2(((alu34+(0.044715f*alu34*alu34*alu34))*-2.302208198144325f))))*alu34),alu21); | |
| var alu54 = select(0.0f,((1/(1.0f+exp2(((alu35+(0.044715f*alu35*alu35*alu35))*-2.302208198144325f))))*alu35),alu21); | |
| var alu55 = select(0.0f,((1/(1.0f+exp2(((alu36+(0.044715f*alu36*alu36*alu36))*-2.302208198144325f))))*alu36),(alu21&alu4)); | |
| var alu56 = (alu21&alu3); | |
| var alu57 = select(0.0f,((1/(1.0f+exp2(((alu37+(0.044715f*alu37*alu37*alu37))*-2.302208198144325f))))*alu37),(alu56&alu6)); | |
| var alu58 = select(0.0f,((1/(1.0f+exp2(((alu38+(0.044715f*alu38*alu38*alu38))*-2.302208198144325f))))*alu38),alu56); | |
| var alu59 = select(0.0f,((1/(1.0f+exp2(((alu39+(0.044715f*alu39*alu39*alu39))*-2.302208198144325f))))*alu39),alu56); | |
| var alu60 = select(0.0f,((1/(1.0f+exp2(((alu40+(0.044715f*alu40*alu40*alu40))*-2.302208198144325f))))*alu40),alu56); | |
| var alu61 = select(0.0f,((1/(1.0f+exp2(((alu41+(0.044715f*alu41*alu41*alu41))*-2.302208198144325f))))*alu41),alu56); | |
| var alu62 = select(0.0f,((1/(1.0f+exp2(((alu42+(0.044715f*alu42*alu42*alu42))*-2.302208198144325f))))*alu42),(alu56&alu4)); | |
| acc0[0] = (acc0[0]+(alu44*val4)+(alu45*val3)+(alu46*val7)+(alu50*val9)+(alu51*val11)+(alu52*val13)+(alu57*val15)+(alu58*val17)+(alu59*val19)); | |
| acc0[1] = (acc0[1]+(alu44*val20)+(alu45*val21)+(alu46*val22)+(alu50*val23)+(alu51*val24)+(alu52*val25)+(alu57*val26)+(alu58*val27)+(alu59*val28)); | |
| acc0[2] = (acc0[2]+(alu44*val29)+(alu45*val30)+(alu46*val31)+(alu50*val32)+(alu51*val33)+(alu52*val34)+(alu57*val35)+(alu58*val36)+(alu59*val37)); | |
| acc0[3] = (acc0[3]+(alu45*val4)+(alu46*val3)+(alu47*val7)+(alu51*val9)+(alu52*val11)+(alu53*val13)+(alu58*val15)+(alu59*val17)+(alu60*val19)); | |
| acc0[4] = (acc0[4]+(alu45*val20)+(alu46*val21)+(alu47*val22)+(alu51*val23)+(alu52*val24)+(alu53*val25)+(alu58*val26)+(alu59*val27)+(alu60*val28)); | |
| acc0[5] = (acc0[5]+(alu45*val29)+(alu46*val30)+(alu47*val31)+(alu51*val32)+(alu52*val33)+(alu53*val34)+(alu58*val35)+(alu59*val36)+(alu60*val37)); | |
| acc0[6] = (acc0[6]+(alu46*val4)+(alu47*val3)+(alu48*val7)+(alu52*val9)+(alu53*val11)+(alu54*val13)+(alu59*val15)+(alu60*val17)+(alu61*val19)); | |
| acc0[7] = (acc0[7]+(alu46*val20)+(alu47*val21)+(alu48*val22)+(alu52*val23)+(alu53*val24)+(alu54*val25)+(alu59*val26)+(alu60*val27)+(alu61*val28)); | |
| acc0[8] = (acc0[8]+(alu46*val29)+(alu47*val30)+(alu48*val31)+(alu52*val32)+(alu53*val33)+(alu54*val34)+(alu59*val35)+(alu60*val36)+(alu61*val37)); | |
| acc0[9] = (acc0[9]+(alu47*val4)+(alu48*val3)+(alu49*val7)+(alu53*val9)+(alu54*val11)+(alu55*val13)+(alu60*val15)+(alu61*val17)+(alu62*val19)); | |
| acc0[10] = (acc0[10]+(alu47*val20)+(alu48*val21)+(alu49*val22)+(alu53*val23)+(alu54*val24)+(alu55*val25)+(alu60*val26)+(alu61*val27)+(alu62*val28)); | |
| acc0[11] = (acc0[11]+(alu47*val29)+(alu48*val30)+(alu49*val31)+(alu53*val32)+(alu54*val33)+(alu55*val34)+(alu60*val35)+(alu61*val36)+(alu62*val37)); | |
| } | |
| } | |
| var alu77 = (alu2+cast2+(gidx2*50331648)); | |
| data0_251658240[alu77] = acc0[0]; | |
| data0_251658240[(alu77+1)] = acc0[3]; | |
| data0_251658240[(alu77+2)] = acc0[6]; | |
| data0_251658240[(alu77+3)] = acc0[9]; | |
| data0_251658240[(alu77+16777216)] = acc0[1]; | |
| data0_251658240[(alu77+16777217)] = acc0[4]; | |
| data0_251658240[(alu77+16777218)] = acc0[7]; | |
| data0_251658240[(alu77+16777219)] = acc0[10]; | |
| data0_251658240[(alu77+33554432)] = acc0[2]; | |
| data0_251658240[(alu77+33554433)] = acc0[5]; | |
| data0_251658240[(alu77+33554434)] = acc0[8]; | |
| data0_251658240[(alu77+33554435)] = acc0[11]; | |
| }`; | |
| const r_5_256_32_4_8_16_4_3_15_3_3_3n4 = `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_251658240:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @group(0) @binding(4)var<storage,read_write>data3_15:array<f32>; | |
| @group(0) @binding(5)var<storage,read_write>data4_6075:array<f32>; | |
| @compute @workgroup_size(8,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var acc0: array<f32,12>; | |
| var gidx0 = i32(gindex.x); /* 128 */ | |
| var gidx1 = i32(gindex.y); /* 256 */ | |
| var gidx2 = i32(gindex.z); /* 5 */ | |
| var lidx0 = i32(lindex.x); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx1; | |
| var precast1 = lidx0; | |
| var precast2 = lidx1; | |
| var precast3 = (gidx0>>2u); | |
| var precast4 = (gidx0&3); | |
| var precast5 = (bitcast<u32>(precast0)<<16u); | |
| var precast6 = (bitcast<u32>(precast1)<<8u); | |
| var precast7 = (bitcast<u32>(precast2)<<2u); | |
| var precast8 = (bitcast<u32>(precast3)<<11u); | |
| var cast0 = bitcast<u32>(precast4); | |
| var precast9 = (cast0<<4u); | |
| var precast10 = (cast0<<6u); | |
| var cast1 = bitcast<i32>(precast5); | |
| var alu0 = (lidx1+bitcast<i32>(precast9)); | |
| var alu1 = (bitcast<i32>(precast6)+bitcast<i32>(precast8)+bitcast<i32>(precast7)+bitcast<i32>(precast10)); | |
| var alu2 = (gidx0<120); | |
| var alu3 = (alu0<60); | |
| var alu4 = (3<alu0); | |
| var alu5 = (7<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; | |
| for (var Ridx0 = 0; Ridx0 < 15; Ridx0++) { | |
| var val0 = data2_15[Ridx0]; | |
| var val1 = data3_15[Ridx0]; | |
| var precast11 = Ridx0; | |
| var precast12 = (bitcast<u32>(precast11)<<24u); | |
| for (var Ridx1 = 0; Ridx1 < 3; Ridx1++) { | |
| var precast13 = Ridx1; | |
| var cast2 = bitcast<u32>(precast13); | |
| var precast14 = (cast2<<4u); | |
| var precast15 = (cast2<<20u); | |
| var alu18 = (gidx1+bitcast<i32>(precast14)); | |
| var alu19 = (alu1+cast1+bitcast<i32>(precast15)+bitcast<i32>(precast12)); | |
| var alu20 = ((15<alu18)&(alu18<272)); | |
| var alu21 = (alu4&alu5&alu20); | |
| var val2 = select(0.0f, data1_251658240[(alu19+-1052688)], alu21); | |
| var alu22 = ((Ridx0*27)+(Ridx1*9)+(gidx2*1215)); | |
| var val3 = data4_6075[(alu22+3)]; | |
| var val4 = data4_6075[alu22]; | |
| var alu23 = (alu5&alu20); | |
| var val5 = select(0.0f, data1_251658240[(alu19+-1052672)], alu23); | |
| var val6 = data4_6075[(alu22+1)]; | |
| var alu24 = (alu3&alu5&alu20); | |
| var val7 = select(0.0f, data1_251658240[(alu19+-1052656)], alu24); | |
| var val8 = data4_6075[(alu22+2)]; | |
| var alu25 = (alu4&alu20); | |
| var val9 = select(0.0f, data1_251658240[(alu19+-1048592)], alu25); | |
| var val10 = select(0.0f, data1_251658240[(alu19+-1048576)], alu20); | |
| var val11 = data4_6075[(alu22+4)]; | |
| var alu26 = (alu3&alu20); | |
| var val12 = select(0.0f, data1_251658240[(alu19+-1048560)], alu26); | |
| var val13 = data4_6075[(alu22+5)]; | |
| var alu27 = (alu4&alu2&alu20); | |
| var val14 = select(0.0f, data1_251658240[(alu19+-1044496)], alu27); | |
| var val15 = data4_6075[(alu22+6)]; | |
| var alu28 = (alu2&alu20); | |
| var val16 = select(0.0f, data1_251658240[(alu19+-1044480)], alu28); | |
| var val17 = data4_6075[(alu22+7)]; | |
| var alu29 = (alu3&alu2&alu20); | |
| var val18 = select(0.0f, data1_251658240[(alu19+-1044464)], alu29); | |
| var val19 = data4_6075[(alu22+8)]; | |
| var val20 = data4_6075[(alu22+405)]; | |
| var val21 = data4_6075[(alu22+406)]; | |
| var val22 = data4_6075[(alu22+407)]; | |
| var val23 = data4_6075[(alu22+408)]; | |
| var val24 = data4_6075[(alu22+409)]; | |
| var val25 = data4_6075[(alu22+410)]; | |
| var val26 = data4_6075[(alu22+411)]; | |
| var val27 = data4_6075[(alu22+412)]; | |
| var val28 = data4_6075[(alu22+413)]; | |
| var val29 = data4_6075[(alu22+810)]; | |
| var val30 = data4_6075[(alu22+811)]; | |
| var val31 = data4_6075[(alu22+812)]; | |
| var val32 = data4_6075[(alu22+813)]; | |
| var val33 = data4_6075[(alu22+814)]; | |
| var val34 = data4_6075[(alu22+815)]; | |
| var val35 = data4_6075[(alu22+816)]; | |
| var val36 = data4_6075[(alu22+817)]; | |
| var val37 = data4_6075[(alu22+818)]; | |
| var val38 = select(0.0f, data1_251658240[(alu19+-1052687)], alu21); | |
| var val39 = select(0.0f, data1_251658240[(alu19+-1044479)], alu28); | |
| var val40 = select(0.0f, data1_251658240[(alu19+-1044463)], alu29); | |
| var val41 = select(0.0f, data1_251658240[(alu19+-1052686)], alu21); | |
| var val42 = select(0.0f, data1_251658240[(alu19+-1044462)], alu29); | |
| var val43 = select(0.0f, data1_251658240[(alu19+-1052685)], alu21); | |
| var val44 = select(0.0f, data1_251658240[(alu19+-1052671)], alu23); | |
| var val45 = select(0.0f, data1_251658240[(alu19+-1052670)], alu23); | |
| var val46 = select(0.0f, data1_251658240[(alu19+-1052669)], alu23); | |
| var val47 = select(0.0f, data1_251658240[(alu19+-1052655)], alu24); | |
| var val48 = select(0.0f, data1_251658240[(alu19+-1052654)], alu24); | |
| var val49 = select(0.0f, data1_251658240[(alu19+-1052653)], alu24); | |
| var val50 = select(0.0f, data1_251658240[(alu19+-1048591)], alu25); | |
| var val51 = select(0.0f, data1_251658240[(alu19+-1048590)], alu25); | |
| var val52 = select(0.0f, data1_251658240[(alu19+-1048589)], alu25); | |
| var val53 = select(0.0f, data1_251658240[(alu19+-1048575)], alu20); | |
| var val54 = select(0.0f, data1_251658240[(alu19+-1048574)], alu20); | |
| var val55 = select(0.0f, data1_251658240[(alu19+-1048573)], alu20); | |
| var val56 = select(0.0f, data1_251658240[(alu19+-1048559)], alu26); | |
| var val57 = select(0.0f, data1_251658240[(alu19+-1048558)], alu26); | |
| var val58 = select(0.0f, data1_251658240[(alu19+-1048557)], alu26); | |
| var val59 = select(0.0f, data1_251658240[(alu19+-1044495)], alu27); | |
| var val60 = select(0.0f, data1_251658240[(alu19+-1044494)], alu27); | |
| var val61 = select(0.0f, data1_251658240[(alu19+-1044493)], alu27); | |
| var val62 = select(0.0f, data1_251658240[(alu19+-1044478)], alu28); | |
| var val63 = select(0.0f, data1_251658240[(alu19+-1044477)], alu28); | |
| var val64 = select(0.0f, data1_251658240[(alu19+-1044461)], alu29); | |
| var alu30 = ((val2-val0)*val1); | |
| var alu31 = ((val38-val0)*val1); | |
| var alu32 = ((val41-val0)*val1); | |
| var alu33 = ((val43-val0)*val1); | |
| var alu34 = ((val5-val0)*val1); | |
| var alu35 = ((val44-val0)*val1); | |
| var alu36 = ((val45-val0)*val1); | |
| var alu37 = ((val46-val0)*val1); | |
| var alu38 = ((val7-val0)*val1); | |
| var alu39 = ((val47-val0)*val1); | |
| var alu40 = ((val48-val0)*val1); | |
| var alu41 = ((val49-val0)*val1); | |
| var alu42 = ((val9-val0)*val1); | |
| var alu43 = ((val50-val0)*val1); | |
| var alu44 = ((val51-val0)*val1); | |
| var alu45 = ((val52-val0)*val1); | |
| var alu46 = ((val10-val0)*val1); | |
| var alu47 = ((val53-val0)*val1); | |
| var alu48 = ((val54-val0)*val1); | |
| var alu49 = ((val55-val0)*val1); | |
| var alu50 = ((val12-val0)*val1); | |
| var alu51 = ((val56-val0)*val1); | |
| var alu52 = ((val57-val0)*val1); | |
| var alu53 = ((val58-val0)*val1); | |
| var alu54 = ((val14-val0)*val1); | |
| var alu55 = ((val59-val0)*val1); | |
| var alu56 = ((val60-val0)*val1); | |
| var alu57 = ((val61-val0)*val1); | |
| var alu58 = ((val16-val0)*val1); | |
| var alu59 = ((val39-val0)*val1); | |
| var alu60 = ((val62-val0)*val1); | |
| var alu61 = ((val63-val0)*val1); | |
| var alu62 = ((val18-val0)*val1); | |
| var alu63 = ((val40-val0)*val1); | |
| var alu64 = ((val42-val0)*val1); | |
| var alu65 = ((val64-val0)*val1); | |
| var alu66 = (alu20&alu5); | |
| var alu67 = (alu66&alu4); | |
| var alu68 = select(0.0f,((1/(1.0f+exp2(((alu30+(0.044715f*alu30*alu30*alu30))*-2.302208198144325f))))*alu30),alu67); | |
| var alu69 = select(0.0f,((1/(1.0f+exp2(((alu31+(0.044715f*alu31*alu31*alu31))*-2.302208198144325f))))*alu31),alu67); | |
| var alu70 = select(0.0f,((1/(1.0f+exp2(((alu32+(0.044715f*alu32*alu32*alu32))*-2.302208198144325f))))*alu32),alu67); | |
| var alu71 = select(0.0f,((1/(1.0f+exp2(((alu33+(0.044715f*alu33*alu33*alu33))*-2.302208198144325f))))*alu33),alu67); | |
| var alu72 = select(0.0f,((1/(1.0f+exp2(((alu34+(0.044715f*alu34*alu34*alu34))*-2.302208198144325f))))*alu34),alu66); | |
| var alu73 = select(0.0f,((1/(1.0f+exp2(((alu35+(0.044715f*alu35*alu35*alu35))*-2.302208198144325f))))*alu35),alu66); | |
| var alu74 = select(0.0f,((1/(1.0f+exp2(((alu36+(0.044715f*alu36*alu36*alu36))*-2.302208198144325f))))*alu36),alu66); | |
| var alu75 = select(0.0f,((1/(1.0f+exp2(((alu37+(0.044715f*alu37*alu37*alu37))*-2.302208198144325f))))*alu37),alu66); | |
| var alu76 = (alu66&alu3); | |
| var alu77 = select(0.0f,((1/(1.0f+exp2(((alu38+(0.044715f*alu38*alu38*alu38))*-2.302208198144325f))))*alu38),alu76); | |
| var alu78 = select(0.0f,((1/(1.0f+exp2(((alu39+(0.044715f*alu39*alu39*alu39))*-2.302208198144325f))))*alu39),alu76); | |
| var alu79 = select(0.0f,((1/(1.0f+exp2(((alu40+(0.044715f*alu40*alu40*alu40))*-2.302208198144325f))))*alu40),alu76); | |
| var alu80 = select(0.0f,((1/(1.0f+exp2(((alu41+(0.044715f*alu41*alu41*alu41))*-2.302208198144325f))))*alu41),alu76); | |
| var alu81 = (alu20&alu4); | |
| var alu82 = select(0.0f,((1/(1.0f+exp2(((alu42+(0.044715f*alu42*alu42*alu42))*-2.302208198144325f))))*alu42),alu81); | |
| var alu83 = select(0.0f,((1/(1.0f+exp2(((alu43+(0.044715f*alu43*alu43*alu43))*-2.302208198144325f))))*alu43),alu81); | |
| var alu84 = select(0.0f,((1/(1.0f+exp2(((alu44+(0.044715f*alu44*alu44*alu44))*-2.302208198144325f))))*alu44),alu81); | |
| var alu85 = select(0.0f,((1/(1.0f+exp2(((alu45+(0.044715f*alu45*alu45*alu45))*-2.302208198144325f))))*alu45),alu81); | |
| var alu86 = select(0.0f,((1/(1.0f+exp2(((alu46+(0.044715f*alu46*alu46*alu46))*-2.302208198144325f))))*alu46),alu20); | |
| var alu87 = select(0.0f,((1/(1.0f+exp2(((alu47+(0.044715f*alu47*alu47*alu47))*-2.302208198144325f))))*alu47),alu20); | |
| var alu88 = select(0.0f,((1/(1.0f+exp2(((alu48+(0.044715f*alu48*alu48*alu48))*-2.302208198144325f))))*alu48),alu20); | |
| var alu89 = select(0.0f,((1/(1.0f+exp2(((alu49+(0.044715f*alu49*alu49*alu49))*-2.302208198144325f))))*alu49),alu20); | |
| var alu90 = (alu20&alu3); | |
| var alu91 = select(0.0f,((1/(1.0f+exp2(((alu50+(0.044715f*alu50*alu50*alu50))*-2.302208198144325f))))*alu50),alu90); | |
| var alu92 = select(0.0f,((1/(1.0f+exp2(((alu51+(0.044715f*alu51*alu51*alu51))*-2.302208198144325f))))*alu51),alu90); | |
| var alu93 = select(0.0f,((1/(1.0f+exp2(((alu52+(0.044715f*alu52*alu52*alu52))*-2.302208198144325f))))*alu52),alu90); | |
| var alu94 = select(0.0f,((1/(1.0f+exp2(((alu53+(0.044715f*alu53*alu53*alu53))*-2.302208198144325f))))*alu53),alu90); | |
| var alu95 = (alu20&alu2); | |
| var alu96 = (alu95&alu4); | |
| var alu97 = select(0.0f,((1/(1.0f+exp2(((alu54+(0.044715f*alu54*alu54*alu54))*-2.302208198144325f))))*alu54),alu96); | |
| var alu98 = select(0.0f,((1/(1.0f+exp2(((alu55+(0.044715f*alu55*alu55*alu55))*-2.302208198144325f))))*alu55),alu96); | |
| var alu99 = select(0.0f,((1/(1.0f+exp2(((alu56+(0.044715f*alu56*alu56*alu56))*-2.302208198144325f))))*alu56),alu96); | |
| var alu100 = select(0.0f,((1/(1.0f+exp2(((alu57+(0.044715f*alu57*alu57*alu57))*-2.302208198144325f))))*alu57),alu96); | |
| var alu101 = select(0.0f,((1/(1.0f+exp2(((alu58+(0.044715f*alu58*alu58*alu58))*-2.302208198144325f))))*alu58),alu95); | |
| var alu102 = select(0.0f,((1/(1.0f+exp2(((alu59+(0.044715f*alu59*alu59*alu59))*-2.302208198144325f))))*alu59),alu95); | |
| var alu103 = select(0.0f,((1/(1.0f+exp2(((alu60+(0.044715f*alu60*alu60*alu60))*-2.302208198144325f))))*alu60),alu95); | |
| var alu104 = select(0.0f,((1/(1.0f+exp2(((alu61+(0.044715f*alu61*alu61*alu61))*-2.302208198144325f))))*alu61),alu95); | |
| var alu105 = (alu95&alu3); | |
| var alu106 = select(0.0f,((1/(1.0f+exp2(((alu62+(0.044715f*alu62*alu62*alu62))*-2.302208198144325f))))*alu62),alu105); | |
| var alu107 = select(0.0f,((1/(1.0f+exp2(((alu63+(0.044715f*alu63*alu63*alu63))*-2.302208198144325f))))*alu63),alu105); | |
| var alu108 = select(0.0f,((1/(1.0f+exp2(((alu64+(0.044715f*alu64*alu64*alu64))*-2.302208198144325f))))*alu64),alu105); | |
| var alu109 = select(0.0f,((1/(1.0f+exp2(((alu65+(0.044715f*alu65*alu65*alu65))*-2.302208198144325f))))*alu65),alu105); | |
| acc0[0] = (acc0[0]+(alu68*val4)+(alu72*val6)+(alu77*val8)+(alu82*val3)+(alu86*val11)+(alu91*val13)+(alu97*val15)+(alu101*val17)+(alu106*val19)); | |
| acc0[1] = (acc0[1]+(alu68*val20)+(alu72*val21)+(alu77*val22)+(alu82*val23)+(alu86*val24)+(alu91*val25)+(alu97*val26)+(alu101*val27)+(alu106*val28)); | |
| acc0[2] = (acc0[2]+(alu68*val29)+(alu72*val30)+(alu77*val31)+(alu82*val32)+(alu86*val33)+(alu91*val34)+(alu97*val35)+(alu101*val36)+(alu106*val37)); | |
| acc0[3] = (acc0[3]+(alu69*val4)+(alu73*val6)+(alu78*val8)+(alu83*val3)+(alu87*val11)+(alu92*val13)+(alu98*val15)+(alu102*val17)+(alu107*val19)); | |
| acc0[4] = (acc0[4]+(alu69*val20)+(alu73*val21)+(alu78*val22)+(alu83*val23)+(alu87*val24)+(alu92*val25)+(alu98*val26)+(alu102*val27)+(alu107*val28)); | |
| acc0[5] = (acc0[5]+(alu69*val29)+(alu73*val30)+(alu78*val31)+(alu83*val32)+(alu87*val33)+(alu92*val34)+(alu98*val35)+(alu102*val36)+(alu107*val37)); | |
| acc0[6] = (acc0[6]+(alu70*val4)+(alu74*val6)+(alu79*val8)+(alu84*val3)+(alu88*val11)+(alu93*val13)+(alu99*val15)+(alu103*val17)+(alu108*val19)); | |
| acc0[7] = (acc0[7]+(alu70*val20)+(alu74*val21)+(alu79*val22)+(alu84*val23)+(alu88*val24)+(alu93*val25)+(alu99*val26)+(alu103*val27)+(alu108*val28)); | |
| acc0[8] = (acc0[8]+(alu70*val29)+(alu74*val30)+(alu79*val31)+(alu84*val32)+(alu88*val33)+(alu93*val34)+(alu99*val35)+(alu103*val36)+(alu108*val37)); | |
| acc0[9] = (acc0[9]+(alu71*val4)+(alu75*val6)+(alu80*val8)+(alu85*val3)+(alu89*val11)+(alu94*val13)+(alu100*val15)+(alu104*val17)+(alu109*val19)); | |
| acc0[10] = (acc0[10]+(alu71*val20)+(alu75*val21)+(alu80*val22)+(alu85*val23)+(alu89*val24)+(alu94*val25)+(alu100*val26)+(alu104*val27)+(alu109*val28)); | |
| acc0[11] = (acc0[11]+(alu71*val29)+(alu75*val30)+(alu80*val31)+(alu85*val32)+(alu89*val33)+(alu94*val34)+(alu100*val35)+(alu104*val36)+(alu109*val37)); | |
| } | |
| } | |
| var alu124 = (alu1+cast1+(gidx2*50331648)); | |
| data0_251658240[alu124] = acc0[0]; | |
| data0_251658240[(alu124+1)] = acc0[3]; | |
| data0_251658240[(alu124+2)] = acc0[6]; | |
| data0_251658240[(alu124+3)] = acc0[9]; | |
| data0_251658240[(alu124+16777216)] = acc0[1]; | |
| data0_251658240[(alu124+16777217)] = acc0[4]; | |
| data0_251658240[(alu124+16777218)] = acc0[7]; | |
| data0_251658240[(alu124+16777219)] = acc0[10]; | |
| data0_251658240[(alu124+33554432)] = acc0[2]; | |
| data0_251658240[(alu124+33554433)] = acc0[5]; | |
| data0_251658240[(alu124+33554434)] = acc0[8]; | |
| data0_251658240[(alu124+33554435)] = acc0[11]; | |
| }`; | |
| const r_262144_2_16_4_15 = `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_33554432:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_251658240:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_15:array<f32>; | |
| @group(0) @binding(4)var<storage,read_write>data3_15:array<f32>; | |
| @group(0) @binding(5)var<storage,read_write>data4_30:array<f32>; | |
| @compute @workgroup_size(2,16) fn main(@builtin(workgroup_id) gindex: vec3<u32>,@builtin(local_invocation_id) lindex: vec3<u32>) { | |
| var gidx0 = i32(gindex.x); /* 32768 */ | |
| var gidx1 = i32(gindex.y); /* 8 */ | |
| var lidx1 = i32(lindex.y); /* 16 */ | |
| var precast0 = gidx0; | |
| var precast1 = gidx1; | |
| var precast2 = lidx1; | |
| var precast3 = (bitcast<u32>(precast0)<<9u); | |
| var precast4 = (bitcast<u32>(precast1)<<6u); | |
| var precast5 = (bitcast<u32>(precast2)<<2u); | |
| var alu0 = (bitcast<i32>(precast3)+bitcast<i32>(precast4)+bitcast<i32>(precast5)); | |
| var val0 = data1_251658240[alu0]; | |
| var val1 = data2_15[0]; | |
| var val2 = data3_15[0]; | |
| var lidx0 = i32(lindex.x); /* 2 */ | |
| var alu1 = (lidx0*15); | |
| var val3 = data4_30[(alu1+4)]; | |
| var val4 = data4_30[alu1]; | |
| var val5 = data1_251658240[(alu0+16777216)]; | |
| var val6 = data2_15[1]; | |
| var val7 = data3_15[1]; | |
| var val8 = data4_30[(alu1+1)]; | |
| var val9 = data1_251658240[(alu0+33554432)]; | |
| var val10 = data2_15[2]; | |
| var val11 = data3_15[2]; | |
| var val12 = data4_30[(alu1+2)]; | |
| var val13 = data1_251658240[(alu0+50331648)]; | |
| var val14 = data2_15[3]; | |
| var val15 = data3_15[3]; | |
| var val16 = data4_30[(alu1+3)]; | |
| var val17 = data1_251658240[(alu0+67108864)]; | |
| var val18 = data2_15[4]; | |
| var val19 = data3_15[4]; | |
| var val20 = data1_251658240[(alu0+83886080)]; | |
| var val21 = data2_15[5]; | |
| var val22 = data3_15[5]; | |
| var val23 = data4_30[(alu1+5)]; | |
| var val24 = data1_251658240[(alu0+100663296)]; | |
| var val25 = data2_15[6]; | |
| var val26 = data3_15[6]; | |
| var val27 = data4_30[(alu1+6)]; | |
| var val28 = data1_251658240[(alu0+117440512)]; | |
| var val29 = data2_15[7]; | |
| var val30 = data3_15[7]; | |
| var val31 = data4_30[(alu1+7)]; | |
| var val32 = data1_251658240[(alu0+134217728)]; | |
| var val33 = data2_15[8]; | |
| var val34 = data3_15[8]; | |
| var val35 = data4_30[(alu1+8)]; | |
| var val36 = data1_251658240[(alu0+150994944)]; | |
| var val37 = data2_15[9]; | |
| var val38 = data3_15[9]; | |
| var val39 = data4_30[(alu1+9)]; | |
| var val40 = data1_251658240[(alu0+167772160)]; | |
| var val41 = data2_15[10]; | |
| var val42 = data3_15[10]; | |
| var val43 = data4_30[(alu1+10)]; | |
| var val44 = data1_251658240[(alu0+50331649)]; | |
| var val45 = data1_251658240[(alu0+67108865)]; | |
| var val46 = data1_251658240[(alu0+83886081)]; | |
| var val47 = data1_251658240[(alu0+100663297)]; | |
| var val48 = data1_251658240[(alu0+117440513)]; | |
| var val49 = data1_251658240[(alu0+134217729)]; | |
| var val50 = data1_251658240[(alu0+150994945)]; | |
| var val51 = data1_251658240[(alu0+167772161)]; | |
| var val52 = data1_251658240[(alu0+184549376)]; | |
| var val53 = data2_15[11]; | |
| var val54 = data3_15[11]; | |
| var val55 = data4_30[(alu1+11)]; | |
| var val56 = data1_251658240[(alu0+201326592)]; | |
| var val57 = data2_15[12]; | |
| var val58 = data3_15[12]; | |
| var val59 = data4_30[(alu1+12)]; | |
| var val60 = data1_251658240[(alu0+218103808)]; | |
| var val61 = data2_15[13]; | |
| var val62 = data3_15[13]; | |
| var val63 = data4_30[(alu1+13)]; | |
| var val64 = data1_251658240[(alu0+1)]; | |
| var val65 = data1_251658240[(alu0+16777217)]; | |
| var val66 = data1_251658240[(alu0+33554433)]; | |
| var val67 = data1_251658240[(alu0+184549377)]; | |
| var val68 = data1_251658240[(alu0+234881024)]; | |
| var val69 = data2_15[14]; | |
| var val70 = data3_15[14]; | |
| var val71 = data4_30[(alu1+14)]; | |
| var val72 = data1_251658240[(alu0+2)]; | |
| var val73 = data1_251658240[(alu0+3)]; | |
| var val74 = data1_251658240[(alu0+16777218)]; | |
| var val75 = data1_251658240[(alu0+16777219)]; | |
| var val76 = data1_251658240[(alu0+33554434)]; | |
| var val77 = data1_251658240[(alu0+33554435)]; | |
| var val78 = data1_251658240[(alu0+50331650)]; | |
| var val79 = data1_251658240[(alu0+50331651)]; | |
| var val80 = data1_251658240[(alu0+67108866)]; | |
| var val81 = data1_251658240[(alu0+67108867)]; | |
| var val82 = data1_251658240[(alu0+83886082)]; | |
| var val83 = data1_251658240[(alu0+83886083)]; | |
| var val84 = data1_251658240[(alu0+100663298)]; | |
| var val85 = data1_251658240[(alu0+100663299)]; | |
| var val86 = data1_251658240[(alu0+117440514)]; | |
| var val87 = data1_251658240[(alu0+117440515)]; | |
| var val88 = data1_251658240[(alu0+134217730)]; | |
| var val89 = data1_251658240[(alu0+134217731)]; | |
| var val90 = data1_251658240[(alu0+150994946)]; | |
| var val91 = data1_251658240[(alu0+150994947)]; | |
| var val92 = data1_251658240[(alu0+167772162)]; | |
| var val93 = data1_251658240[(alu0+167772163)]; | |
| var val94 = data1_251658240[(alu0+184549378)]; | |
| var val95 = data1_251658240[(alu0+184549379)]; | |
| var val96 = data1_251658240[(alu0+201326593)]; | |
| var val97 = data1_251658240[(alu0+201326594)]; | |
| var val98 = data1_251658240[(alu0+201326595)]; | |
| var val99 = data1_251658240[(alu0+218103809)]; | |
| var val100 = data1_251658240[(alu0+218103810)]; | |
| var val101 = data1_251658240[(alu0+218103811)]; | |
| var val102 = data1_251658240[(alu0+234881025)]; | |
| var val103 = data1_251658240[(alu0+234881026)]; | |
| var val104 = data1_251658240[(alu0+234881027)]; | |
| var precast6 = lidx0; | |
| var precast7 = (bitcast<u32>(precast6)<<24u); | |
| var alu2 = (alu0+bitcast<i32>(precast7)); | |
| var alu3 = ((val0-val1)*val2); | |
| var alu4 = ((val64-val1)*val2); | |
| var alu5 = ((val72-val1)*val2); | |
| var alu6 = ((val73-val1)*val2); | |
| var alu7 = ((val5-val6)*val7); | |
| var alu8 = ((val65-val6)*val7); | |
| var alu9 = ((val74-val6)*val7); | |
| var alu10 = ((val75-val6)*val7); | |
| var alu11 = ((val9-val10)*val11); | |
| var alu12 = ((val66-val10)*val11); | |
| var alu13 = ((val76-val10)*val11); | |
| var alu14 = ((val77-val10)*val11); | |
| var alu15 = ((val13-val14)*val15); | |
| var alu16 = ((val44-val14)*val15); | |
| var alu17 = ((val78-val14)*val15); | |
| var alu18 = ((val79-val14)*val15); | |
| var alu19 = ((val17-val18)*val19); | |
| var alu20 = ((val45-val18)*val19); | |
| var alu21 = ((val80-val18)*val19); | |
| var alu22 = ((val81-val18)*val19); | |
| var alu23 = ((val20-val21)*val22); | |
| var alu24 = ((val46-val21)*val22); | |
| var alu25 = ((val82-val21)*val22); | |
| var alu26 = ((val83-val21)*val22); | |
| var alu27 = ((val24-val25)*val26); | |
| var alu28 = ((val47-val25)*val26); | |
| var alu29 = ((val84-val25)*val26); | |
| var alu30 = ((val85-val25)*val26); | |
| var alu31 = ((val28-val29)*val30); | |
| var alu32 = ((val48-val29)*val30); | |
| var alu33 = ((val86-val29)*val30); | |
| var alu34 = ((val87-val29)*val30); | |
| var alu35 = ((val32-val33)*val34); | |
| var alu36 = ((val49-val33)*val34); | |
| var alu37 = ((val88-val33)*val34); | |
| var alu38 = ((val89-val33)*val34); | |
| var alu39 = ((val36-val37)*val38); | |
| var alu40 = ((val50-val37)*val38); | |
| var alu41 = ((val90-val37)*val38); | |
| var alu42 = ((val91-val37)*val38); | |
| var alu43 = ((val40-val41)*val42); | |
| var alu44 = ((val51-val41)*val42); | |
| var alu45 = ((val92-val41)*val42); | |
| var alu46 = ((val93-val41)*val42); | |
| var alu47 = ((val52-val53)*val54); | |
| var alu48 = ((val67-val53)*val54); | |
| var alu49 = ((val94-val53)*val54); | |
| var alu50 = ((val95-val53)*val54); | |
| var alu51 = ((val56-val57)*val58); | |
| var alu52 = ((val96-val57)*val58); | |
| var alu53 = ((val97-val57)*val58); | |
| var alu54 = ((val98-val57)*val58); | |
| var alu55 = ((val60-val61)*val62); | |
| var alu56 = ((val99-val61)*val62); | |
| var alu57 = ((val100-val61)*val62); | |
| var alu58 = ((val101-val61)*val62); | |
| var alu59 = ((val68-val69)*val70); | |
| var alu60 = ((val102-val69)*val70); | |
| var alu61 = ((val103-val69)*val70); | |
| var alu62 = ((val104-val69)*val70); | |
| data0_33554432[alu2] = (((1/(1.0f+exp2(((alu3+(0.044715f*alu3*alu3*alu3))*-2.302208198144325f))))*alu3*val4)+((1/(1.0f+exp2(((alu7+(0.044715f*alu7*alu7*alu7))*-2.302208198144325f))))*alu7*val8)+((1/(1.0f+exp2(((alu11+(0.044715f*alu11*alu11*alu11))*-2.302208198144325f))))*alu11*val12)+((1/(1.0f+exp2(((alu15+(0.044715f*alu15*alu15*alu15))*-2.302208198144325f))))*alu15*val16)+((1/(1.0f+exp2(((alu19+(0.044715f*alu19*alu19*alu19))*-2.302208198144325f))))*alu19*val3)+((1/(1.0f+exp2(((alu23+(0.044715f*alu23*alu23*alu23))*-2.302208198144325f))))*alu23*val23)+((1/(1.0f+exp2(((alu27+(0.044715f*alu27*alu27*alu27))*-2.302208198144325f))))*alu27*val27)+((1/(1.0f+exp2(((alu31+(0.044715f*alu31*alu31*alu31))*-2.302208198144325f))))*alu31*val31)+((1/(1.0f+exp2(((alu35+(0.044715f*alu35*alu35*alu35))*-2.302208198144325f))))*alu35*val35)+((1/(1.0f+exp2(((alu39+(0.044715f*alu39*alu39*alu39))*-2.302208198144325f))))*alu39*val39)+((1/(1.0f+exp2(((alu43+(0.044715f*alu43*alu43*alu43))*-2.302208198144325f))))*alu43*val43)+((1/(1.0f+exp2(((alu47+(0.044715f*alu47*alu47*alu47))*-2.302208198144325f))))*alu47*val55)+((1/(1.0f+exp2(((alu51+(0.044715f*alu51*alu51*alu51))*-2.302208198144325f))))*alu51*val59)+((1/(1.0f+exp2(((alu55+(0.044715f*alu55*alu55*alu55))*-2.302208198144325f))))*alu55*val63)+((1/(1.0f+exp2(((alu59+(0.044715f*alu59*alu59*alu59))*-2.302208198144325f))))*alu59*val71)); | |
| data0_33554432[(alu2+1)] = (((1/(1.0f+exp2(((alu4+(0.044715f*alu4*alu4*alu4))*-2.302208198144325f))))*alu4*val4)+((1/(1.0f+exp2(((alu8+(0.044715f*alu8*alu8*alu8))*-2.302208198144325f))))*alu8*val8)+((1/(1.0f+exp2(((alu12+(0.044715f*alu12*alu12*alu12))*-2.302208198144325f))))*alu12*val12)+((1/(1.0f+exp2(((alu16+(0.044715f*alu16*alu16*alu16))*-2.302208198144325f))))*alu16*val16)+((1/(1.0f+exp2(((alu20+(0.044715f*alu20*alu20*alu20))*-2.302208198144325f))))*alu20*val3)+((1/(1.0f+exp2(((alu24+(0.044715f*alu24*alu24*alu24))*-2.302208198144325f))))*alu24*val23)+((1/(1.0f+exp2(((alu28+(0.044715f*alu28*alu28*alu28))*-2.302208198144325f))))*alu28*val27)+((1/(1.0f+exp2(((alu32+(0.044715f*alu32*alu32*alu32))*-2.302208198144325f))))*alu32*val31)+((1/(1.0f+exp2(((alu36+(0.044715f*alu36*alu36*alu36))*-2.302208198144325f))))*alu36*val35)+((1/(1.0f+exp2(((alu40+(0.044715f*alu40*alu40*alu40))*-2.302208198144325f))))*alu40*val39)+((1/(1.0f+exp2(((alu44+(0.044715f*alu44*alu44*alu44))*-2.302208198144325f))))*alu44*val43)+((1/(1.0f+exp2(((alu48+(0.044715f*alu48*alu48*alu48))*-2.302208198144325f))))*alu48*val55)+((1/(1.0f+exp2(((alu52+(0.044715f*alu52*alu52*alu52))*-2.302208198144325f))))*alu52*val59)+((1/(1.0f+exp2(((alu56+(0.044715f*alu56*alu56*alu56))*-2.302208198144325f))))*alu56*val63)+((1/(1.0f+exp2(((alu60+(0.044715f*alu60*alu60*alu60))*-2.302208198144325f))))*alu60*val71)); | |
| data0_33554432[(alu2+2)] = (((1/(1.0f+exp2(((alu5+(0.044715f*alu5*alu5*alu5))*-2.302208198144325f))))*alu5*val4)+((1/(1.0f+exp2(((alu9+(0.044715f*alu9*alu9*alu9))*-2.302208198144325f))))*alu9*val8)+((1/(1.0f+exp2(((alu13+(0.044715f*alu13*alu13*alu13))*-2.302208198144325f))))*alu13*val12)+((1/(1.0f+exp2(((alu17+(0.044715f*alu17*alu17*alu17))*-2.302208198144325f))))*alu17*val16)+((1/(1.0f+exp2(((alu21+(0.044715f*alu21*alu21*alu21))*-2.302208198144325f))))*alu21*val3)+((1/(1.0f+exp2(((alu25+(0.044715f*alu25*alu25*alu25))*-2.302208198144325f))))*alu25*val23)+((1/(1.0f+exp2(((alu29+(0.044715f*alu29*alu29*alu29))*-2.302208198144325f))))*alu29*val27)+((1/(1.0f+exp2(((alu33+(0.044715f*alu33*alu33*alu33))*-2.302208198144325f))))*alu33*val31)+((1/(1.0f+exp2(((alu37+(0.044715f*alu37*alu37*alu37))*-2.302208198144325f))))*alu37*val35)+((1/(1.0f+exp2(((alu41+(0.044715f*alu41*alu41*alu41))*-2.302208198144325f))))*alu41*val39)+((1/(1.0f+exp2(((alu45+(0.044715f*alu45*alu45*alu45))*-2.302208198144325f))))*alu45*val43)+((1/(1.0f+exp2(((alu49+(0.044715f*alu49*alu49*alu49))*-2.302208198144325f))))*alu49*val55)+((1/(1.0f+exp2(((alu53+(0.044715f*alu53*alu53*alu53))*-2.302208198144325f))))*alu53*val59)+((1/(1.0f+exp2(((alu57+(0.044715f*alu57*alu57*alu57))*-2.302208198144325f))))*alu57*val63)+((1/(1.0f+exp2(((alu61+(0.044715f*alu61*alu61*alu61))*-2.302208198144325f))))*alu61*val71)); | |
| data0_33554432[(alu2+3)] = (((1/(1.0f+exp2(((alu6+(0.044715f*alu6*alu6*alu6))*-2.302208198144325f))))*alu6*val4)+((1/(1.0f+exp2(((alu10+(0.044715f*alu10*alu10*alu10))*-2.302208198144325f))))*alu10*val8)+((1/(1.0f+exp2(((alu14+(0.044715f*alu14*alu14*alu14))*-2.302208198144325f))))*alu14*val12)+((1/(1.0f+exp2(((alu18+(0.044715f*alu18*alu18*alu18))*-2.302208198144325f))))*alu18*val16)+((1/(1.0f+exp2(((alu22+(0.044715f*alu22*alu22*alu22))*-2.302208198144325f))))*alu22*val3)+((1/(1.0f+exp2(((alu26+(0.044715f*alu26*alu26*alu26))*-2.302208198144325f))))*alu26*val23)+((1/(1.0f+exp2(((alu30+(0.044715f*alu30*alu30*alu30))*-2.302208198144325f))))*alu30*val27)+((1/(1.0f+exp2(((alu34+(0.044715f*alu34*alu34*alu34))*-2.302208198144325f))))*alu34*val31)+((1/(1.0f+exp2(((alu38+(0.044715f*alu38*alu38*alu38))*-2.302208198144325f))))*alu38*val35)+((1/(1.0f+exp2(((alu42+(0.044715f*alu42*alu42*alu42))*-2.302208198144325f))))*alu42*val39)+((1/(1.0f+exp2(((alu46+(0.044715f*alu46*alu46*alu46))*-2.302208198144325f))))*alu46*val43)+((1/(1.0f+exp2(((alu50+(0.044715f*alu50*alu50*alu50))*-2.302208198144325f))))*alu50*val55)+((1/(1.0f+exp2(((alu54+(0.044715f*alu54*alu54*alu54))*-2.302208198144325f))))*alu54*val59)+((1/(1.0f+exp2(((alu58+(0.044715f*alu58*alu58*alu58))*-2.302208198144325f))))*alu58*val63)+((1/(1.0f+exp2(((alu62+(0.044715f*alu62*alu62*alu62))*-2.302208198144325f))))*alu62*val71)); | |
| }`; | |
| const r_131072_32_4_2 = `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_16777216:array<f32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_33554432: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); /* 32768 */ | |
| var gidx1 = i32(gindex.y); /* 4 */ | |
| var lidx0 = i32(lindex.x); /* 32 */ | |
| var precast0 = gidx0; | |
| var precast1 = gidx1; | |
| var precast2 = lidx0; | |
| var precast3 = (bitcast<u32>(precast0)<<9u); | |
| var precast4 = (bitcast<u32>(precast1)<<7u); | |
| var precast5 = (bitcast<u32>(precast2)<<2u); | |
| var alu0 = (bitcast<i32>(precast3)+bitcast<i32>(precast4)+bitcast<i32>(precast5)); | |
| var val0 = data1_33554432[alu0]; | |
| var alu1 = (alu0+1); | |
| var val1 = data1_33554432[alu1]; | |
| var alu2 = (alu0+2); | |
| var val2 = data1_33554432[alu2]; | |
| var alu3 = (alu0+3); | |
| var val3 = data1_33554432[alu3]; | |
| var val4 = data1_33554432[(alu0+16777216)]; | |
| var val5 = data1_33554432[(alu0+16777217)]; | |
| var val6 = data1_33554432[(alu0+16777218)]; | |
| var val7 = data1_33554432[(alu0+16777219)]; | |
| var alu4 = select(val0,val4,(val0<val4)); | |
| var alu5 = select(val1,val5,(val1<val5)); | |
| var alu6 = select(val2,val6,(val2<val6)); | |
| var alu7 = select(val3,val7,(val3<val7)); | |
| data0_16777216[alu0] = alu4; | |
| data0_16777216[alu1] = alu5; | |
| data0_16777216[alu2] = alu6; | |
| data0_16777216[alu3] = alu7; | |
| }`; | |
| const r_131072_32_4_2n1 = `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_16777216:array<i32>; | |
| @group(0) @binding(2)var<storage,read_write>data1_33554432:array<f32>; | |
| @group(0) @binding(3)var<storage,read_write>data2_16777216: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); /* 32768 */ | |
| var gidx1 = i32(gindex.y); /* 4 */ | |
| var lidx0 = i32(lindex.x); /* 32 */ | |
| var precast0 = gidx0; | |
| var precast1 = gidx1; | |
| var precast2 = lidx0; | |
| var precast3 = (bitcast<u32>(precast0)<<9u); | |
| var precast4 = (bitcast<u32>(precast1)<<7u); | |
| var precast5 = (bitcast<u32>(precast2)<<2u); | |
| var alu0 = (bitcast<i32>(precast3)+bitcast<i32>(precast4)+bitcast<i32>(precast5)); | |
| var val0 = data1_33554432[alu0]; | |
| var val1 = data2_16777216[alu0]; | |
| var alu1 = (alu0+1); | |
| var val2 = data1_33554432[alu1]; | |
| var alu2 = (alu0+2); | |
| var val3 = data1_33554432[alu2]; | |
| var val4 = data1_33554432[(alu0+16777216)]; | |
| var val5 = data2_16777216[alu1]; | |
| var val6 = data1_33554432[(alu0+16777217)]; | |
| var val7 = data2_16777216[alu2]; | |
| var alu3 = (alu0+3); | |
| var val8 = data1_33554432[alu3]; | |
| var val9 = data1_33554432[(alu0+16777218)]; | |
| var val10 = data2_16777216[alu3]; | |
| var val11 = data1_33554432[(alu0+16777219)]; | |
| var precast6 = (i32((val0==val1))); | |
| var precast7 = (i32((val2==val5))); | |
| var precast8 = (i32((val3==val7))); | |
| var precast9 = (i32((val8==val10))); | |
| var precast10 = (bitcast<u32>(precast6)<<1u); | |
| var precast11 = (bitcast<u32>(precast7)<<1u); | |
| var precast12 = (bitcast<u32>(precast8)<<1u); | |
| var precast13 = (bitcast<u32>(precast9)<<1u); | |
| var cast0 = (i32((val4==val1))); | |
| var cast1 = (i32((val6==val5))); | |
| var cast2 = (i32((val9==val7))); | |
| var cast3 = (i32((val11==val10))); | |
| var cast4 = bitcast<i32>(precast10); | |
| var cast5 = bitcast<i32>(precast11); | |
| var cast6 = bitcast<i32>(precast12); | |
| var cast7 = bitcast<i32>(precast13); | |
| var alu4 = select(cast4,cast0,(cast4<cast0)); | |
| var alu5 = select(cast5,cast1,(cast5<cast1)); | |
| var alu6 = select(cast6,cast2,(cast6<cast2)); | |
| var alu7 = select(cast7,cast3,(cast7<cast3)); | |
| data0_16777216[alu0] = (2-alu4); | |
| data0_16777216[alu1] = (2-alu5); | |
| data0_16777216[alu2] = (2-alu6); | |
| data0_16777216[alu3] = (2-alu7); | |
| }`; | |
| 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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]}),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' } }]})] | |
| const buf_0 = createEmptyBuf(device, 1006632960);; | |
| const input0 = createEmptyBuf(device, 67108864);; | |
| const buf_1 = createWeightBuf(device, 1620, getTensorBuffer(safetensor, metadata['model.0.weight'])); | |
| const buf_2 = createEmptyBuf(device, 3932160);; | |
| const buf_3 = createEmptyBuf(device, 15360);; | |
| const buf_4 = createEmptyBuf(device, 60);; | |
| const buf_5 = createEmptyBuf(device, 60);; | |
| const buf_6 = createEmptyBuf(device, 1006632960);; | |
| const buf_7 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.3.weight'])); | |
| const buf_8 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.6.weight'])); | |
| const buf_9 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.9.weight'])); | |
| const buf_10 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.12.weight'])); | |
| const buf_11 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.15.weight'])); | |
| const buf_12 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.18.weight'])); | |
| const buf_13 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.21.weight'])); | |
| const buf_14 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.24.weight'])); | |
| const buf_15 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.27.weight'])); | |
| const buf_16 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.30.weight'])); | |
| const buf_17 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.33.weight'])); | |
| const buf_18 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.36.weight'])); | |
| const buf_19 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.39.weight'])); | |
| const buf_20 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.42.weight'])); | |
| const buf_21 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.45.weight'])); | |
| const buf_22 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.48.weight'])); | |
| const buf_23 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.51.weight'])); | |
| const buf_24 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.54.weight'])); | |
| const buf_25 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.57.weight'])); | |
| const buf_26 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.60.weight'])); | |
| const buf_27 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.63.weight'])); | |
| const buf_28 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.66.weight'])); | |
| const buf_29 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.69.weight'])); | |
| const buf_30 = createWeightBuf(device, 24300, getTensorBuffer(safetensor, metadata['model.72.weight'])); | |
| const buf_31 = createEmptyBuf(device, 134217728);; | |
| const buf_32 = createWeightBuf(device, 120, getTensorBuffer(safetensor, metadata['model.75.weight'])); | |
| const buf_33 = createEmptyBuf(device, 67108864);; | |
| const output0 = createEmptyBuf(device, 67108864);; | |
| 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_5_256_32_4_8_16_4_3_3_3_3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n1, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n2, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n4, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n1, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n2, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n4, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n1, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n2, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n4, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n1, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n2, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n4, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n1, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n2, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_5_256_32_4_8_16_4_3_15_3_3_3n3, r_10240_32_3_64_4, r_40_32_3_64_4, r_15_16_16, r_5_1024_3_16_4_64_4, r_40_32_3_64_4, r_15_16_16n1, r_262144_2_16_4_15, r_131072_32_4_2, r_131072_32_4_2n1]; | |
| 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], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[1], layouts[1], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[2], layouts[2], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[3], layouts[3], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[4], layouts[4], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[5], layouts[5], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[6], layouts[6], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[7], layouts[7], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_7], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[8], layouts[8], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[9], layouts[9], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[10], layouts[10], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[11], layouts[11], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[12], layouts[12], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[13], layouts[13], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[14], layouts[14], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_8], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[15], layouts[15], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[16], layouts[16], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[17], layouts[17], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[18], layouts[18], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[19], layouts[19], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[20], layouts[20], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[21], layouts[21], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_9], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[22], layouts[22], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[23], layouts[23], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[24], layouts[24], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[25], layouts[25], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[26], layouts[26], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[27], layouts[27], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[28], layouts[28], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_10], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[29], layouts[29], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[30], layouts[30], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[31], layouts[31], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[32], layouts[32], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[33], layouts[33], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[34], layouts[34], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[35], layouts[35], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_11], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[36], layouts[36], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[37], layouts[37], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[38], layouts[38], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[39], layouts[39], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[40], layouts[40], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[41], layouts[41], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[42], layouts[42], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_12], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[43], layouts[43], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[44], layouts[44], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[45], layouts[45], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[46], layouts[46], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[47], layouts[47], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[48], layouts[48], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[49], layouts[49], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_13], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[50], layouts[50], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[51], layouts[51], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[52], layouts[52], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[53], layouts[53], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[54], layouts[54], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[55], layouts[55], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[56], layouts[56], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_14], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[57], layouts[57], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[58], layouts[58], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[59], layouts[59], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[60], layouts[60], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[61], layouts[61], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[62], layouts[62], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[63], layouts[63], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_15], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[64], layouts[64], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[65], layouts[65], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[66], layouts[66], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[67], layouts[67], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[68], layouts[68], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[69], layouts[69], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[70], layouts[70], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_16], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[71], layouts[71], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[72], layouts[72], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[73], layouts[73], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[74], layouts[74], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[75], layouts[75], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[76], layouts[76], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[77], layouts[77], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_17], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[78], layouts[78], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[79], layouts[79], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[80], layouts[80], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[81], layouts[81], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[82], layouts[82], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[83], layouts[83], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[84], layouts[84], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_18], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[85], layouts[85], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[86], layouts[86], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[87], layouts[87], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[88], layouts[88], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[89], layouts[89], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[90], layouts[90], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[91], layouts[91], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_19], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[92], layouts[92], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[93], layouts[93], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[94], layouts[94], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[95], layouts[95], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[96], layouts[96], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[97], layouts[97], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[98], layouts[98], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_20], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[99], layouts[99], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[100], layouts[100], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[101], layouts[101], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[102], layouts[102], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[103], layouts[103], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[104], layouts[104], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[105], layouts[105], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_21], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[106], layouts[106], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[107], layouts[107], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[108], layouts[108], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[109], layouts[109], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[110], layouts[110], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[111], layouts[111], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[112], layouts[112], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_22], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[113], layouts[113], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[114], layouts[114], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[115], layouts[115], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[116], layouts[116], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[117], layouts[117], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[118], layouts[118], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[119], layouts[119], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_23], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[120], layouts[120], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[121], layouts[121], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[122], layouts[122], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[123], layouts[123], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[124], layouts[124], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[125], layouts[125], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[126], layouts[126], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_24], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[127], layouts[127], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[128], layouts[128], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[129], layouts[129], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[130], layouts[130], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[131], layouts[131], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[132], layouts[132], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[133], layouts[133], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_25], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[134], layouts[134], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[135], layouts[135], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[136], layouts[136], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[137], layouts[137], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[138], layouts[138], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[139], layouts[139], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[140], layouts[140], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_26], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[141], layouts[141], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[142], layouts[142], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[143], layouts[143], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[144], layouts[144], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[145], layouts[145], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[146], layouts[146], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[147], layouts[147], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_27], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[148], layouts[148], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[149], layouts[149], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[150], layouts[150], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[151], layouts[151], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[152], layouts[152], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[153], layouts[153], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[154], layouts[154], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_28], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[155], layouts[155], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[156], layouts[156], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[157], layouts[157], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[158], layouts[158], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[159], layouts[159], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[160], layouts[160], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[161], layouts[161], infinityBuf, [buf_6, buf_0, buf_4, buf_5, buf_29], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[162], layouts[162], infinityBuf, [buf_2, buf_6], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[163], layouts[163], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[164], layouts[164], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[165], layouts[165], infinityBuf, [buf_2, buf_6, buf_5], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[166], layouts[166], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[167], layouts[167], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[168], layouts[168], infinityBuf, [buf_0, buf_6, buf_5, buf_4, buf_30], [128, 256, 5]); | |
| addComputePass(device, commandEncoder, pipelines[169], layouts[169], infinityBuf, [buf_2, buf_0], [10240, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[170], layouts[170], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[171], layouts[171], infinityBuf, [buf_4, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[172], layouts[172], infinityBuf, [buf_2, buf_0, buf_4], [1024, 5, 1]); | |
| addComputePass(device, commandEncoder, pipelines[173], layouts[173], infinityBuf, [buf_3, buf_2], [40, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[174], layouts[174], infinityBuf, [buf_5, buf_3], [15, 1, 1]); | |
| addComputePass(device, commandEncoder, pipelines[175], layouts[175], infinityBuf, [buf_31, buf_0, buf_4, buf_5, buf_32], [32768, 8, 1]); | |
| addComputePass(device, commandEncoder, pipelines[176], layouts[176], infinityBuf, [buf_33, buf_31], [32768, 4, 1]); | |
| addComputePass(device, commandEncoder, pipelines[177], layouts[177], infinityBuf, [output0, buf_31, buf_33], [32768, 4, 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 Int32Array(gpuReadBuffer0.size/4); | |
| resultBuffer0.set(new Int32Array(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 mindgrab; | |