9bow commited on
Commit
e73ad30
·
verified ·
1 Parent(s): 8d92958

Add Qwen3.5-2B mixed FP16 INT4 candidate

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 +1 -0
  2. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/entrypoints/prefill-4.json +0 -0
  3. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/graph.json +3 -0
  4. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/002f3dff1b027a15b1b92e3f04c88efa1ecd7199d6852603412b700547bdc70d.wgsl +11 -0
  5. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/023d7b2d9e71a92f74db0e4583d453118915f46ba0c8c96c796632d958654ea1.wgsl +10 -0
  6. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/02915a0f22b3245bc6490c9bfbedc331f50293e3e7f87525fe4482f0c94e8aff.wgsl +10 -0
  7. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/02b89cf7780686b8cf46c4db784144cef988e047230cf92ecd1e25e45cabd224.wgsl +10 -0
  8. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/035979e9647fb0752d2135ad95461bae23933ee3fc591c65963104942287d12f.wgsl +24 -0
  9. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/037256742da99812bfb6619450f2af103bf17e3d38333c9d309f07aba3a3ae20.wgsl +11 -0
  10. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/03d3272d16bc278fcc977e95fcb512bac183f503c7d6ced229f9f01f8e5011bf.wgsl +13 -0
  11. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/044fcdf70bcfbb2e3fa472f622959964b1e5929797fcd65fa2eab7016910ee34.wgsl +21 -0
  12. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/04f26661cc9ac73bb7f39f66b76c4be31ee8774e094eeb41ed7d677e1b1d3fa9.wgsl +9 -0
  13. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/05a8da37281cc1281b5928ab86a013be4a4648b3a422652a3f525829a8981036.wgsl +11 -0
  14. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0725908abf78c022f86deb338a06779f6f1346ebfe54ff5a43ee6b9eeb93c972.wgsl +9 -0
  15. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/078c19606137dad9d459e8041919bac37c31e51702a6d466d4d3df095a6d1f5a.wgsl +21 -0
  16. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0818b2d5166084f4c42b7d514426619af003f77e54291df8f45b72f91dfe5736.wgsl +10 -0
  17. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0835fa80eaadb7c0e6d677e1fc622ad5dcedabb431e5d312f3b7aeb2252a7c7c.wgsl +8 -0
  18. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/08476f486255074c433aee58f82b8ec4150571dc774680f5d8b183a0a7e63e18.wgsl +10 -0
  19. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0888235d9d0cb75cbdb598cbb2d235a2db071bed0dd8193164f8f21eab5a8ba9.wgsl +11 -0
  20. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/09e236dd54b3abd945c2d4fef393e9e9810f0d90cdec0d5deafd68ed3b95083d.wgsl +10 -0
  21. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/09e48926914d3759efd11d83aa3ba539f06f33c6f2c28fcc0c12811f9cd1bc44.wgsl +10 -0
  22. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0a9068c3d7c002ffe2631245f0873bf56d726b5d933b040851e20cd8fad9fe1a.wgsl +10 -0
  23. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0b8815b1efe176d55ab08530c0a9e1913cf6c9ef3e773c574843573d237cf196.wgsl +10 -0
  24. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0d3892883d1532d173a7dbe85d9ab1daa87f0d9b4923a535b8d2003f24f9500c.wgsl +11 -0
  25. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0da9c6227714e2a6c031928cb6a6db229c1cb0a53a9309aea4e833a9b2b1f2f1.wgsl +10 -0
  26. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0e6c14d2118fe801932c1b41995a65c8e165bf8df3989e40793f509448988218.wgsl +13 -0
  27. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0ecd1d59b46e658df21ec09d4256b75bf9a57138f7bfe5e2bcc309a352a37468.wgsl +13 -0
  28. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0f943f386d2f37a8e56b4285b26e1c093c2f2fa2a5ce81cc43c44cc9bb0137f5.wgsl +9 -0
  29. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0fb8222de35c84fb88807d4a3880f21188cf48d64c89a21aa208d7d72a48c273.wgsl +10 -0
  30. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0ff3d9cacb67aa460769fcf57dcfe10c5354e7e98681a4647a9acf1045d60892.wgsl +21 -0
  31. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/11a92e9cba6bfc381c98c5127db137639d6c87f1cb220459880ead039dc81256.wgsl +9 -0
  32. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1326034f3abab37629cd88f869d1b0bafcde724f85c07904b54feaaf71d89c62.wgsl +44 -0
  33. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/13dc73935b9b3b978232043e13babee3877bd53ca572be440de0590dacce8b17.wgsl +9 -0
  34. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1545025e0a625ccc73b42ae112c6f9d78a1504c10b759979ae2247984f25f056.wgsl +11 -0
  35. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1608c6cf00b5863ad002f089be58fce76cff2c61fd43e3bb54ba90add6f41b02.wgsl +11 -0
  36. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/16757bdfacc94a92cfc58c9a3ba83ca377b8ea7ddf82fa8f6611f797a6934f14.wgsl +13 -0
  37. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/16de135b328f53749dc017ed0a624ea63f39df86947f72a0d5d4aa06bedeadd1.wgsl +10 -0
  38. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/17d9b9ec53d19b9ce8e3e750fd7beeb668dbc872a19e0ab5d29e566d84490e74.wgsl +21 -0
  39. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/17ec6bdaf98edf7657b74a25036c2bec806ecbb4280f33fff6afd2e0de5ed377.wgsl +9 -0
  40. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/18b1cef2bae996f56664d9215180e3bfc77b4e514db52fdf9b6c58be51b53edb.wgsl +9 -0
  41. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/19564c145248f065669be23f5daeeda96e025ee4389bef80983001e83fddb31d.wgsl +11 -0
  42. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1a3351b3225f169402dd4c0b1bfbcc407f8b5fdccfb10c74ccb80b7c3bd85a37.wgsl +13 -0
  43. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1c7201caab74d50198d8bc7168ba7da0c97ece74a5ebdd791f88d6cfb5086975.wgsl +9 -0
  44. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1cb76debd822c58d652ea0e82d2f5bdebc3dd67a8cf540154fd85f504fc72cd2.wgsl +10 -0
  45. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1ce543c34cc4033e22afd4fc00a62ed19f44307cc4aeb52e7a503538e5831e9d.wgsl +10 -0
  46. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1df96eddb194a002a44f5a610245f84d192a38d2fff876c30fd55a4f518e8b25.wgsl +11 -0
  47. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1f252e46a7c6dc933462fc88d57b832b6e87ffe79232ad52b4dad28e5083cc69.wgsl +10 -0
  48. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1f821653e02930a221ffe24970bbbd13b88c5e7bd119af97f624b075b1ab6534.wgsl +14 -0
  49. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/222a2645e3e02d0a4063a63ca1b6fa4c89faee6b76905b20de4dd54ab3077ea3.wgsl +9 -0
  50. qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/234987ec68497956ea7aef8e3f44c8a73dbe4c1519165d123946bedbb4d18e26.wgsl +9 -0
