9bow commited on
Commit
1e553b6
·
verified ·
1 Parent(s): 1668209

Add qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2 WebTorch bundle

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/graph.json +3 -0
  3. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/04f26661cc9ac73bb7f39f66b76c4be31ee8774e094eeb41ed7d677e1b1d3fa9.wgsl +9 -0
  4. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0554a443ecf6ead32fd2d58178b9ce3c592c89a09b3f63fa509ee947323bb497.wgsl +9 -0
  5. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0680219da63feb9bb85653407739c5e5cc93ed6ca0971c1b03c512068d97f69f.wgsl +21 -0
  6. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0835fa80eaadb7c0e6d677e1fc622ad5dcedabb431e5d312f3b7aeb2252a7c7c.wgsl +8 -0
  7. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0e5468583a1ba929483119c50d4be42a58aed4dde1e15cc231908ed7543d0b71.wgsl +9 -0
  8. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0e9b6ee5f92769faaee5c746d1a3b936cdb7731f3f8e70cbf0a3fe96f6c8d921.wgsl +10 -0
  9. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0f466ed2664d77386f48afd19d8ab2734312bfd4f5f4d5b063d801a0b0a97cd9.wgsl +9 -0
  10. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0fd78c192784ba4e545091262cf1bac47ef69ca387b850f97b9de39dd0a2a741.wgsl +25 -0
  11. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/10feb208ed0549389f54419ff8985bee4778276913d4c6a613a8b120a809ab5e.wgsl +25 -0
  12. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/12155d86d776e73f23d3bff0268c60dccb54c209ee9ee3a8cfd227ec4aa5b6df.wgsl +9 -0
  13. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/1255847146b31732939e573cdb26c483358c1ce07f987bd8c3d3d69ae8c7e141.wgsl +9 -0
  14. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/13237b557466d2fef5bfbc74e7ac77219b9821a53bc0843dbb5d14db8b04d414.wgsl +9 -0
  15. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/13dc73935b9b3b978232043e13babee3877bd53ca572be440de0590dacce8b17.wgsl +9 -0
  16. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/15b4ee3a9b5df59d5213e59951d8874f4eb4b9132e04fc2febddad84b44277f5.wgsl +25 -0
  17. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/17ec6bdaf98edf7657b74a25036c2bec806ecbb4280f33fff6afd2e0de5ed377.wgsl +9 -0
  18. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/1ad205080cae29142a3ad87343a0cf3ac4945455398293946110d421ce6d515e.wgsl +10 -0
  19. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/20fb9e0d0bd2aab34b7f69eac259898e68cac4a0d6b0bda5e95c9126a660336d.wgsl +9 -0
  20. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/222a2645e3e02d0a4063a63ca1b6fa4c89faee6b76905b20de4dd54ab3077ea3.wgsl +9 -0
  21. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/234987ec68497956ea7aef8e3f44c8a73dbe4c1519165d123946bedbb4d18e26.wgsl +9 -0
  22. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/26cf6eb3b486d1652247ff130b05ed0e8c8560028eeba59acfc075b976bfdfce.wgsl +12 -0
  23. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2711a4a396071f4e99303d01d4854ccaa37a445f4b718ebd7b61cf1c37e56b48.wgsl +9 -0
  24. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2bdeb3590b1ba05cf6e9c7e8245f8aa552a12dae84f9578c603c9cee081a82d4.wgsl +24 -0
  25. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2c0cca2a7b0198c317e68992e64f3fe9bba80b67204c2695c20c372471c150d3.wgsl +10 -0
  26. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2dd29b61b039fcdd7fbc3c94f629b24b6f81aa5b9923098837597359b295e40d.wgsl +9 -0
  27. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2e1ce6ef01198780289fd4a35d8f86b5172595ed189cf931e8444091d49e8d3a.wgsl +9 -0
  28. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/32a5027cac5dd969d63fe5d5c88d7c87abb600c43ad1d70e1c56615ea781eff3.wgsl +10 -0
  29. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/38bd527686bcade9ed19a52788ccd711ca668e76854cc6274c480860fce88ff2.wgsl +9 -0
  30. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/3bb850bda95bf77706a2839616a401b773f9de0428d1b427e61fb04e2c35fe74.wgsl +11 -0
  31. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/3fa1efae6d90015ba69cb40cef009f49ad7f7a960018fb92a962707deff4f09e.wgsl +9 -0
  32. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/413a0717b830335decd89485fab5fbea4efeb71338961ba7a2d1221eaa45459a.wgsl +25 -0
  33. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/42c5af4838daf75fff9d4bb9a5df409511c1d6daed617d05eaf033a977503eac.wgsl +11 -0
  34. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4540d87eaec90c9eb42badfe0abfa70252f26b6e7de4dd31ee6903fe50e96bd1.wgsl +10 -0
  35. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4ac112c035a1a4a2f5deae66fac0969000c4666730c2d7b15cb15a157ea0e9b8.wgsl +9 -0
  36. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4b1a7529fd5c57d5d4593d4af58a9a3b545c7d106d18251f6452f8a562b97952.wgsl +10 -0
  37. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4be963f9a4bb928764fd0efe02769e220b0e69defb2f8b22ab28e41a90d3fc14.wgsl +9 -0
  38. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4d3e5f3a99a6c8c9dba5de30be4302f1e442f91d097437e825df97017e389a42.wgsl +9 -0
  39. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4f48f08a8aeb51cc47a10db076a46522807d3b5d35952c9718ce1c1cd760681f.wgsl +11 -0
  40. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4fad29e3e337840e25132f10b3e3d55225f727ae13525ff0b0bdf31e03f09d74.wgsl +10 -0
  41. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/51fd4d798491c6a80daff4c18b0495926b7f62269dfc3a78a327faa52ba2a759.wgsl +10 -0
  42. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/53d6eb0b5e6d49bfd3bb9fd1b781e13317adf528e047da2416e95f5a3a13b1b4.wgsl +9 -0
  43. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/552c2f036a125363ca85fd7ea5b1a84465b562dc62ddfffdbaaebf6e3288d321.wgsl +17 -0
  44. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/55b9c48ba429daf80bbae0b4737f895b475abdc9ddfdc88ab2f894f133ec2bf9.wgsl +10 -0
  45. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/579685c7f8ca260bd53d1677c43d5fc9a0133c81c7442ffb31daf0c3759267c4.wgsl +25 -0
  46. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/57c5796344c26b430493a3a63dc734d4206380ba89484294f50f67d615eefcf8.wgsl +17 -0
  47. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/57dc406322bf3badd8490493ef924bd7e7e0afd542d2d6e409b4d8a3b4b784f7.wgsl +9 -0
  48. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/59ea88d691b919af03bbb26f0253decfbc35d74f9661cdd3a08570ae85c313d2.wgsl +11 -0
  49. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/5aa3725287640d289322ab469bd924bd7797f1cef28920ed4526783877c3cf6b.wgsl +10 -0
  50. qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/5adf40822be73f2c85ed1c73c0bd106707e33fcb0e8d1e82a643474b8bfeceeb.wgsl +25 -0
