@genai-fi/nanogpt 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/Generator.js +13 -9
  2. package/dist/NanoGPTModel.js +10 -10
  3. package/dist/{RealDiv-C4hOvYOZ.js → RealDiv-Dy0p8Bvo.js} +11 -11
  4. package/dist/{Reshape-BLijOA8h.js → Reshape-DH5srBP0.js} +2 -2
  5. package/dist/Reshape-DvudQDvJ.js +30 -0
  6. package/dist/TeachableLLM.js +9 -5
  7. package/dist/{TiedEmbedding-BLltddza.js → TiedEmbedding-BxOerUmB.js} +4 -4
  8. package/dist/{axis_util-DaAl5MER.js → axis_util-BzbKo31C.js} +1 -1
  9. package/dist/backend.js +2 -2
  10. package/dist/{backend_util-DWiwsi2N.js → backend_util-TE7aTPhZ.js} +40 -40
  11. package/dist/{broadcast_to-C4v-j9yA.js → broadcast_to-CdbwV-Dj.js} +2 -2
  12. package/dist/{concat-CsHeR4zV.js → concat-CsxrgovM.js} +1 -1
  13. package/dist/{dataset-JDyjG3QR.js → dataset-CtdBYwjo.js} +7 -7
  14. package/dist/{dropout-hpDwECTe.js → dropout-DYs5QFGQ.js} +11 -11
  15. package/dist/{gather-D0_gPiBz.js → gather-CMMy2KEG.js} +4 -4
  16. package/dist/{gelu-uyHP1x1f.js → gelu-C-dPj6Ku.js} +1 -1
  17. package/dist/{gpgpu_math-DJm3ZTAf.js → gpgpu_math-DGNLNL4I.js} +2 -2
  18. package/dist/{index-C0dhsYom.js → index-BoWRt-10.js} +126 -126
  19. package/dist/{index-BPPzKVdR.js → index-CLthM0TO.js} +1083 -1106
  20. package/dist/{kernel_funcs_utils-CwRTFqrc.js → kernel_funcs_utils-BYKWV8Aa.js} +3 -3
  21. package/dist/layers/BaseLayer.js +2 -2
  22. package/dist/layers/CausalSelfAttention.js +8 -8
  23. package/dist/layers/MLP.js +5 -5
  24. package/dist/layers/RMSNorm.js +3 -3
  25. package/dist/layers/RoPECache.js +4 -4
  26. package/dist/layers/TiedEmbedding.js +5 -5
  27. package/dist/layers/TransformerBlock.js +1 -1
  28. package/dist/loader/loadTransformers.js +1 -1
  29. package/dist/loader/oldZipLoad.js +11 -7
  30. package/dist/{log_sum_exp-D086OgZJ.js → log_sum_exp-DbjkV734.js} +8 -8
  31. package/dist/main.d.ts +11 -0
  32. package/dist/main.js +44 -27
  33. package/dist/{mat_mul-1nwdPkQ_.js → mat_mul-8m8pfdcx.js} +1 -1
  34. package/dist/{max-BQc2Aj-I.js → max-Ddnnb5xe.js} +3 -3
  35. package/dist/{mulmat_packed_gpu-Gzf3I9UV.js → mulmat_packed_gpu-VSekgsNv.js} +1 -1
  36. package/dist/{ones-D63HpSF_.js → ones-Dj0SDhHf.js} +2 -2
  37. package/dist/ops/adamAdjust.d.ts +2 -0
  38. package/dist/ops/adamAdjust.js +9 -0
  39. package/dist/ops/adamMoments.d.ts +2 -0
  40. package/dist/ops/adamMoments.js +9 -0
  41. package/dist/ops/appendCache.js +3 -3
  42. package/dist/ops/attentionMask.js +1 -1
  43. package/dist/ops/cpu/adamAdjust.d.ts +1 -0
  44. package/dist/ops/cpu/adamAdjust.js +18 -0
  45. package/dist/ops/cpu/adamMoments.d.ts +1 -0
  46. package/dist/ops/cpu/adamMoments.js +16 -0
  47. package/dist/ops/cpu/appendCache.js +2 -2
  48. package/dist/ops/cpu/attentionMask.js +5 -5
  49. package/dist/ops/cpu/fusedSoftmax.js +2 -2
  50. package/dist/ops/cpu/gatherSub.js +3 -3
  51. package/dist/ops/cpu/gelu.js +1 -1
  52. package/dist/ops/cpu/matMulGelu.js +2 -2
  53. package/dist/ops/cpu/matMulMul.js +1 -1
  54. package/dist/ops/cpu/mulDropout.js +1 -1
  55. package/dist/ops/cpu/normRMS.js +1 -1
  56. package/dist/ops/cpu/qkv.js +3 -3
  57. package/dist/ops/cpu/rope.js +5 -5
  58. package/dist/ops/cpu/scatterSub.js +11 -11
  59. package/dist/ops/fusedSoftmax.js +1 -1
  60. package/dist/ops/gatherSub.js +1 -1
  61. package/dist/ops/gelu.js +2 -2
  62. package/dist/ops/grads/attentionMask.js +1 -1
  63. package/dist/ops/grads/fusedSoftmax.js +2 -2
  64. package/dist/ops/grads/gelu.js +2 -2
  65. package/dist/ops/grads/matMulGelu.js +1 -1
  66. package/dist/ops/grads/normRMS.js +1 -1
  67. package/dist/ops/grads/qkv.js +1 -1
  68. package/dist/ops/grads/rope.js +1 -1
  69. package/dist/ops/matMulGelu.js +1 -1
  70. package/dist/ops/matMulMul.js +1 -1
  71. package/dist/ops/mulDrop.js +1 -1
  72. package/dist/ops/normRMS.js +1 -1
  73. package/dist/ops/qkv.js +1 -1
  74. package/dist/ops/rope.js +4 -4
  75. package/dist/ops/scatterSub.js +1 -1
  76. package/dist/ops/webgl/adamAdjust.d.ts +1 -0
  77. package/dist/ops/webgl/adamAdjust.js +50 -0
  78. package/dist/ops/webgl/adamMoments.d.ts +1 -0
  79. package/dist/ops/webgl/adamMoments.js +40 -0
  80. package/dist/ops/webgl/appendCache.js +1 -1
  81. package/dist/ops/webgl/attentionMask.js +1 -1
  82. package/dist/ops/webgl/fusedSoftmax.js +4 -4
  83. package/dist/ops/webgl/gatherSub.js +8 -8
  84. package/dist/ops/webgl/gelu.js +2 -2
  85. package/dist/ops/webgl/log.js +3 -3
  86. package/dist/ops/webgl/matMulGelu.js +4 -4
  87. package/dist/ops/webgl/matMulMul.js +1 -1
  88. package/dist/ops/webgl/mulDropout.js +1 -1
  89. package/dist/ops/webgl/normRMS.js +2 -2
  90. package/dist/ops/webgl/qkv.js +1 -1
  91. package/dist/ops/webgl/rope.js +1 -1
  92. package/dist/ops/webgl/scatterSub.js +1 -1
  93. package/dist/ops/webgpu/adamAdjust.d.ts +1 -0
  94. package/dist/ops/webgpu/adamAdjust.js +54 -0
  95. package/dist/ops/webgpu/adamMoments.d.ts +1 -0
  96. package/dist/ops/webgpu/adamMoments.js +58 -0
  97. package/dist/ops/webgpu/appendCache.js +22 -18
  98. package/dist/ops/webgpu/attentionMask.js +24 -17
  99. package/dist/ops/webgpu/gatherSub.js +17 -15
  100. package/dist/ops/webgpu/gelu.js +7 -6
  101. package/dist/ops/webgpu/index.js +3 -0
  102. package/dist/ops/webgpu/normRMS.js +35 -101
  103. package/dist/ops/webgpu/normRMSGrad.d.ts +1 -0
  104. package/dist/ops/webgpu/normRMSGrad.js +133 -0
  105. package/dist/ops/webgpu/qkv.js +21 -16
  106. package/dist/ops/webgpu/rope.js +37 -23
  107. package/dist/ops/webgpu/scatterSub.js +16 -13
  108. package/dist/ops/webgpu/utils/reductions.d.ts +9 -0
  109. package/dist/ops/webgpu/utils/reductions.js +68 -0
  110. package/dist/{ops-CIQLNshk.js → ops-BFGCx8Ri.js} +195 -219
  111. package/dist/{random_width-DkYP8W8N.js → random_width-sZORGo5k.js} +22 -21
  112. package/dist/{range-CYzpQY53.js → range-CRuAh-gd.js} +1 -1
  113. package/dist/{reciprocal-_A9yv27J.js → reciprocal-BvGAyKyu.js} +1 -1
  114. package/dist/{register_all_kernels-guvSxp7M.js → register_all_kernels-BwDSRN-f.js} +30 -29
  115. package/dist/{reshape-BMUzc1UY.js → reshape-CdBq1WJ6.js} +3 -3
  116. package/dist/{scatter_nd_util-IRBqKz_b.js → scatter_nd_util-DUstGbU1.js} +1 -1
  117. package/dist/{selu_util-Dt_iuXaq.js → selu_util-BJEXVvjX.js} +41 -41
  118. package/dist/{shared-CDu9S76h.js → shared-B8ztnyEk.js} +6 -6
  119. package/dist/{shared-BNa2q6jD.js → shared-wS99K7_n.js} +1 -1
  120. package/dist/{sin-Cocju-BY.js → sin-BeA3tsEd.js} +6 -6
  121. package/dist/slice-BiOsknYS.js +28 -0
  122. package/dist/{softmax-GPNK3o-U.js → softmax-Bv_6lyMX.js} +3 -3
  123. package/dist/{split-CHzJjxDv.js → split-B-dikLRw.js} +1 -1
  124. package/dist/{stack-Dpgg_1W1.js → stack-B17UN2nn.js} +1 -1
  125. package/dist/{sum-B8wEpKsg.js → sum-66ew2byf.js} +3 -3
  126. package/dist/{tensor-RvZVNmg0.js → tensor-JwS7ZYY6.js} +1 -1
  127. package/dist/{tensor2d-B_kyod7_.js → tensor2d-wxPAnDQy.js} +1 -1
  128. package/dist/training/Adam.d.ts +22 -0
  129. package/dist/training/Adam.js +93 -0
  130. package/dist/training/AdamExt.d.ts +1 -1
  131. package/dist/training/AdamExt.js +13 -12
  132. package/dist/training/DatasetBuilder.js +35 -32
  133. package/dist/training/FullTrainer.js +22 -22
  134. package/dist/training/Trainer.d.ts +1 -1
  135. package/dist/training/Trainer.js +32 -32
  136. package/dist/training/sparseCrossEntropy.d.ts +0 -4
  137. package/dist/training/sparseCrossEntropy.js +7 -7
  138. package/dist/utilities/arrayClose.d.ts +1 -0
  139. package/dist/utilities/arrayClose.js +11 -0
  140. package/dist/utilities/dummy.js +2 -2
  141. package/dist/utilities/generate.js +3 -3
  142. package/dist/utilities/multinomialCPU.js +2 -2
  143. package/dist/utilities/performance.d.ts +1 -1
  144. package/dist/utilities/performance.js +11 -11
  145. package/dist/utilities/profile.js +1 -1
  146. package/dist/utilities/safetensors.js +2 -2
  147. package/dist/utilities/weights.js +2 -2
  148. package/dist/{variable-DXEUOwew.js → variable-BuddVFLa.js} +1 -1
  149. package/dist/{webgpu_util-g13LvDIv.js → webgpu_program-PFzf1hAQ.js} +138 -215
  150. package/dist/webgpu_util-D____QpY.js +80 -0
  151. package/dist/{zeros-DCPCdFGq.js → zeros--BdLQ3oG.js} +4 -4
  152. package/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ import { p as l, j as d } from "../../../index-BoWRt-10.js";