.gitattributes CHANGED
@@ -45,3 +45,4 @@ qwen35-08b-fp16-int4-g32-gptq-home/graph.json filter=lfs diff=lfs merge=lfs -tex
45
  qwen35-08b-fp16-int4-g32-gptq-home/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
46
  qwen35-08b-fp16-int4-g8-gptq-up-proj-exclude-l15-candidate/graph.json filter=lfs diff=lfs merge=lfs -text
47
  qwen35-08b-fp16-int4-g8-gptq-up-proj-exclude-l15-candidate/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
 
 
45
  qwen35-08b-fp16-int4-g32-gptq-home/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
46
  qwen35-08b-fp16-int4-g8-gptq-up-proj-exclude-l15-candidate/graph.json filter=lfs diff=lfs merge=lfs -text
47
  qwen35-08b-fp16-int4-g8-gptq-up-proj-exclude-l15-candidate/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
48
+ qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/graph.json filter=lfs diff=lfs merge=lfs -text
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/entrypoints/prefill-4.json ADDED
The diff for this file is too large to render. See raw diff
 
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/graph.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee2e4f0cd06a4ac73213766c544fb6cfca8e2cf39104961bc7469ea3c5c0c6a2
3
+ size 11991700
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/002f3dff1b027a15b1b92e3f04c88efa1ecd7199d6852603412b700547bdc70d.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
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
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 64u;
9
+ if (i >= 64u) { return; }
10
+ out[i] = f32(f32(b0[i]) + (f32(b1[((i / 1u) % 16u) * 1u]) * 1.0));
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/023d7b2d9e71a92f74db0e4583d453118915f46ba0c8c96c796632d958654ea1.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 >= 8u) { return; }
8
+ let x = f32(b0[i]);
9
+ out[i] = f32(inverseSqrt(x));
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/02915a0f22b3245bc6490c9bfbedc331f50293e3e7f87525fe4482f0c94e8aff.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 1536u;
8
+ if (i >= 1536u) { return; }
9
+ out[i] = f16(b0[((i / 1536u) % 1u) * 2048u + ((i / 192u) % 8u) * 256u + ((i / 192u) % 1u) * 256u + (((i / 1u) % 192u) * 1u + 64u) * 1u]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/02b89cf7780686b8cf46c4db784144cef988e047230cf92ecd1e25e45cabd224.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
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] = f16(f32(b0[i]) * 0.0625);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/035979e9647fb0752d2135ad95461bae23933ee3fc591c65963104942287d12f.wgsl ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ var<workgroup> tile_a: array<f32, 64>;
7
+ var<workgroup> tile_b: array<f32, 64>;
8
+ @compute @workgroup_size(8, 8)
9
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
10
+ let row = group.y * 8u + local.y;
11
+ let col = group.x * 8u + local.x;
12
+ let i = (group.z * 4u + row) * 2048u + col;
13
+ var acc = 0.0;
14
+ for (var tile = 0u; tile < 6144u; tile += 8u) {
15
+ tile_a[local.y * 8u + local.x] = 0.0;
16
+ tile_b[local.x * 8u + local.y] = 0.0;
17
+ if (row < 4u && tile + local.x < 6144u) { tile_a[local.y * 8u + local.x] = f32(b0[(group.z * 4u + row) * 6144u + tile + local.x]); }
18
+ if (group.x * 8u + local.y < 2048u && tile + local.x < 6144u) { tile_b[local.x * 8u + local.y] = f32(b1[(group.x * 8u + local.y) * 6144u + tile + local.x]); }
19
+ workgroupBarrier();
20
+ for (var p = 0u; p < 8u; p++) { acc += tile_a[local.y * 8u + p] * tile_b[p * 8u + local.x]; }
21
+ workgroupBarrier();
22
+ }
23
+ if (row < 4u && col < 2048u) { out[i] = f16(acc + 0.0); }
24
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/037256742da99812bfb6619450f2af103bf17e3d38333c9d309f07aba3a3ae20.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 49152u;
8
+ if (i >= 49152u) { return; }
9
+ let x = f32(b0[i]);
10
+ out[i] = f16(x / (1.0 + exp(-x)));
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/03d3272d16bc278fcc977e95fcb512bac183f503c7d6ced229f9f01f8e5011bf.wgsl ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 8192u;
9
+ if (i >= 8192u) { return; }
10
+ let token = i32(b0[i / 2048u]);
11
+ if (token < 0 || token >= 32768) { out[i] = f16(0.0); return; }
12
+ out[i] = f16(b1[u32(token - 0) * 2048u + i % 2048u]);
13
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/044fcdf70bcfbb2e3fa472f622959964b1e5929797fcd65fa2eab7016910ee34.wgsl ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
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 * 18944u;
10
+ if (i >= 18944u) { return; }
11
+ let lane = local.x;
12
+ var acc = 0.0;
13
+ for (var p = lane; p < 2048u; p += 64u) { acc += f32(b0[(i / 18944u) * 2048u + p]) * f32(b1[(i % 18944u) * 2048u + 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] = f16(partial[0] + 0.0); }
21
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/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-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/05a8da37281cc1281b5928ab86a013be4a4648b3a422652a3f525829a8981036.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 >= 32u) { return; }
8
+ var acc = 0.0;
9
+ for (var j = 0u; j < 256u; j++) { acc += f32(b0[(((i / 32u) % 1u) * 8192u + ((i / 8u) % 4u) * 2048u + ((i / 1u) % 8u) * 256u) + (((j / 1u) % 256u) * 1u)]); }
10
+ out[i] = f32(acc / 256.0);
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0725908abf78c022f86deb338a06779f6f1346ebfe54ff5a43ee6b9eeb93c972.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 >= 44u) { return; }
8
+ out[i] = f32(b0[i]);
9
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/078c19606137dad9d459e8041919bac37c31e51702a6d466d4d3df095a6d1f5a.wgsl ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
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 * 32768u;
10
+ if (i >= 32768u) { return; }
11
+ let lane = local.x;
12
+ var acc = 0.0;
13
+ for (var p = lane; p < 2048u; p += 64u) { acc += f32(b0[(i / 32768u) * 2048u + p]) * f32(b1[(i % 32768u) * 2048u + 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] = f16(partial[0] + 0.0); }
21
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0818b2d5166084f4c42b7d514426619af003f77e54291df8f45b72f91dfe5736.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 256u;
8
+ if (i >= 256u) { return; }
9
+ out[i] = f16(b0[((i / 256u) % 1u) * 512u + ((i / 128u) % 2u) * 256u + ((i / 32u) % 4u) * 64u + (((i / 1u) % 32u) * 1u + 32u) * 1u]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/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-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/08476f486255074c433aee58f82b8ec4150571dc774680f5d8b183a0a7e63e18.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 8192u;
8
+ if (i >= 8192u) { return; }
9
+ out[i] = f16(b0[((i / 8192u) % 1u) * 24576u + ((i / 2048u) % 4u) * 6144u + (((i / 1u) % 2048u) * 1u + 2048u) * 1u]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0888235d9d0cb75cbdb598cbb2d235a2db071bed0dd8193164f8f21eab5a8ba9.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 32768u;
9
+ if (i >= 32768u) { return; }
10
+ out[i] = f16(f32(b0[i]) + (f32(b1[((i / 1u) % 4096u) * 1u]) * 1.0));
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/09e236dd54b3abd945c2d4fef393e9e9810f0d90cdec0d5deafd68ed3b95083d.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 * 512u;
8
+ if (i >= 512u) { return; }
9
+ out[i] = f32(f32(b0[i]) * f32(b1[((i / 256u) % 2u) * 1u]));
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/09e48926914d3759efd11d83aa3ba539f06f33c6f2c28fcc0c12811f9cd1bc44.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 4096u;
8
+ if (i >= 4096u) { return; }
9
+ out[i] = f16(b0[i]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0a9068c3d7c002ffe2631245f0873bf56d726b5d933b040851e20cd8fad9fe1a.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 4194240u;
8
+ if (i >= 8388608u) { return; }
9
+ out[i] = f16(b0[((i / 4194304u) % 2u) * 1048576u + ((i / 256u) % 4096u) * 256u + ((i / 1u) % 256u) * 1u]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0b8815b1efe176d55ab08530c0a9e1913cf6c9ef3e773c574843573d237cf196.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(sin(x));
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0d3892883d1532d173a7dbe85d9ab1daa87f0d9b4923a535b8d2003f24f9500c.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 * 256u;
7
+ if (i >= 256u) { return; }
8
+ let coord = (i / 1u) % 64u;
9
+ if (coord >= 0u && coord < 32u) { out[i] = f32(b0[(i / 64u) * 32u + (coord - 0u) * 1u + i % 1u]); }
10
+ if (coord >= 32u && coord < 64u) { out[i] = f32(b0[(i / 64u) * 32u + (coord - 32u) * 1u + i % 1u]); }
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0da9c6227714e2a6c031928cb6a6db229c1cb0a53a9309aea4e833a9b2b1f2f1.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
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 >= 64u) { return; }
9
+ out[i] = f16(b0[((i / 64u) % 1u) * 128u + ((i / 32u) % 2u) * 64u + ((i / 32u) % 1u) * 64u + (((i / 1u) % 32u) * 1u + 0u) * 1u]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0e6c14d2118fe801932c1b41995a65c8e165bf8df3989e40793f509448988218.wgsl ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 2048u;
9
+ if (i >= 2048u) { return; }
10
+ let coord = (i / 1u) % 256u;
11
+ if (coord >= 0u && coord < 64u) { out[i] = f16(b0[(i / 256u) * 64u + (coord - 0u) * 1u + i % 1u]); }
12
+ if (coord >= 64u && coord < 256u) { out[i] = f16(b1[(i / 256u) * 192u + (coord - 64u) * 1u + i % 1u]); }
13
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0ecd1d59b46e658df21ec09d4256b75bf9a57138f7bfe5e2bcc309a352a37468.wgsl ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 8192u;
9
+ if (i >= 8192u) { return; }
10
+ let token = i32(b0[i / 2048u]);
11
+ if (token < 131072 || token >= 163840) { out[i] = f16(0.0); return; }
12
+ out[i] = f16(b1[u32(token - 131072) * 2048u + i % 2048u]);
13
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0f943f386d2f37a8e56b4285b26e1c093c2f2fa2a5ce81cc43c44cc9bb0137f5.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 * 384u;
7
+ if (i >= 384u) { return; }
8
+ out[i] = f32(b0[((i / 128u) % 3u) * 128u + ((i / 128u) % 1u) * 128u + ((i / 32u) % 4u) * 1u + ((i / 1u) % 32u) * 4u]);
9
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0fb8222de35c84fb88807d4a3880f21188cf48d64c89a21aa208d7d72a48c273.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f32>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
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 >= 64u) { return; }
9
+ out[i] = f16(b0[i]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/0ff3d9cacb67aa460769fcf57dcfe10c5354e7e98681a4647a9acf1045d60892.wgsl ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
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 * 2048u;
10
+ if (i >= 2048u) { return; }
11
+ let lane = local.x;
12
+ var acc = 0.0;
13
+ for (var p = lane; p < 6144u; p += 64u) { acc += f32(b0[(i / 2048u) * 6144u + p]) * f32(b1[(i % 2048u) * 6144u + 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] = f16(partial[0] + 0.0); }
21
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/11a92e9cba6bfc381c98c5127db137639d6c87f1cb220459880ead039dc81256.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<i32>;
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 >= 12u) { return; }
8
+ out[i] = i32(b0[(((i / 4u) % 3u) * 1u + 1u) * 4u + ((i / 4u) % 1u) * 4u + ((i / 1u) % 4u) * 1u]);
9
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1326034f3abab37629cd88f869d1b0bafcde724f85c07904b54feaaf71d89c62.wgsl ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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> b2: array<f32>;
4
+ @group(0) @binding(3) var<storage, read> b3: array<f32>;
5
+ @group(0) @binding(4) var<storage, read> b4: array<f32>;
6
+ @group(0) @binding(5) var<storage, read> b5: array<f32>;
7
+ @group(0) @binding(6) var<storage, read_write> out: array<f32>;
8
+
9
+ var<workgroup> partial: array<f32, 128>;
10
+ var<workgroup> delta: f32;
11
+ @compute @workgroup_size(128)
12
+ fn main(@builtin(workgroup_id) group: vec3<u32>, @builtin(local_invocation_id) local: vec3<u32>) {
13
+ let column = group.x;
14
+ let head = group.y;
15
+ let batch_index = group.z;
16
+ let lane = local.x;
17
+ var recurrent = 0.0;
18
+ if (lane < 128u) { recurrent = f32(b5[((batch_index * 16u + head) * 128u + lane) * 128u + column]); }
19
+ for (var token = 0u; token < 4u; token++) {
20
+ recurrent *= exp(f32(b3[(batch_index * 4u + token) * 16u + head]));
21
+ partial[lane] = 0.0;
22
+ if (lane < 128u) { partial[lane] = recurrent * f32(b1[((batch_index * 4u + token) * 16u + head) * 128u + lane]); }
23
+ workgroupBarrier();
24
+ for (var stride = 64u; stride > 0u; stride /= 2u) {
25
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
26
+ workgroupBarrier();
27
+ }
28
+ if (lane == 0u) { delta = (f32(b2[((batch_index * 4u + token) * 16u + head) * 128u + column]) - partial[0]) * f32(b4[(batch_index * 4u + token) * 16u + head]); }
29
+ workgroupBarrier();
30
+ if (lane < 128u) { recurrent += f32(b1[((batch_index * 4u + token) * 16u + head) * 128u + lane]) * delta; }
31
+ partial[lane] = 0.0;
32
+ if (lane < 128u) {
33
+ partial[lane] = recurrent * f32(b0[((batch_index * 4u + token) * 16u + head) * 128u + lane]) * 0.08838834764831845;
34
+ }
35
+ workgroupBarrier();
36
+ for (var stride = 64u; stride > 0u; stride /= 2u) {
37
+ if (lane < stride) { partial[lane] += partial[lane + stride]; }
38
+ workgroupBarrier();
39
+ }
40
+ if (lane == 0u) { out[((batch_index * 16u + head) * 132u + 128u + token) * 128u + column] = f32(partial[0]); }
41
+ workgroupBarrier();
42
+ }
43
+ if (lane < 128u) { out[((batch_index * 16u + head) * 132u + lane) * 128u + column] = f32(recurrent); }
44
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/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-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1545025e0a625ccc73b42ae112c6f9d78a1504c10b759979ae2247984f25f056.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 >= 128u) { return; }
9
+ let coord = (i / 1u) % 32u;
10
+ if (coord >= 1u && coord < 34u && (coord - 1u) % 3u == 0u) { out[i] = f32(b0[((i / 128u) % 1u) * 44u + ((i / 32u) % 4u) * 11u + ((((i / 1u) % 32u) - 1u) / 3u) * 1u]); } else { out[i] = f32(b1[i]); }
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1608c6cf00b5863ad002f089be58fce76cff2c61fd43e3bb54ba90add6f41b02.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
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 >= 64u) { return; }
9
+ let x = f32(b0[i]);
10
+ out[i] = f16(-x);
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/16757bdfacc94a92cfc58c9a3ba83ca377b8ea7ddf82fa8f6611f797a6934f14.wgsl ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 8192u;
9
+ if (i >= 8192u) { return; }
10
+ let token = i32(b0[i / 2048u]);
11
+ if (token < 32768 || token >= 65536) { out[i] = f16(0.0); return; }
12
+ out[i] = f16(b1[u32(token - 32768) * 2048u + i % 2048u]);
13
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/16de135b328f53749dc017ed0a624ea63f39df86947f72a0d5d4aa06bedeadd1.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 256u;
8
+ if (i >= 256u) { return; }
9
+ out[i] = f16(b0[i]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/17d9b9ec53d19b9ce8e3e750fd7beeb668dbc872a19e0ab5d29e566d84490e74.wgsl ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
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 * 2048u;
10
+ if (i >= 2048u) { return; }
11
+ let lane = local.x;
12
+ var acc = 0.0;
13
+ for (var p = lane; p < 2048u; p += 64u) { acc += f32(b0[(i / 2048u) * 2048u + p]) * f32(b1[(i % 2048u) * 2048u + 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] = f16(partial[0] + 0.0); }
21
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/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-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/18b1cef2bae996f56664d9215180e3bfc77b4e514db52fdf9b6c58be51b53edb.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 >= 44u) { return; }
8
+ out[i] = f32(b0[((i / 44u) % 1u) * 128u + ((i / 11u) % 4u) * 32u + (((i / 1u) % 11u) * 3u + 1u) * 1u]);
9
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/19564c145248f065669be23f5daeeda96e025ee4389bef80983001e83fddb31d.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 >= 64u) { 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-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1a3351b3225f169402dd4c0b1bfbcc407f8b5fdccfb10c74ccb80b7c3bd85a37.wgsl ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<i32>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<f16>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 2048u;
9
+ if (i >= 2048u) { return; }
10
+ let token = i32(b0[i / 2048u]);
11
+ if (token < 196608 || token >= 229376) { out[i] = f16(0.0); return; }
12
+ out[i] = f16(b1[u32(token - 196608) * 2048u + i % 2048u]);
13
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1c7201caab74d50198d8bc7168ba7da0c97ece74a5ebdd791f88d6cfb5086975.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 >= 8u) { return; }
8
+ out[i] = f32(f32(b0[i]) + (1e-06 * 1.0));
9
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1cb76debd822c58d652ea0e82d2f5bdebc3dd67a8cf540154fd85f504fc72cd2.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 8192u;
8
+ if (i >= 8192u) { return; }
9
+ out[i] = f16(b0[((i / 8192u) % 1u) * 8192u + ((i / 2048u) % 4u) * 256u + ((i / 256u) % 8u) * 1024u + ((i / 1u) % 256u) * 1u]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1ce543c34cc4033e22afd4fc00a62ed19f44307cc4aeb52e7a503538e5831e9d.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 16384u;
8
+ if (i >= 16384u) { return; }
9
+ out[i] = f16(b0[i]);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1df96eddb194a002a44f5a610245f84d192a38d2fff876c30fd55a4f518e8b25.wgsl ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
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
+ let x = f32(b0[i]);
10
+ out[i] = f16(-x);
11
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1f252e46a7c6dc933462fc88d57b832b6e87ffe79232ad52b4dad28e5083cc69.wgsl ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read_write> out: array<f16>;
4
+
5
+ @compute @workgroup_size(64)
6
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
7
+ let i = gid.x + gid.y * 131072u;
8
+ if (i >= 131072u) { return; }
9
+ out[i] = f16(f32(b0[i]) * 0.0625);
10
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/kernels/1f821653e02930a221ffe24970bbbd13b88c5e7bd119af97f624b075b1ab6534.wgsl ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ enable f16;
2
+ @group(0) @binding(0) var<storage, read> b0: array<f16>;
3
+ @group(0) @binding(1) var<storage, read> b1: array<i32>;
4
+ @group(0) @binding(2) var<storage, read_write> out: array<f16>;
5
+
6
+ @compute @workgroup_size(64)
7
+ fn main(@builtin(global_invocation_id) gid: vec3<u32>) {
8
+ let i = gid.x + gid.y * 2048u;
9
+ if (i >= 2048u) { return; }
10
+ let token = (i / 256u) % 4u;
11
+ let outer = i / 1024u;
12
+ let destination = outer * 1048576u + u32(b1[token]) * 256u + i % 256u;
13
+ out[((destination) / 256u) % 4096u * 512u + ((destination) / 1048576u) % 2u * 256u + ((destination) / 1u) % 256u * 1u] = f16(b0[i]);
14
+ }
qwen35-2b-fp16-int4-g8-gptq-up-proj-candidate/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-2b-fp16-int4-g8-gptq-up-proj-candidate/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
+ }