.gitattributes CHANGED
@@ -49,3 +49,5 @@ qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/graph.json filter=lfs diff=lfs mer
49
  qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
50
  qwen35-08b-fp32-int2-g32-mse-home-token-major-v2/graph.json filter=lfs diff=lfs merge=lfs -text
51
  qwen35-08b-fp32-int2-g32-mse-home-token-major-v2/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
 
 
 
49
  qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
50
  qwen35-08b-fp32-int2-g32-mse-home-token-major-v2/graph.json filter=lfs diff=lfs merge=lfs -text
51
  qwen35-08b-fp32-int2-g32-mse-home-token-major-v2/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
52
+ qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/graph.json filter=lfs diff=lfs merge=lfs -text
53
+ qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/graph.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:78123794a111311b0bdafead59f8fa1b93b71c31cc1b293c1c11221e3ccc33de
3
+ size 10577701
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/04f26661cc9ac73bb7f39f66b76c4be31ee8774e094eeb41ed7d677e1b1d3fa9.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 10u) { return; }
8
+ out[i] = f32(b0[((i / 10u) % 1u) * 32u + ((i / 10u) % 1u) * 32u + (((i / 1u) % 10u) * 3u + 2u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0554a443ecf6ead32fd2d58178b9ce3c592c89a09b3f63fa509ee947323bb497.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 128u;
7
+ if (i >= 128u) { return; }
8
+ out[i] = f32(b0[((i / 128u) % 1u) * 512u + ((i / 64u) % 2u) * 256u + ((i / 64u) % 1u) * 256u + (((i / 1u) % 64u) * 1u + 0u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0680219da63feb9bb85653407739c5e5cc93ed6ca0971c1b03c512068d97f69f.wgsl ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
5
+
6
+ var<workgroup> partial: array<f32, 64>;
7
+ @compute @workgroup_size(64)
8
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
9
+ let i = group.x + group.y * 16u;
10
+ if (i >= 16u) { return; }
11
+ let lane = local.x;
12
+ var acc = 0.0;
13
+ for (var p = lane; p < 1024u; p += 64u) { acc += f32(b0[(i / 16u) * 1024u + p]) * f32(b1[(i % 16u) * 1024u + p]); }
14
+ partial[lane] = acc;
15
+ workgroupBarrier();
16
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
17
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
18
+ workgroupBarrier();
19
+ }
20
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
21
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0835fa80eaadb7c0e6d677e1fc622ad5dcedabb431e5d312f3b7aeb2252a7c7c.wgsl ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read_write> out: array<f32>;
2
+
3
+ @compute @workgroup_size(64)
4
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
5
+ let i = gid.x + gid.y * 2048u;
6
+ if (i >= 2048u) { return; }
7
+ out[i] = f32(0.0);
8
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0e5468583a1ba929483119c50d4be42a58aed4dde1e15cc231908ed7543d0b71.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 512u;
7
+ if (i >= 512u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0e9b6ee5f92769faaee5c746d1a3b936cdb7731f3f8e70cbf0a3fe96f6c8d921.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 32768u;
8
+ if (i >= 32768u) { return; }
9
+ out[i] = f32(f32(b0[i]) + (f32(b1[((i / 1u) % 4096u) * 1u]) * 1.0));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0f466ed2664d77386f48afd19d8ab2734312bfd4f5f4d5b063d801a0b0a97cd9.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(b0[((i / 2048u) % 1u) * 2048u + ((i / 128u) % 16u) * 128u + ((i / 128u) % 1u) * 2048u + ((i / 1u) % 128u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/0fd78c192784ba4e545091262cf1bac47ef69ca387b850f97b9de39dd0a2a741.wgsl ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ var<workgroup> partial: array<f32, 64>;
11
+ @compute @workgroup_size(64)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let i = group.x + group.y * 16u;
14
+ if (i >= 16u) { return; }
15
+ let lane = local.x;
16
+ var acc = 0.0;
17
+ for (var p = lane; p < 1024u; p += 64u) { acc += f32(b0[(i / 16u) * 1024u + p]) * unpack_bf16_1((i % 16u) * 1024u + p); }
18
+ partial[lane] = acc;
19
+ workgroupBarrier();
20
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
21
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
22
+ workgroupBarrier();
23
+ }
24
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
25
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/10feb208ed0549389f54419ff8985bee4778276913d4c6a613a8b120a809ab5e.wgsl ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ var<workgroup> partial: array<f32, 64>;
11
+ @compute @workgroup_size(64)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let i = group.x + group.y * 2048u;
14
+ if (i >= 2048u) { return; }
15
+ let lane = local.x;
16
+ var acc = 0.0;
17
+ for (var p = lane; p < 1024u; p += 64u) { acc += f32(b0[(i / 2048u) * 1024u + p]) * unpack_bf16_1((i % 2048u) * 1024u + p); }
18
+ partial[lane] = acc;
19
+ workgroupBarrier();
20
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
21
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
22
+ workgroupBarrier();
23
+ }
24
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
25
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/12155d86d776e73f23d3bff0268c60dccb54c209ee9ee3a8cfd227ec4aa5b6df.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 1024u;
7
+ if (i >= 1024u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/1255847146b31732939e573cdb26c483358c1ce07f987bd8c3d3d69ae8c7e141.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 24576u;
7
+ if (i >= 24576u) { return; }
8
+ out[i] = f32(b0[((i / 24576u) % 1u) * 30720u + ((i / 4u) % 6144u) * 5u + (((i / 1u) % 4u) * 1u + 1u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/13237b557466d2fef5bfbc74e7ac77219b9821a53bc0843dbb5d14db8b04d414.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(f32(b0[i]) * f32(b0[i]));
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/13dc73935b9b3b978232043e13babee3877bd53ca572be440de0590dacce8b17.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 32u) { return; }
8
+ out[i] = f32(b0[0u * 32u + ((i / 32u) % 1u) * 32u + ((i / 32u) % 1u) * 32u + ((i / 1u) % 32u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/15b4ee3a9b5df59d5213e59951d8874f4eb4b9132e04fc2febddad84b44277f5.wgsl ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ var<workgroup> partial: array<f32, 64>;
11
+ @compute @workgroup_size(64)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let i = group.x + group.y * 512u;
14
+ if (i >= 512u) { return; }
15
+ let lane = local.x;
16
+ var acc = 0.0;
17
+ for (var p = lane; p < 1024u; p += 64u) { acc += f32(b0[(i / 512u) * 1024u + p]) * unpack_bf16_1((i % 512u) * 1024u + p); }
18
+ partial[lane] = acc;
19
+ workgroupBarrier();
20
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
21
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
22
+ workgroupBarrier();
23
+ }
24
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
25
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/17ec6bdaf98edf7657b74a25036c2bec806ecbb4280f33fff6afd2e0de5ed377.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(f32(b0[i]) * 0.08838834764831843);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/1ad205080cae29142a3ad87343a0cf3ac4945455398293946110d421ce6d515e.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 128u;
8
+ if (i >= 128u) { return; }
9
+ out[i] = f32(f32(b0[i]) + (f32(b1[i]) * 1.0));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/20fb9e0d0bd2aab34b7f69eac259898e68cac4a0d6b0bda5e95c9126a660336d.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 64u) { return; }
8
+ out[i] = f32(b0[((i / 64u) % 1u) * 128u + ((i / 32u) % 2u) * 64u + ((i / 32u) % 1u) * 64u + (((i / 1u) % 32u) * 1u + 32u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/222a2645e3e02d0a4063a63ca1b6fa4c89faee6b76905b20de4dd54ab3077ea3.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 3u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/234987ec68497956ea7aef8e3f44c8a73dbe4c1519165d123946bedbb4d18e26.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(b0[((i / 2048u) % 1u) * 2048u + ((i / 128u) % 16u) * 128u + 0u * 128u + ((i / 1u) % 128u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/26cf6eb3b486d1652247ff130b05ed0e8c8560028eeba59acfc075b976bfdfce.wgsl ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 30720u;
8
+ if (i >= 30720u) { return; }
9
+ let coord = (i / 1u) % 5u;
10
+ if (coord >= 0u && coord < 4u) { out[i] = f32(b0[(i / 5u) * 4u + (coord - 0u) * 1u + i % 1u]); }
11
+ if (coord >= 4u && coord < 5u) { out[i] = f32(b1[(i / 5u) * 1u + (coord - 4u) * 1u + i % 1u]); }
12
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2711a4a396071f4e99303d01d4854ccaa37a445f4b718ebd7b61cf1c37e56b48.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 16u) { return; }
8
+ out[i] = f32(b0[((i / 16u) % 1u) * 16u + ((i / 1u) % 16u) * 1u + ((i / 1u) % 1u) * 16u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2bdeb3590b1ba05cf6e9c7e8245f8aa552a12dae84f9578c603c9cee081a82d4.wgsl ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ var<workgroup> factor: f32;
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
8
+ let row = group.x + group.y * 16u;
9
+ if (row >= 16u) { return; }
10
+ let lane = local.x;
11
+ if (lane == 0u) {
12
+ var total = 0.0;
13
+ for (var j = 0u; j < 128u; j++) {
14
+ let v = f32(b0[row * 128u + j]);
15
+ total += v * v;
16
+ }
17
+ factor = inverseSqrt(total / 128.0 + 1e-06);
18
+ }
19
+ workgroupBarrier();
20
+ for (var p = lane; p < 128u; p += 64u) {
21
+ let i = row * 128u + p;
22
+ out[i] = f32(f32(b0[row * 128u + p]) * factor * (f32(b1[p]) + 0.0));
23
+ }
24
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2c0cca2a7b0198c317e68992e64f3fe9bba80b67204c2695c20c372471c150d3.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 262144u;
8
+ if (i >= 262144u) { return; }
9
+ out[i] = f32(f32(b0[((i / 16384u) % 16u) * 128u + ((i / 128u) % 128u) * 1u]) * f32(b1[((i / 16384u) % 16u) * 128u + ((i / 1u) % 128u) * 1u]));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2dd29b61b039fcdd7fbc3c94f629b24b6f81aa5b9923098837597359b295e40d.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(b0[((i / 2048u) % 1u) * 2048u + ((i / 2048u) % 1u) * 128u + ((i / 128u) % 16u) * 128u + ((i / 1u) % 128u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/2e1ce6ef01198780289fd4a35d8f86b5172595ed189cf931e8444091d49e8d3a.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 64u) { return; }
8
+ out[i] = f32(f32(b0[i]) * 1.0);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/32a5027cac5dd969d63fe5d5c88d7c87abb600c43ad1d70e1c56615ea781eff3.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 262144u;
8
+ if (i >= 262144u) { return; }
9
+ out[i] = f32(f32(b0[i]) * f32(b1[((i / 16384u) % 16u) * 128u + ((i / 128u) % 128u) * 1u]));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/38bd527686bcade9ed19a52788ccd711ca668e76854cc6274c480860fce88ff2.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(b0[((i / 2048u) % 1u) * 6144u + ((i / 2048u) % 1u) * 6144u + (((i / 1u) % 2048u) * 1u + 0u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/3bb850bda95bf77706a2839616a401b773f9de0428d1b427e61fb04e2c35fe74.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 128u;
8
+ if (i >= 96u) { return; }
9
+ let coord = (i / 32u) % 3u;
10
+ if (coord == 0u) { out[i] = f32(b0[((i / 32u) % 1u) * 32u + ((i / 32u) % 1u) * 32u + ((i / 1u) % 32u) * 1u]); } else { out[i] = f32(b1[i]); }
11
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/3fa1efae6d90015ba69cb40cef009f49ad7f7a960018fb92a962707deff4f09e.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 10u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/413a0717b830335decd89485fab5fbea4efeb71338961ba7a2d1221eaa45459a.wgsl ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ var<workgroup> partial: array<f32, 64>;
11
+ @compute @workgroup_size(64)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let i = group.x + group.y * 1024u;
14
+ if (i >= 1024u) { return; }
15
+ let lane = local.x;
16
+ var acc = 0.0;
17
+ for (var p = lane; p < 3584u; p += 64u) { acc += f32(b0[(i / 1024u) * 3584u + p]) * unpack_bf16_1((i % 1024u) * 3584u + p); }
18
+ partial[lane] = acc;
19
+ workgroupBarrier();
20
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
21
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
22
+ workgroupBarrier();
23
+ }
24
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
25
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/42c5af4838daf75fff9d4bb9a5df409511c1d6daed617d05eaf033a977503eac.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 64u;
8
+ if (i >= 32u) { return; }
9
+ let coord = (i / 1u) % 32u;
10
+ if (coord >= 1u && coord < 34u && (coord - 1u) % 3u == 0u) { out[i] = f32(b0[((i / 32u) % 1u) * 11u + ((i / 32u) % 1u) * 11u + ((((i / 1u) % 32u) - 1u) / 3u) * 1u]); } else { out[i] = f32(b1[i]); }
11
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4540d87eaec90c9eb42badfe0abfa70252f26b6e7de4dd31ee6903fe50e96bd1.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 262144u;
8
+ if (i >= 262144u) { return; }
9
+ out[i] = f32(f32(b0[i]) + (f32(b1[i]) * 1.0));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4ac112c035a1a4a2f5deae66fac0969000c4666730c2d7b15cb15a157ea0e9b8.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 2048u;
7
+ if (i >= 2048u) { return; }
8
+ out[i] = f32(b0[((i / 2048u) % 1u) * 2048u + ((i / 256u) % 8u) * 256u + ((i / 256u) % 1u) * 2048u + ((i / 1u) % 256u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4b1a7529fd5c57d5d4593d4af58a9a3b545c7d106d18251f6452f8a562b97952.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 64u;
8
+ if (i >= 16u) { return; }
9
+ out[i] = f32(f32(b0[i]) + (f32(b1[((i / 1u) % 16u) * 1u]) * 1.0));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4be963f9a4bb928764fd0efe02769e220b0e69defb2f8b22ab28e41a90d3fc14.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 11u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4d3e5f3a99a6c8c9dba5de30be4302f1e442f91d097437e825df97017e389a42.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 6144u;
7
+ if (i >= 6144u) { return; }
8
+ out[i] = f32(b0[((i / 6144u) % 1u) * 6144u + ((i / 6144u) % 1u) * 1u + ((i / 1u) % 6144u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4f48f08a8aeb51cc47a10db076a46522807d3b5d35952c9718ce1c1cd760681f.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 3584u;
8
+ if (i >= 3584u) { return; }
9
+ let x = f32(b0[i]); let s = f32(f32(x / (1.0 + exp(-x))));
10
+ out[i] = f32(s * f32(b1[i]));
11
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/4fad29e3e337840e25132f10b3e3d55225f727ae13525ff0b0bdf31e03f09d74.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 256u;
7
+ if (i >= 256u) { return; }
8
+ let x = f32(b0[i]);
9
+ out[i] = f32(-x);
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/51fd4d798491c6a80daff4c18b0495926b7f62269dfc3a78a327faa52ba2a759.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 16u) { return; }
8
+ let x = f32(b0[i]);
9
+ out[i] = f32(exp(x));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/53d6eb0b5e6d49bfd3bb9fd1b781e13317adf528e047da2416e95f5a3a13b1b4.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 128u;
7
+ if (i >= 96u) { return; }
8
+ out[i] = f32(b0[((i / 32u) % 3u) * 32u + ((i / 32u) % 1u) * 32u + ((i / 32u) % 1u) * 1u + ((i / 1u) % 32u) * 1u]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/552c2f036a125363ca85fd7ea5b1a84465b562dc62ddfffdbaaebf6e3288d321.wgsl ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ @compute @workgroup_size(64)
11
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
12
+ let i = gid.x + gid.y * 1024u;
13
+ if (i >= 1024u) { return; }
14
+ let token = i32(b0[i / 1024u]);
15
+ if (token < 131072 || token >= 196608) { out[i] = f32(0.0); return; }
16
+ out[i] = f32(unpack_bf16_1(u32(token - 131072) * 1024u + i % 1024u));
17
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/55b9c48ba429daf80bbae0b4737f895b475abdc9ddfdc88ab2f894f133ec2bf9.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 30720u;
7
+ if (i >= 30720u) { return; }
8
+ let x = f32(b0[i]);
9
+ out[i] = f32(x / (1.0 + exp(-x)));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/579685c7f8ca260bd53d1677c43d5fc9a0133c81c7442ffb31daf0c3759267c4.wgsl ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ var<workgroup> partial: array<f32, 64>;
11
+ @compute @workgroup_size(64)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let i = group.x + group.y * 3584u;
14
+ if (i >= 3584u) { return; }
15
+ let lane = local.x;
16
+ var acc = 0.0;
17
+ for (var p = lane; p < 1024u; p += 64u) { acc += f32(b0[(i / 3584u) * 1024u + p]) * unpack_bf16_1((i % 3584u) * 1024u + p); }
18
+ partial[lane] = acc;
19
+ workgroupBarrier();
20
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
21
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
22
+ workgroupBarrier();
23
+ }
24
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
25
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/57c5796344c26b430493a3a63dc734d4206380ba89484294f50f67d615eefcf8.wgsl ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ @compute @workgroup_size(64)
11
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
12
+ let i = gid.x + gid.y * 1024u;
13
+ if (i >= 1024u) { return; }
14
+ let token = i32(b0[i / 1024u]);
15
+ if (token < 196608 || token >= 248320) { out[i] = f32(0.0); return; }
16
+ out[i] = f32(unpack_bf16_1(u32(token - 196608) * 1024u + i % 1024u));
17
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/57dc406322bf3badd8490493ef924bd7e7e0afd542d2d6e409b4d8a3b4b784f7.wgsl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 16u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/59ea88d691b919af03bbb26f0253decfbc35d74f9661cdd3a08570ae85c313d2.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read_write> out: array<f32>;
3
+
4
+ @compute @workgroup_size(64)
5
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
6
+ let i = gid.x + gid.y * 64u;
7
+ if (i >= 16u) { return; }
8
+ let x = f32(b0[i]);
9
+ if (x * 1.0 > 20.0) { out[i] = f32(x); return; }
10
+ out[i] = f32(log(1.0 + exp(x * 1.0)) / 1.0);
11
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/5aa3725287640d289322ab469bd924bd7797f1cef28920ed4526783877c3cf6b.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<f32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 1024u;
8
+ if (i >= 1024u) { return; }
9
+ out[i] = f32(f32(b0[i]) + (f32(b1[i]) * 1.0));
10
+ }
qwen35-08b-fp32-int2-g32-up-proj-mse-home-token-major-v2/kernels/5adf40822be73f2c85ed1c73c0bd106707e33fcb0e8d1e82a643474b8bfeceeb.wgsl ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
2
+ @group(0) @binding(1) var<storage, read> b1: array<u32>;
3
+ @group(0) @binding(2) var<storage, read_write> out: array<f32>;
4
+ fn unpack_bf16_1(index: u32) -> f32 {
5
+ let pair = b1[index / 2u];
6
+ let bits = (pair >> ((index % 2u) * 16u)) & 65535u;
7
+ return bitcast<f32>(bits << 16u);
8
+ }
9
+
10
+ var<workgroup> partial: array<f32, 64>;
11
+ @compute @workgroup_size(64)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let i = group.x + group.y * 65535u;
14
+ if (i >= 65536u) { return; }
15
+ let lane = local.x;
16
+ var acc = 0.0;
17
+ for (var p = lane; p < 1024u; p += 64u) { acc += f32(b0[(i / 65536u) * 1024u + p]) * unpack_bf16_1((i % 65536u) * 1024u + p); }
18
+ partial[lane] = acc;
19
+ workgroupBarrier();
20
+ for (var stride = 32u; stride > 0u; stride /= 2u) {
21
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
22
+ workgroupBarrier();
23
+ }
24
+ if (lane == 0u) { out[i] = f32(partial[0] + 0.0); }
25
+ }