2
+ import { g as p } from "../../../webgpu_program-PFzf1hAQ.js";
3
+ import { r as f } from "../../../Reshape-DvudQDvJ.js";
4
+ import { c as x } from "../../../axis_util-BzbKo31C.js";
5
+ function I(e, r, t, s, u) {
6
+ return `
7
+ fn DIV_CEIL(a : u32, b : u32) -> u32 {
8
+ return ((a - 1u) / b + 1u);
9
+ }
10
+
11
+ ${`
12
+ var<workgroup> xBestValues : array<f32, ${e}>;
13
+ `}
14
+
15
+ ${p("index")} {
16
+ let outputIndex = index / ${e};
17
+ let offset = outputIndex * uniforms.reduceSize;
18
+ var bestValue = 0.0;
19
+ let Length = uniforms.reduceSize;
20
+
21
+ for (var k = i32(localId.x); k < Length;
22
+ k = k + ${e}) {
23
+ var candidate = f32(x[offset + k]);
24
+ ${t}
25
+ bestValue = bestValue + candidate;
26
+ }
27
+ xBestValues[localId.x] = bestValue;
28
+ workgroupBarrier();
29
+
30
+ var reduceSize = min(u32(Length), ${e}u);
31
+ for (var currentSize = reduceSize / 2u; reduceSize > 1u;
32
+ currentSize = reduceSize / 2u) {
33
+ let interval = DIV_CEIL(reduceSize, 2u);
34
+ if (localId.x < currentSize) {
35
+ let candidate = xBestValues[localId.x + interval];
36
+ bestValue = bestValue + candidate;
37
+ xBestValues[localId.x] = bestValue;
38
+ }
39
+ reduceSize = interval;
40
+ workgroupBarrier();
41
+ }
42
+
43
+ bestValue = xBestValues[0] ${r === "mean" ? "/ f32(uniforms.reduceSize)" : ""};
44
+
45
+ ${s}
46
+
47
+ for (var k = i32(localId.x); k < Length;
48
+ k = k + ${e}) {
49
+ ${u}
50
+ }
51
+ }
52
+ `;
53
+ }
54
+ function V(e, r) {
55
+ const t = e[0], u = l(r, t.shape), [, n] = x(t.shape, u), a = d(n), i = d(t.shape) / a;
56
+ return { windowSize: a, inSize: a, batchSize: i, outSize: 1 };
57
+ }
58
+ function $(e, r, t) {
59
+ const s = [], u = r[0], a = [{ type: "int32", data: [e.inputShape[1]] }], o = t.runWebGPUProgram(e, r, "float32", a);
60
+ s.push(o);
61
+ const i = f({ inputs: { x: o }, attrs: { shape: u.shape }, backend: t });
62
+ return s.forEach((c) => t.disposeData(c.dataId)), i;
63
+ }
64
+ export {
65
+ V as createReduceInfo,
66
+ I as createReductionShader,
67
+ $ as reduce
68
+ };