@genai-fi/nanogpt 0.19.0 → 0.20.0

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 (482) hide show
  1. package/package.json +9 -10
  2. package/dist/Generator.d.ts +0 -82
  3. package/dist/Generator.js +0 -11941
  4. package/dist/RealDiv-CGwv0liw.js +0 -365
  5. package/dist/Reshape-BW__R4mZ.js +0 -79
  6. package/dist/Reshape-CPBkTIH2.js +0 -14
  7. package/dist/TeachableLLM.d.ts +0 -70
  8. package/dist/TeachableLLM.js +0 -273
  9. package/dist/Trainer.d.ts +0 -43
  10. package/dist/Trainer.js +0 -244
  11. package/dist/_commonjsHelpers-ByX85dGu.js +0 -33
  12. package/dist/axis_util-GTVlo58H.js +0 -55
  13. package/dist/backend.d.ts +0 -2
  14. package/dist/backend.js +0 -13
  15. package/dist/backend_util-GaFarB78.js +0 -425
  16. package/dist/backend_webgpu-BqASlsbV.js +0 -545
  17. package/dist/binary_op_util-pKXltfxI.js +0 -192
  18. package/dist/broadcast_to-eS93CCN_.js +0 -28
  19. package/dist/checks/appendCache.d.ts +0 -1
  20. package/dist/checks/appendCache.js +0 -22
  21. package/dist/checks/attentionMask.d.ts +0 -1
  22. package/dist/checks/attentionMask.js +0 -37
  23. package/dist/checks/check.d.ts +0 -9
  24. package/dist/checks/check.js +0 -20
  25. package/dist/checks/gelu.d.ts +0 -1
  26. package/dist/checks/gelu.js +0 -18
  27. package/dist/checks/index.d.ts +0 -26
  28. package/dist/checks/index.js +0 -28
  29. package/dist/checks/matMulGelu.d.ts +0 -1
  30. package/dist/checks/matMulGelu.js +0 -28
  31. package/dist/checks/normRMS.d.ts +0 -1
  32. package/dist/checks/normRMS.js +0 -16
  33. package/dist/checks/normRMSGrad.d.ts +0 -1
  34. package/dist/checks/normRMSGrad.js +0 -12
  35. package/dist/checks/packUnpack.d.ts +0 -1
  36. package/dist/checks/packUnpack.js +0 -18
  37. package/dist/checks/qkv.d.ts +0 -1
  38. package/dist/checks/qkv.js +0 -34
  39. package/dist/checks/rope.d.ts +0 -1
  40. package/dist/checks/rope.js +0 -36
  41. package/dist/checks/weights.d.ts +0 -14
  42. package/dist/checks/weights.js +0 -31
  43. package/dist/clip_by_value-DDA7rrcT.js +0 -12
  44. package/dist/complex-DI35Q-gW.js +0 -11
  45. package/dist/complex_util-Yc1A_gV1.js +0 -55
  46. package/dist/concat-CAQpCret.js +0 -17
  47. package/dist/concat_util-D18dJ4fD.js +0 -22
  48. package/dist/data/docx.d.ts +0 -2
  49. package/dist/data/docx.js +0 -15
  50. package/dist/data/parquet.d.ts +0 -2
  51. package/dist/data/parquet.js +0 -17
  52. package/dist/data/pdf.d.ts +0 -2
  53. package/dist/data/pdf.js +0 -14
  54. package/dist/data/textLoader.d.ts +0 -7
  55. package/dist/data/textLoader.js +0 -108
  56. package/dist/dataset-CGGp1z9P.js +0 -1124
  57. package/dist/dropout_util--NxWuYg2.js +0 -27
  58. package/dist/expand_dims-Bkd1YD5x.js +0 -11
  59. package/dist/exports_initializers-CYzKLjN7.js +0 -7
  60. package/dist/floor-BQtb-Azg.js +0 -9
  61. package/dist/gather-qIqEqaGn.js +0 -9
  62. package/dist/gelu-B220X1Go.js +0 -26
  63. package/dist/gpgpu_math-BwvV12df.js +0 -2022
  64. package/dist/index-CUXkjxiT.js +0 -3516
  65. package/dist/index-CieiGp4Y.js +0 -349
  66. package/dist/index-CjOWnMXP.js +0 -7308
  67. package/dist/index-Cp39cXWe.js +0 -1016
  68. package/dist/index-D5v913EJ.js +0 -4
  69. package/dist/index-DmeWGGmS.js +0 -1074
  70. package/dist/index-DvYrXKkX.js +0 -113
  71. package/dist/index-Ksja3su6.js +0 -151
  72. package/dist/index-xuotMAFm.js +0 -118
  73. package/dist/inference/types.d.ts +0 -16
  74. package/dist/inference/types.js +0 -1
  75. package/dist/jszip.min-BZhlzntC.js +0 -2313
  76. package/dist/kernel_funcs_utils-pq0CK9co.js +0 -306
  77. package/dist/layers/BaseLayer.d.ts +0 -44
  78. package/dist/layers/BaseLayer.js +0 -74
  79. package/dist/layers/CausalSelfAttention.d.ts +0 -39
  80. package/dist/layers/CausalSelfAttention.js +0 -86
  81. package/dist/layers/LoRA.d.ts +0 -14
  82. package/dist/layers/LoRA.js +0 -58
  83. package/dist/layers/MLP.d.ts +0 -17
  84. package/dist/layers/MLP.js +0 -44
  85. package/dist/layers/PositionEmbedding.d.ts +0 -8
  86. package/dist/layers/PositionEmbedding.js +0 -31
  87. package/dist/layers/RMSNorm.d.ts +0 -12
  88. package/dist/layers/RMSNorm.js +0 -22
  89. package/dist/layers/RoPECache.d.ts +0 -18
  90. package/dist/layers/RoPECache.js +0 -50
  91. package/dist/layers/TiedEmbedding.d.ts +0 -13
  92. package/dist/layers/TiedEmbedding.js +0 -36
  93. package/dist/layers/TransformerBlock.d.ts +0 -27
  94. package/dist/layers/TransformerBlock.js +0 -40
  95. package/dist/layers/WeightStore.d.ts +0 -20
  96. package/dist/layers/WeightStore.js +0 -76
  97. package/dist/loader/load.d.ts +0 -6
  98. package/dist/loader/load.js +0 -68
  99. package/dist/loader/loadHF.d.ts +0 -8
  100. package/dist/loader/loadHF.js +0 -22
  101. package/dist/loader/loadTransformers.d.ts +0 -4
  102. package/dist/loader/loadTransformers.js +0 -44
  103. package/dist/loader/loadZipMeta.d.ts +0 -3
  104. package/dist/loader/loadZipMeta.js +0 -16
  105. package/dist/loader/newZipLoad.d.ts +0 -3
  106. package/dist/loader/newZipLoad.js +0 -31
  107. package/dist/loader/oldZipLoad.d.ts +0 -9
  108. package/dist/loader/oldZipLoad.js +0 -80
  109. package/dist/loader/save.d.ts +0 -16
  110. package/dist/loader/save.js +0 -90
  111. package/dist/loader/types.d.ts +0 -67
  112. package/dist/loader/types.js +0 -1
  113. package/dist/main.d.ts +0 -50
  114. package/dist/main.js +0 -109
  115. package/dist/matMul16-BcVC_E62.js +0 -80
  116. package/dist/matMulGelu-JNLZqKQp.js +0 -163
  117. package/dist/mat_mul-DhG0Newp.js +0 -11
  118. package/dist/mod-CSdCpRjf.js +0 -11
  119. package/dist/models/NanoGPTV1.d.ts +0 -16
  120. package/dist/models/NanoGPTV1.js +0 -99
  121. package/dist/models/NanoGPTV2.d.ts +0 -16
  122. package/dist/models/NanoGPTV2.js +0 -90
  123. package/dist/models/config.d.ts +0 -27
  124. package/dist/models/config.js +0 -50
  125. package/dist/models/factory.d.ts +0 -3
  126. package/dist/models/factory.js +0 -16
  127. package/dist/models/model.d.ts +0 -44
  128. package/dist/models/model.js +0 -134
  129. package/dist/non_max_suppression_impl-B2W7YjZB.js +0 -102
  130. package/dist/not_equal-hurPF26l.js +0 -64
  131. package/dist/ones-BytntneX.js +0 -14
  132. package/dist/ops/adamAdjust.d.ts +0 -2
  133. package/dist/ops/adamAdjust.js +0 -9
  134. package/dist/ops/adamMoments.d.ts +0 -2
  135. package/dist/ops/adamMoments.js +0 -9
  136. package/dist/ops/add16.d.ts +0 -2
  137. package/dist/ops/add16.js +0 -9
  138. package/dist/ops/appendCache.d.ts +0 -2
  139. package/dist/ops/appendCache.js +0 -22
  140. package/dist/ops/attentionMask.d.ts +0 -2
  141. package/dist/ops/attentionMask.js +0 -10
  142. package/dist/ops/concat16.d.ts +0 -2
  143. package/dist/ops/concat16.js +0 -9
  144. package/dist/ops/cpu/adamAdjust.d.ts +0 -1
  145. package/dist/ops/cpu/adamAdjust.js +0 -18
  146. package/dist/ops/cpu/adamMoments.d.ts +0 -1
  147. package/dist/ops/cpu/adamMoments.js +0 -16
  148. package/dist/ops/cpu/appendCache.d.ts +0 -1
  149. package/dist/ops/cpu/appendCache.js +0 -23
  150. package/dist/ops/cpu/attentionMask.d.ts +0 -1
  151. package/dist/ops/cpu/attentionMask.js +0 -22
  152. package/dist/ops/cpu/fusedSoftmax.d.ts +0 -9
  153. package/dist/ops/cpu/fusedSoftmax.js +0 -29
  154. package/dist/ops/cpu/gatherSub.d.ts +0 -1
  155. package/dist/ops/cpu/gatherSub.js +0 -18
  156. package/dist/ops/cpu/gelu.d.ts +0 -1
  157. package/dist/ops/cpu/gelu.js +0 -40
  158. package/dist/ops/cpu/matMul16.d.ts +0 -1
  159. package/dist/ops/cpu/matMul16.js +0 -15
  160. package/dist/ops/cpu/matMulGelu.d.ts +0 -1
  161. package/dist/ops/cpu/matMulGelu.js +0 -53
  162. package/dist/ops/cpu/matMulMul.d.ts +0 -1
  163. package/dist/ops/cpu/matMulMul.js +0 -23
  164. package/dist/ops/cpu/mulDropout.d.ts +0 -1
  165. package/dist/ops/cpu/mulDropout.js +0 -23
  166. package/dist/ops/cpu/normRMS.d.ts +0 -1
  167. package/dist/ops/cpu/normRMS.js +0 -39
  168. package/dist/ops/cpu/qkv.d.ts +0 -5
  169. package/dist/ops/cpu/qkv.js +0 -41
  170. package/dist/ops/cpu/rope.d.ts +0 -6
  171. package/dist/ops/cpu/rope.js +0 -38
  172. package/dist/ops/cpu/scatterSub.d.ts +0 -1
  173. package/dist/ops/cpu/scatterSub.js +0 -23
  174. package/dist/ops/dot16.d.ts +0 -2
  175. package/dist/ops/dot16.js +0 -42
  176. package/dist/ops/dropout.d.ts +0 -2
  177. package/dist/ops/dropout.js +0 -14
  178. package/dist/ops/dropout16.d.ts +0 -2
  179. package/dist/ops/dropout16.js +0 -25
  180. package/dist/ops/gatherSub.d.ts +0 -2
  181. package/dist/ops/gatherSub.js +0 -9
  182. package/dist/ops/gelu.d.ts +0 -3
  183. package/dist/ops/gelu.js +0 -8
  184. package/dist/ops/globalNorm.d.ts +0 -2
  185. package/dist/ops/globalNorm.js +0 -13
  186. package/dist/ops/grads/add16.d.ts +0 -1
  187. package/dist/ops/grads/add16.js +0 -26
  188. package/dist/ops/grads/attentionMask.d.ts +0 -1
  189. package/dist/ops/grads/attentionMask.js +0 -21
  190. package/dist/ops/grads/dropout16.d.ts +0 -1
  191. package/dist/ops/grads/dropout16.js +0 -2
  192. package/dist/ops/grads/gelu.d.ts +0 -2
  193. package/dist/ops/grads/gelu.js +0 -5
  194. package/dist/ops/grads/matMul16.d.ts +0 -2
  195. package/dist/ops/grads/matMul16.js +0 -9
  196. package/dist/ops/grads/matMulGelu.d.ts +0 -1
  197. package/dist/ops/grads/matMulGelu.js +0 -17
  198. package/dist/ops/grads/mul16.d.ts +0 -1
  199. package/dist/ops/grads/mul16.js +0 -4
  200. package/dist/ops/grads/normRMS.d.ts +0 -3
  201. package/dist/ops/grads/normRMS.js +0 -33
  202. package/dist/ops/grads/pack16.d.ts +0 -2
  203. package/dist/ops/grads/pack16.js +0 -6
  204. package/dist/ops/grads/qkv.d.ts +0 -3
  205. package/dist/ops/grads/qkv.js +0 -34
  206. package/dist/ops/grads/rope.d.ts +0 -2
  207. package/dist/ops/grads/rope.js +0 -5
  208. package/dist/ops/grads/softmax16.d.ts +0 -2
  209. package/dist/ops/grads/softmax16.js +0 -25
  210. package/dist/ops/grads/unpack16.d.ts +0 -2
  211. package/dist/ops/grads/unpack16.js +0 -5
  212. package/dist/ops/grads/utils.d.ts +0 -4
  213. package/dist/ops/grads/utils.js +0 -14
  214. package/dist/ops/log.d.ts +0 -0
  215. package/dist/ops/log.js +0 -1
  216. package/dist/ops/matMul16.d.ts +0 -15
  217. package/dist/ops/matMul16.js +0 -13
  218. package/dist/ops/matMulGelu.d.ts +0 -3
  219. package/dist/ops/matMulGelu.js +0 -14
  220. package/dist/ops/matMulMul.d.ts +0 -2
  221. package/dist/ops/matMulMul.js +0 -9
  222. package/dist/ops/mul16.d.ts +0 -2
  223. package/dist/ops/mul16.js +0 -39
  224. package/dist/ops/mulDrop.d.ts +0 -2
  225. package/dist/ops/mulDrop.js +0 -9
  226. package/dist/ops/normRMS.d.ts +0 -2
  227. package/dist/ops/normRMS.js +0 -19
  228. package/dist/ops/pack16.d.ts +0 -2
  229. package/dist/ops/pack16.js +0 -5
  230. package/dist/ops/qkv.d.ts +0 -2
  231. package/dist/ops/qkv.js +0 -10
  232. package/dist/ops/reshape16.d.ts +0 -2
  233. package/dist/ops/reshape16.js +0 -41
  234. package/dist/ops/rope.d.ts +0 -3
  235. package/dist/ops/rope.js +0 -7
  236. package/dist/ops/scatterSub.d.ts +0 -2
  237. package/dist/ops/scatterSub.js +0 -9
  238. package/dist/ops/slice16.d.ts +0 -2
  239. package/dist/ops/slice16.js +0 -9
  240. package/dist/ops/softmax16.d.ts +0 -2
  241. package/dist/ops/softmax16.js +0 -9
  242. package/dist/ops/sub16.d.ts +0 -2
  243. package/dist/ops/sub16.js +0 -8
  244. package/dist/ops/sum16.d.ts +0 -2
  245. package/dist/ops/sum16.js +0 -13
  246. package/dist/ops/transpose16.d.ts +0 -3
  247. package/dist/ops/transpose16.js +0 -40
  248. package/dist/ops/unpack16.d.ts +0 -2
  249. package/dist/ops/unpack16.js +0 -6
  250. package/dist/ops/webgl/adamAdjust.d.ts +0 -1
  251. package/dist/ops/webgl/adamAdjust.js +0 -49
  252. package/dist/ops/webgl/adamMoments.d.ts +0 -1
  253. package/dist/ops/webgl/adamMoments.js +0 -40
  254. package/dist/ops/webgl/appendCache.d.ts +0 -1
  255. package/dist/ops/webgl/appendCache.js +0 -44
  256. package/dist/ops/webgl/attentionMask.d.ts +0 -1
  257. package/dist/ops/webgl/attentionMask.js +0 -45
  258. package/dist/ops/webgl/dropout16.d.ts +0 -1
  259. package/dist/ops/webgl/dropout16.js +0 -11
  260. package/dist/ops/webgl/fusedSoftmax.d.ts +0 -11
  261. package/dist/ops/webgl/fusedSoftmax.js +0 -80
  262. package/dist/ops/webgl/gatherSub.d.ts +0 -1
  263. package/dist/ops/webgl/gatherSub.js +0 -27
  264. package/dist/ops/webgl/gelu.d.ts +0 -2
  265. package/dist/ops/webgl/gelu.js +0 -50
  266. package/dist/ops/webgl/log.d.ts +0 -17
  267. package/dist/ops/webgl/log.js +0 -23
  268. package/dist/ops/webgl/matMul16.d.ts +0 -1
  269. package/dist/ops/webgl/matMul16.js +0 -45
  270. package/dist/ops/webgl/matMulGelu.d.ts +0 -21
  271. package/dist/ops/webgl/matMulGelu.js +0 -9
  272. package/dist/ops/webgl/matMulMul.d.ts +0 -14
  273. package/dist/ops/webgl/matMulMul.js +0 -28
  274. package/dist/ops/webgl/mulDropout.d.ts +0 -1
  275. package/dist/ops/webgl/mulDropout.js +0 -41
  276. package/dist/ops/webgl/normRMS.d.ts +0 -1
  277. package/dist/ops/webgl/normRMS.js +0 -93
  278. package/dist/ops/webgl/qkv.d.ts +0 -1
  279. package/dist/ops/webgl/qkv.js +0 -46
  280. package/dist/ops/webgl/rope.d.ts +0 -1
  281. package/dist/ops/webgl/rope.js +0 -56
  282. package/dist/ops/webgl/scatterSub.d.ts +0 -1
  283. package/dist/ops/webgl/scatterSub.js +0 -27
  284. package/dist/ops/webgpu/adamAdjust.d.ts +0 -1
  285. package/dist/ops/webgpu/adamAdjust.js +0 -57
  286. package/dist/ops/webgpu/adamMoments.d.ts +0 -1
  287. package/dist/ops/webgpu/adamMoments.js +0 -60
  288. package/dist/ops/webgpu/add16.d.ts +0 -1
  289. package/dist/ops/webgpu/add16.js +0 -13
  290. package/dist/ops/webgpu/appendCache.d.ts +0 -1
  291. package/dist/ops/webgpu/appendCache.js +0 -105
  292. package/dist/ops/webgpu/attentionMask.d.ts +0 -1
  293. package/dist/ops/webgpu/attentionMask.js +0 -26
  294. package/dist/ops/webgpu/attentionMask32_program.d.ts +0 -19
  295. package/dist/ops/webgpu/attentionMask32_program.js +0 -54
  296. package/dist/ops/webgpu/clipScale.d.ts +0 -1
  297. package/dist/ops/webgpu/clipScale.js +0 -58
  298. package/dist/ops/webgpu/concat16.d.ts +0 -19
  299. package/dist/ops/webgpu/concat16.js +0 -126
  300. package/dist/ops/webgpu/dropout16.d.ts +0 -1
  301. package/dist/ops/webgpu/dropout16.js +0 -51
  302. package/dist/ops/webgpu/gatherSub.d.ts +0 -1
  303. package/dist/ops/webgpu/gatherSub.js +0 -39
  304. package/dist/ops/webgpu/gelu.d.ts +0 -14
  305. package/dist/ops/webgpu/gelu.js +0 -141
  306. package/dist/ops/webgpu/index.d.ts +0 -0
  307. package/dist/ops/webgpu/index.js +0 -26
  308. package/dist/ops/webgpu/matMul16.d.ts +0 -1
  309. package/dist/ops/webgpu/matMul16.js +0 -65
  310. package/dist/ops/webgpu/matMul16_program.d.ts +0 -42
  311. package/dist/ops/webgpu/matMul16_program.js +0 -343
  312. package/dist/ops/webgpu/mul16.d.ts +0 -1
  313. package/dist/ops/webgpu/mul16.js +0 -13
  314. package/dist/ops/webgpu/norm2.d.ts +0 -1
  315. package/dist/ops/webgpu/norm2.js +0 -76
  316. package/dist/ops/webgpu/normRMS.d.ts +0 -1
  317. package/dist/ops/webgpu/normRMS.js +0 -34
  318. package/dist/ops/webgpu/normRMS16_program.d.ts +0 -10
  319. package/dist/ops/webgpu/normRMS16_program.js +0 -25
  320. package/dist/ops/webgpu/normRMS32_program.d.ts +0 -10
  321. package/dist/ops/webgpu/normRMS32_program.js +0 -25
  322. package/dist/ops/webgpu/normRMSGrad.d.ts +0 -1
  323. package/dist/ops/webgpu/normRMSGrad.js +0 -284
  324. package/dist/ops/webgpu/pack16.d.ts +0 -1
  325. package/dist/ops/webgpu/pack16.js +0 -18
  326. package/dist/ops/webgpu/pack16_program.d.ts +0 -19
  327. package/dist/ops/webgpu/pack16_program.js +0 -92
  328. package/dist/ops/webgpu/qkv.d.ts +0 -1
  329. package/dist/ops/webgpu/qkv.js +0 -24
  330. package/dist/ops/webgpu/rope.d.ts +0 -1
  331. package/dist/ops/webgpu/rope.js +0 -135
  332. package/dist/ops/webgpu/scatterSub.d.ts +0 -1
  333. package/dist/ops/webgpu/scatterSub.js +0 -40
  334. package/dist/ops/webgpu/slice16.d.ts +0 -7
  335. package/dist/ops/webgpu/slice16.js +0 -69
  336. package/dist/ops/webgpu/softmax16.d.ts +0 -17
  337. package/dist/ops/webgpu/softmax16.js +0 -21
  338. package/dist/ops/webgpu/softmax16_program.d.ts +0 -13
  339. package/dist/ops/webgpu/softmax16_program.js +0 -73
  340. package/dist/ops/webgpu/softmax16_subgroup_program.d.ts +0 -17
  341. package/dist/ops/webgpu/softmax16_subgroup_program.js +0 -75
  342. package/dist/ops/webgpu/softmax16grad.d.ts +0 -1
  343. package/dist/ops/webgpu/softmax16grad.js +0 -37
  344. package/dist/ops/webgpu/sub16.d.ts +0 -1
  345. package/dist/ops/webgpu/sub16.js +0 -13
  346. package/dist/ops/webgpu/sum16.d.ts +0 -1
  347. package/dist/ops/webgpu/sum16.js +0 -38
  348. package/dist/ops/webgpu/transpose16.d.ts +0 -1
  349. package/dist/ops/webgpu/transpose16.js +0 -34
  350. package/dist/ops/webgpu/transpose16_program.d.ts +0 -16
  351. package/dist/ops/webgpu/transpose16_program.js +0 -50
  352. package/dist/ops/webgpu/transpose16_shared_program.d.ts +0 -15
  353. package/dist/ops/webgpu/transpose16_shared_program.js +0 -70
  354. package/dist/ops/webgpu/unpack16.d.ts +0 -1
  355. package/dist/ops/webgpu/unpack16.js +0 -48
  356. package/dist/ops/webgpu/utils/binary_op.d.ts +0 -35
  357. package/dist/ops/webgpu/utils/binary_op.js +0 -139
  358. package/dist/ops/webgpu/utils/deviceInfo.d.ts +0 -7
  359. package/dist/ops/webgpu/utils/deviceInfo.js +0 -11
  360. package/dist/ops/webgpu/utils/reductions.d.ts +0 -43
  361. package/dist/ops/webgpu/utils/reductions.js +0 -275
  362. package/dist/ops-CsXeTq1P.js +0 -476
  363. package/dist/pack16-bqltoUlR.js +0 -39
  364. package/dist/papaparse.min-C0cScC2i.js +0 -418
  365. package/dist/parquet-Bqjmp2vo.js +0 -44231
  366. package/dist/patches/webgpu_backend.d.ts +0 -18
  367. package/dist/patches/webgpu_backend.js +0 -56
  368. package/dist/patches/webgpu_base.d.ts +0 -21
  369. package/dist/patches/webgpu_base.js +0 -34
  370. package/dist/patches/webgpu_program.d.ts +0 -36
  371. package/dist/patches/webgpu_program.js +0 -400
  372. package/dist/pdf-NIhmP3sq.js +0 -19477
  373. package/dist/rand_util-CZ7yLoUm.js +0 -50
  374. package/dist/random_normal-IBRrha8a.js +0 -14
  375. package/dist/random_width-DN5ZtQkM.js +0 -9796
  376. package/dist/range-C-CjF-LI.js +0 -10
  377. package/dist/relu-J_X6MUzx.js +0 -9
  378. package/dist/reshape-BDOuCSNW.js +0 -9
  379. package/dist/resize_nearest_neighbor-BojqlfRe.js +0 -150
  380. package/dist/rope-DcrZM_e6.js +0 -24
  381. package/dist/scatter_nd_util-ByNJaL6I.js +0 -46
  382. package/dist/segment_util-Dasb2Zaf.js +0 -43
  383. package/dist/selu_util-BLhIqRkw.js +0 -44
  384. package/dist/shared-3agzAqQ_.js +0 -53
  385. package/dist/shared-CagdqkLh.js +0 -2143
  386. package/dist/slice-BzS11Qh0.js +0 -12
  387. package/dist/slice_util-CC35pLmT.js +0 -153
  388. package/dist/softmax-D4q1LJN7.js +0 -12
  389. package/dist/split-C2Sj255c.js +0 -9
  390. package/dist/squeeze-ho4wLUek.js +0 -10
  391. package/dist/stack-DudVrtmG.js +0 -11
  392. package/dist/step-BTxPtq1r.js +0 -261
  393. package/dist/sum-BpiwSWvg.js +0 -11
  394. package/dist/tensor-BWFldCso.js +0 -8
  395. package/dist/tensor1d-LMGMIUlr.js +0 -11
  396. package/dist/tensor2d-BnXMKScO.js +0 -14
  397. package/dist/tensor4d-C6UCG_u8.js +0 -14
  398. package/dist/tfjs_backend-BGnG-ppu.js +0 -654
  399. package/dist/tile-CFy-xTO6.js +0 -11
  400. package/dist/tokeniser/BaseTokeniser.d.ts +0 -33
  401. package/dist/tokeniser/BaseTokeniser.js +0 -124
  402. package/dist/tokeniser/CharTokeniser.d.ts +0 -24
  403. package/dist/tokeniser/CharTokeniser.js +0 -107
  404. package/dist/tokeniser/bpe.d.ts +0 -28
  405. package/dist/tokeniser/bpe.js +0 -173
  406. package/dist/tokeniser/messages.d.ts +0 -61
  407. package/dist/tokeniser/messages.js +0 -1
  408. package/dist/tokeniser/type.d.ts +0 -34
  409. package/dist/tokeniser/type.js +0 -1
  410. package/dist/training/AdamW.d.ts +0 -36
  411. package/dist/training/AdamW.js +0 -138
  412. package/dist/training/BasicTrainer.d.ts +0 -63
  413. package/dist/training/BasicTrainer.js +0 -265
  414. package/dist/training/DatasetBuilder.d.ts +0 -26
  415. package/dist/training/DatasetBuilder.js +0 -86
  416. package/dist/training/Evaluator.d.ts +0 -19
  417. package/dist/training/Evaluator.js +0 -39
  418. package/dist/training/LRScheduler.d.ts +0 -12
  419. package/dist/training/LRScheduler.js +0 -34
  420. package/dist/training/PreTrainer.d.ts +0 -11
  421. package/dist/training/PreTrainer.js +0 -20
  422. package/dist/training/SFTTrainer.d.ts +0 -12
  423. package/dist/training/SFTTrainer.js +0 -22
  424. package/dist/training/loss.d.ts +0 -3
  425. package/dist/training/loss.js +0 -24
  426. package/dist/training/orthoGrad.d.ts +0 -2
  427. package/dist/training/orthoGrad.js +0 -10
  428. package/dist/training/sparseCrossEntropy.d.ts +0 -7
  429. package/dist/training/sparseCrossEntropy.js +0 -69
  430. package/dist/training/tasks/ConversationTask.d.ts +0 -18
  431. package/dist/training/tasks/ConversationTask.js +0 -40
  432. package/dist/training/tasks/PretrainingTask.d.ts +0 -17
  433. package/dist/training/tasks/PretrainingTask.js +0 -47
  434. package/dist/training/tasks/StartSentenceTask.d.ts +0 -18
  435. package/dist/training/tasks/StartSentenceTask.js +0 -49
  436. package/dist/training/tasks/Task.d.ts +0 -22
  437. package/dist/training/tasks/Task.js +0 -68
  438. package/dist/training/tasks/splitter.d.ts +0 -5
  439. package/dist/training/tasks/splitter.js +0 -21
  440. package/dist/training/types.d.ts +0 -78
  441. package/dist/training/types.js +0 -1
  442. package/dist/training/validation.d.ts +0 -17
  443. package/dist/training/validation.js +0 -84
  444. package/dist/transpose-9kRxIXWR.js +0 -36
  445. package/dist/unsorted_segment_sum-DJvk5xnh.js +0 -277
  446. package/dist/utilities/arrayClose.d.ts +0 -1
  447. package/dist/utilities/arrayClose.js +0 -20
  448. package/dist/utilities/datasetID.d.ts +0 -2
  449. package/dist/utilities/datasetID.js +0 -21
  450. package/dist/utilities/dummy.d.ts +0 -9
  451. package/dist/utilities/dummy.js +0 -43
  452. package/dist/utilities/multinomialCPU.d.ts +0 -2
  453. package/dist/utilities/multinomialCPU.js +0 -13
  454. package/dist/utilities/naming.d.ts +0 -4
  455. package/dist/utilities/naming.js +0 -1
  456. package/dist/utilities/packed.d.ts +0 -4
  457. package/dist/utilities/packed.js +0 -15
  458. package/dist/utilities/parameters.d.ts +0 -11
  459. package/dist/utilities/parameters.js +0 -57
  460. package/dist/utilities/performance.d.ts +0 -2
  461. package/dist/utilities/performance.js +0 -16
  462. package/dist/utilities/profile.d.ts +0 -17
  463. package/dist/utilities/profile.js +0 -38
  464. package/dist/utilities/safetensors.d.ts +0 -3
  465. package/dist/utilities/safetensors.js +0 -83
  466. package/dist/utilities/sentences.d.ts +0 -5
  467. package/dist/utilities/sentences.js +0 -41
  468. package/dist/utilities/tokenParse.d.ts +0 -1
  469. package/dist/utilities/tokenParse.js +0 -21
  470. package/dist/utilities/topP.d.ts +0 -1
  471. package/dist/utilities/topP.js +0 -13
  472. package/dist/utilities/waitForModel.d.ts +0 -2
  473. package/dist/utilities/waitForModel.js +0 -12
  474. package/dist/utilities/weights.d.ts +0 -12
  475. package/dist/utilities/weights.js +0 -45
  476. package/dist/utilities/yielder.d.ts +0 -1
  477. package/dist/utilities/yielder.js +0 -7
  478. package/dist/variable-Ck482e3n.js +0 -7
  479. package/dist/webgpu_program-B4HmApL1.js +0 -525
  480. package/dist/webgpu_util-DYlGSwOJ.js +0 -64
  481. package/dist/zeros-DvZpK8s6.js +0 -13
  482. package/dist/zeros_like-CWjDdwr-.js +0 -721
@@ -1,42 +0,0 @@
1
- import { WebGPUProgram } from '@tensorflow/tfjs-backend-webgpu';
2
- export default class MatMul16ProgramGeneric implements WebGPUProgram {
3
- variableNames: string[];
4
- outputShape: number[];
5
- shaderKey: string;
6
- dispatchLayout: {
7
- x: number[];
8
- y: number[];
9
- z: number[];
10
- };
11
- dispatch: [number, number, number];
12
- workgroupSize: [number, number, number];
13
- dimInner: number;
14
- transposeA: boolean;
15
- transposeB: boolean;
16
- broadcastBatch: boolean;
17
- tileInner: number;
18
- uniforms?: string;
19
- scale: boolean;
20
- scaleA: boolean;
21
- scaleB: boolean;
22
- activation?: 'gelu' | 'relu2' | 'relu';
23
- causalMask: boolean;
24
- outputComponent?: number | undefined;
25
- variableComponents?: number[];
26
- outputIndexSnippet?: string;
27
- outputStrideSnippet?: string;
28
- constructor(batch: number, O1: number, O2: number, I1: number, I2: number, transposeA?: boolean, transposeB?: boolean);
29
- private addUniform;
30
- setOutputShape(shape: number[], perm?: number[]): void;
31
- useScale(): void;
32
- useScaleA(): void;
33
- useScaleB(): void;
34
- useActivation(activation: 'gelu' | 'relu2' | 'relu'): void;
35
- useCausalMask(): void;
36
- private activationSnippet;
37
- private readASnippet;
38
- private readBSnippet;
39
- private baseIndexSnippets;
40
- private offsetSnippets;
41
- getUserCode(): string;
42
- }
@@ -1,343 +0,0 @@
1
- import { U as f } from "../../index-CUXkjxiT.js";
2
- import { e as p } from "../../webgpu_program-B4HmApL1.js";
3
- class B {
4
- variableNames = ["A", "B"];
5
- outputShape;
6
- shaderKey = "MatMul16TB";
7
- dispatchLayout;
8
- dispatch;
9
- workgroupSize = [8, 8, 1];
10
- // 8x8 threads for 32x32 tile
11
- dimInner;
12
- transposeA = !1;
13
- transposeB = !0;
14
- broadcastBatch = !0;
15
- tileInner = 32;
16
- uniforms;
17
- scale = !1;
18
- scaleA = !1;
19
- scaleB = !1;
20
- activation;
21
- causalMask = !1;
22
- outputComponent;
23
- variableComponents;
24
- outputIndexSnippet;
25
- outputStrideSnippet;
26
- constructor(e, t, o, a, i, r = !1, s = !1) {
27
- if (this.transposeA = r, this.transposeB = s, this.variableComponents = [2, 2], this.outputComponent = 2, this.shaderKey = `MatMul16TB_${t}_${o}_${a}_${i}_${r ? "TA" : ""}${s ? "TB" : ""}`, r) {
28
- if (this.outputShape = [e, a, i / 2], this.dimInner = t, t !== o)
29
- throw new Error("Inner dimensions of A and B must match for MatMul16 transposeA");
30
- } else if (s) {
31
- if (this.outputShape = [e, t, o / 2], this.dimInner = i, i !== a)
32
- throw new Error("Inner dimensions of A and B must match for MatMul16 transposeB");
33
- } else if (this.outputShape = [e, t, i / 2], this.dimInner = a, a !== o)
34
- throw new Error("Inner dimensions of A and B must match for MatMul16");
35
- if (this.dimInner % this.tileInner !== 0)
36
- throw new Error(`Inner dimension ${this.dimInner} must be multiple of ${this.tileInner}`);
37
- if (this.dispatchLayout = { x: [2], y: [1], z: [0] }, this.dispatch = [
38
- Math.ceil(this.outputShape[2] / (this.workgroupSize[0] * 2)),
39
- // 4 unpacked cols per thread = 2 packed cols
40
- Math.ceil(this.outputShape[1] / (this.workgroupSize[1] * 4)),
41
- // 4 rows per thread
42
- this.outputShape[0]
43
- ], i % 32 !== 0)
44
- throw new Error("Head size must be even for MatMul16 transposeB");
45
- if (a % 32 !== 0)
46
- throw new Error("Head size must be even for MatMul16 transposeB");
47
- if (t % 32 !== 0)
48
- throw new Error("Sequence length must be multiple of 32 for MatMul16 transposeB");
49
- if (o % 32 !== 0)
50
- throw new Error("Sequence length must be multiple of 32 for MatMul16 transposeB");
51
- this.outputIndexSnippet = "var idx0 = getOutputIndexFromCoords(vec3<i32>(batch, gRow, gColPacked));", this.outputStrideSnippet = "idx0 = idx0 + uniforms.outShapeStrides[1]; // Next row";
52
- }
53
- addUniform(e) {
54
- this.uniforms ? this.uniforms += `, ${e}` : this.uniforms = e;
55
- }
56
- /* Note: this is done after constructor because it shouldn't affect dispatch */
57
- setOutputShape(e, t) {
58
- const o = f(e), a = f(this.outputShape);
59
- if (o !== a)
60
- throw new Error(`New shape size ${o} must match current size ${a}`);
61
- function i(c, u) {
62
- return [`${c} / ${u}`, `${c} % ${u}`];
63
- }
64
- const r = this.outputShape;
65
- let s = [];
66
- if (e.length === r.length + 1)
67
- if (e[0] * e[1] === r[0])
68
- s = [
69
- ...i("batch", e[1]),
70
- // batch / B2, batch % B2
71
- "gRow",
72
- "gColPacked"
73
- ], this.shaderKey += `_batchSplit_${e[1]}`;
74
- else if (e[e.length - 2] * e[e.length - 1] === r[r.length - 1])
75
- s = [
76
- "batch",
77
- "gRow",
78
- ...i("gColPacked", e[e.length - 1])
79
- // gColPacked / N2, gColPacked % N2
80
- ], this.shaderKey += `_colSplit_${e[e.length - 1]}`;
81
- else
82
- throw new Error("Unsupported output shape split");
83
- else if (e.length === r.length)
84
- s = ["batch", "gRow", "gColPacked"];
85
- else if (e.length === 2 && r[0] === 1)
86
- s = ["gRow", "gColPacked"], this.shaderKey += "_batchRemoved";
87
- else
88
- throw new Error(`Unsupported output shape rank change: ${r.length} -> ${e.length}}`);
89
- let n = [];
90
- if (t) {
91
- if (t.length !== e.length)
92
- throw new Error("Permutation length must match output rank");
93
- n = t.map((c) => s[c]), this.shaderKey += `_perm_${t.join("")}`;
94
- } else
95
- n = s;
96
- const l = n.findIndex((c) => c === "gRow"), h = `vec${e.length}<i32>(${n.join(", ")})`;
97
- this.outputIndexSnippet = `var idx0: i32 = getOutputIndexFromCoords(${h});`, this.outputStrideSnippet = `idx0 = idx0 + uniforms.outShapeStrides${l === 0 ? "" : `[${l}]`}; `, t ? this.outputShape = t.map((c) => e[c]) : this.outputShape = e;
98
- }
99
- useScale() {
100
- this.addUniform("scale: f32"), this.scale = !0, this.shaderKey += "_scaled";
101
- }
102
- useScaleA() {
103
- this.addUniform("scaleA: f32"), this.scaleA = !0, this.shaderKey += "_scaledA";
104
- }
105
- useScaleB() {
106
- this.addUniform("scaleB: f32"), this.scaleB = !0, this.shaderKey += "_scaledB";
107
- }
108
- useActivation(e) {
109
- this.activation = e, this.shaderKey += `_${e}`;
110
- }
111
- useCausalMask() {
112
- this.causalMask = !0, this.addUniform("pastLen: i32"), this.shaderKey += "_causalMask";
113
- }
114
- activationSnippet() {
115
- return this.activation === "gelu" ? `
116
- // TODO: revisit after https://github.com/gpuweb/gpuweb/issues/4458 is resolved
117
- fn tanhComplete(x: vec4<f32>) -> vec4<f32> {
118
- return vec4<f32>(
119
- select(tanh(x.x), sign(x.x), abs(x.x) > 15.0f),
120
- select(tanh(x.y), sign(x.y), abs(x.y) > 15.0f),
121
- select(tanh(x.z), sign(x.z), abs(x.z) > 15.0f),
122
- select(tanh(x.w), sign(x.w), abs(x.w) > 15.0f),
123
- );
124
- }
125
- fn activation(x : vec4<f32>) -> vec4<f32> {
126
- let x3 = x * x * x;
127
- var inner = fma(vec4<f32>(${0.044715}f), x3, x);
128
- inner = ${0.7978845608028654}f * inner;
129
- inner = tanhComplete(inner);
130
- inner = 0.5f * (1.0f + inner);
131
- return x * inner;
132
- }
133
- ` : this.activation === "relu2" ? `
134
- fn activation(x : vec4<f32>) -> vec4<f32> {
135
- let y = max(x, vec4<f32>(0.0));
136
- return y * y;
137
- }
138
- ` : this.activation === "relu" ? `
139
- fn activation(x : vec4<f32>) -> vec4<f32> {
140
- return max(x, vec4<f32>(0.0));
141
- }
142
- ` : "";
143
- }
144
- /* Transpose when writing to shared memory */
145
- readASnippet() {
146
- const e = `
147
- var col = i32(localId.x);
148
- var row = i32(localId.y) * 4;
149
- var packedA: vec2<i32> = A[offsetA + row * strideA + col];
150
- var Arow1 = vec4<f32>(
151
- unpack2x16float(u32(packedA.x)),
152
- unpack2x16float(u32(packedA.y))
153
- );
154
- packedA = A[offsetA + (row + 1) * strideA + col];
155
- var Arow2 = vec4<f32>(
156
- unpack2x16float(u32(packedA.x)),
157
- unpack2x16float(u32(packedA.y))
158
- );
159
- packedA = A[offsetA + (row + 2) * strideA + col];
160
- var Arow3 = vec4<f32>(
161
- unpack2x16float(u32(packedA.x)),
162
- unpack2x16float(u32(packedA.y))
163
- );
164
- packedA = A[offsetA + (row + 3) * strideA + col];
165
- var Arow4 = vec4<f32>(
166
- unpack2x16float(u32(packedA.x)),
167
- unpack2x16float(u32(packedA.y))
168
- );
169
-
170
- ${this.scaleA ? "Arow1 = Arow1 * uniforms.scaleA;" : ""}
171
- ${this.scaleA ? "Arow2 = Arow2 * uniforms.scaleA;" : ""}
172
- ${this.scaleA ? "Arow3 = Arow3 * uniforms.scaleA;" : ""}
173
- ${this.scaleA ? "Arow4 = Arow4 * uniforms.scaleA;" : ""}
174
- `;
175
- return this.transposeA ? `{
176
- ${e}
177
- mm_Asub[row][col] = Arow1;
178
- mm_Asub[row + 1][col] = Arow2;
179
- mm_Asub[row + 2][col] = Arow3;
180
- mm_Asub[row + 3][col] = Arow4;
181
- }` : `{
182
- ${e}
183
-
184
- col = i32(localId.x) * 4;
185
- row = i32(localId.y);
186
-
187
- mm_Asub[col][row] = vec4<f32>(Arow1.x, Arow2.x, Arow3.x, Arow4.x);
188
- mm_Asub[col + 1][row] = vec4<f32>(Arow1.y, Arow2.y, Arow3.y, Arow4.y);
189
- mm_Asub[col + 2][row] = vec4<f32>(Arow1.z, Arow2.z, Arow3.z, Arow4.z);
190
- mm_Asub[col + 3][row] = vec4<f32>(Arow1.w, Arow2.w, Arow3.w, Arow4.w);
191
- }`;
192
- }
193
- /* Transpose when writing to shared memory */
194
- readBSnippet() {
195
- const e = `
196
- var col = i32(localId.x);
197
- var row = i32(localId.y) * 4;
198
- var packedB: vec2<i32> = B[offsetB + row * strideB + col];
199
- var Brow1 = vec4<f32>(
200
- unpack2x16float(u32(packedB.x)),
201
- unpack2x16float(u32(packedB.y))
202
- );
203
- packedB = B[offsetB + (row + 1) * strideB + col];
204
- var Brow2 = vec4<f32>(
205
- unpack2x16float(u32(packedB.x)),
206
- unpack2x16float(u32(packedB.y))
207
- );
208
- packedB = B[offsetB + (row + 2) * strideB + col];
209
- var Brow3 = vec4<f32>(
210
- unpack2x16float(u32(packedB.x)),
211
- unpack2x16float(u32(packedB.y))
212
- );
213
- packedB = B[offsetB + (row + 3) * strideB + col];
214
- var Brow4 = vec4<f32>(
215
- unpack2x16float(u32(packedB.x)),
216
- unpack2x16float(u32(packedB.y))
217
- );
218
-
219
- ${this.scaleB ? "Brow1 = Brow1 * uniforms.scaleB;" : ""}
220
- ${this.scaleB ? "Brow2 = Brow2 * uniforms.scaleB;" : ""}
221
- ${this.scaleB ? "Brow3 = Brow3 * uniforms.scaleB;" : ""}
222
- ${this.scaleB ? "Brow4 = Brow4 * uniforms.scaleB;" : ""}
223
- `;
224
- return this.transposeB ? `{
225
- ${e}
226
-
227
- col = i32(localId.x) * 4;
228
- row = i32(localId.y);
229
-
230
- mm_Bsub[col][row] = vec4<f32>(Brow1.x, Brow2.x, Brow3.x, Brow4.x);
231
- mm_Bsub[col + 1][row] = vec4<f32>(Brow1.y, Brow2.y, Brow3.y, Brow4.y);
232
- mm_Bsub[col + 2][row] = vec4<f32>(Brow1.z, Brow2.z, Brow3.z, Brow4.z);
233
- mm_Bsub[col + 3][row] = vec4<f32>(Brow1.w, Brow2.w, Brow3.w, Brow4.w);
234
- }` : `{
235
- ${e}
236
- mm_Bsub[row][col] = Brow1;
237
- mm_Bsub[row + 1][col] = Brow2;
238
- mm_Bsub[row + 2][col] = Brow3;
239
- mm_Bsub[row + 3][col] = Brow4;
240
- }`;
241
- }
242
- baseIndexSnippets() {
243
- const e = `
244
- let strideA = uniforms.aShape.z / 2;
245
- let strideB = uniforms.bShape.z / 2;
246
- `;
247
- let t = "";
248
- this.transposeB ? t = "let baseB = getIndexFromCoords3D(vec3<i32>(batchB, globalColStart, 0), vec3<i32>(uniforms.bShape.x, uniforms.bShape.y, strideB));" : t = "let baseB = getIndexFromCoords3D(vec3<i32>(batchB, 0, globalColStart / 4), vec3<i32>(uniforms.bShape.x, uniforms.bShape.y, strideB));";
249
- let o = "";
250
- return this.transposeA ? o = "let baseA = getIndexFromCoords3D(vec3<i32>(batchA, 0, globalRowStart / 4), vec3<i32>(uniforms.aShape.x, uniforms.aShape.y, strideA));" : o = "let baseA = getIndexFromCoords3D(vec3<i32>(batchA, globalRowStart, 0), vec3<i32>(uniforms.aShape.x, uniforms.aShape.y, strideA));", `
251
- ${e}
252
- ${o}
253
- ${t}
254
- `;
255
- }
256
- offsetSnippets() {
257
- let e = "";
258
- this.transposeA ? e = "let offsetA = baseA + kStart * strideA;" : e = "let offsetA = baseA + kStart / 4;";
259
- let t = "";
260
- return this.transposeB ? t = "let offsetB = baseB + kStart / 4;" : t = "let offsetB = baseB + kStart * strideB;", `
261
- ${e}
262
- ${t}
263
- `;
264
- }
265
- getUserCode() {
266
- const e = this.transposeA, t = this.tileInner, o = this.workgroupSize[1] * 4, a = this.workgroupSize[0] * 4, i = e ? o : t, r = e ? t : o, s = this.dimInner, n = Math.ceil(s / t);
267
- return `
268
- var<workgroup> mm_Asub : array<array<vec4<f32>, ${i / 4 + (this.transposeA ? 0 : 1)}>, ${r}>;
269
- var<workgroup> mm_Bsub : array<array<vec4<f32>, ${a / 4 + (this.transposeB ? 1 : 0)}>, ${t}>;
270
-
271
- ${this.activation ? this.activationSnippet() : ""}
272
-
273
- ${p()} {
274
- let batch = i32(globalId.z);
275
- let batchA = ${this.broadcastBatch ? "batch % uniforms.aShape[0]" : "batch"};
276
- let batchB = ${this.broadcastBatch ? "batch % uniforms.bShape[0]" : "batch"};
277
- var kStart = 0;
278
- let localRow = i32(localId.y);
279
- let localCol = i32(localId.x);
280
- let globalRowStart = i32(workgroupId.y) * ${o};
281
- let globalColStart = i32(workgroupId.x) * ${a};
282
-
283
- // 4 rows x 4 cols accumulator
284
- // acc[i] holds row i (4 cols)
285
- var acc = array<vec4<f32>, 4>(
286
- vec4<f32>(0.0), vec4<f32>(0.0), vec4<f32>(0.0), vec4<f32>(0.0)
287
- );
288
-
289
- ${this.baseIndexSnippets()}
290
-
291
- for (var t = 0; t < ${n}; t++) {
292
- ${this.offsetSnippets()}
293
-
294
- ${this.readASnippet()}
295
- ${this.readBSnippet()}
296
-
297
- kStart = kStart + ${t};
298
- workgroupBarrier();
299
-
300
- for (var k = 0; k < ${t}; k++) {
301
- // Load 4 columns of B as a vec4
302
- let bVec = mm_Bsub[k][localCol];
303
- let aVec = mm_Asub[k][localRow];
304
-
305
- // Compute 4 rows
306
- for (var r = 0; r < 4; r = r + 1) {
307
- acc[r] = fma(vec4<f32>(aVec[r]), bVec, acc[r]);
308
- }
309
- }
310
- workgroupBarrier();
311
- }
312
-
313
- // Write out 4 rows x 2 packed cols (4 unpacked cols)
314
- let gRow = globalRowStart + localRow * 4;
315
- let gColPacked = i32(workgroupId.x) * ${this.workgroupSize[0] * 2} + localCol * 2;
316
-
317
- ${this.outputIndexSnippet}
318
- for (var i = 0; i < 4; i = i + 1) {
319
- ${this.causalMask ? `
320
- // Causal Masking: mask if col > row + pastLen
321
- let r = gRow + i;
322
- let cBase = gColPacked * 2;
323
- let cVec = vec4<i32>(cBase, cBase + 1, cBase + 2, cBase + 3);
324
- let mask = cVec > vec4<i32>(r + uniforms.pastLen);
325
- acc[i] = select(acc[i], vec4<f32>(-uniforms.INFINITY), mask);
326
- ` : ""}
327
-
328
- ${this.activation ? "acc[i] = activation(acc[i]);" : ""}
329
- ${this.scale ? "acc[i] = acc[i] * uniforms.scale;" : ""}
330
- result[idx0 / 2] = vec2<i32>(
331
- i32(pack2x16float(acc[i].xy)),
332
- i32(pack2x16float(acc[i].zw))
333
- );
334
-
335
- ${this.outputStrideSnippet}
336
- }
337
- }
338
- `;
339
- }
340
- }
341
- export {
342
- B as default
343
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- import { c as t } from "../../index-CUXkjxiT.js";
2
- import { BinaryOpScalarProgram as s, BinaryOpProgram as c } from "./utils/binary_op.js";
3
- import { B as a } from "../../binary_op_util-pKXltfxI.js";
4
- function m(n) {
5
- const { a: e, b: r } = n.inputs, o = n.backend, p = r.shape.length === 0 ? new s(a.MUL, e.shape) : new c(a.MUL, e.shape, r.shape);
6
- return o.runWebGPUProgram(p, [e, r], "packedF16");
7
- }
8
- const i = {
9
- kernelName: "Mul16",
10
- backendName: "webgpu",
11
- kernelFunc: m
12
- };
13
- t(i);
@@ -1 +0,0 @@
1
- export {};
@@ -1,76 +0,0 @@
1
- import { reduce as g, ReduceProgram as h } from "./utils/reductions.js";
2
- import { c as w, U as S } from "../../index-CUXkjxiT.js";
3
- import k from "./utils/deviceInfo.js";
4
- class v extends h {
5
- shaderKey = "norm2";
6
- atomic = !0;
7
- utilityFunctions = `
8
- fn atomicAddF32(sum: ptr<storage, atomic<i32>, read_write>, value: f32) -> f32 {
9
- var old = atomicLoad(sum);
10
- loop {
11
- let new_value = value + bitcast<f32>(old);
12
- let exchange_result = atomicCompareExchangeWeak(sum, old, bitcast<i32>(new_value));
13
- if (exchange_result.exchanged) {
14
- return new_value;
15
- }
16
- old = exchange_result.old_value;
17
- }
18
- }
19
- `;
20
- constructor(o, r, i) {
21
- super(
22
- o,
23
- r,
24
- {
25
- reductionOp: "sum",
26
- elementwise: !1,
27
- forceWorkgroupSize: i
28
- },
29
- !1
30
- ), this.uniforms += "lossScaling: f32, index: i32";
31
- }
32
- getPreprocessSnippet() {
33
- return `
34
- candidate = candidate * uniforms.lossScaling;
35
- candidate = candidate * candidate;
36
- `;
37
- }
38
- getWriteSnippet() {
39
- return `
40
- if (tid == 0) {
41
- atomicAddF32(&result[uniforms.index], bestValue);
42
- }
43
- `;
44
- }
45
- }
46
- function x(t) {
47
- const { x: o, output: r } = t.inputs, { invLossScaling: i, index: c } = t.attrs, n = t.backend, u = [], d = k(n);
48
- let e = Math.min(512, n.device.limits.maxComputeWorkgroupSizeX);
49
- const a = 4, s = S(o.shape);
50
- for (; s % (e * a) !== 0 && e > 1; )
51
- e /= 2;
52
- if (e === 1)
53
- throw new Error(`Cannot find suitable workgroup size for Norm2Program with reduce size ${s}`);
54
- const l = {
55
- inSize: e * a,
56
- outSize: 1,
57
- batchSize: s / (e * a),
58
- windowSize: e
59
- }, m = new v(d, l, e), p = g(
60
- m,
61
- [o],
62
- n,
63
- [
64
- { type: "float32", data: [i] },
65
- { type: "int32", data: [c] }
66
- ],
67
- r
68
- );
69
- return u.forEach((f) => f.dispose()), p;
70
- }
71
- const z = {
72
- kernelName: "Norm2",
73
- backendName: "webgpu",
74
- kernelFunc: x
75
- };
76
- w(z);
@@ -1 +0,0 @@
1
- export {};
@@ -1,34 +0,0 @@
1
- import { c as k, a6 as N } from "../../index-CUXkjxiT.js";
2
- import { createReduceInfo as w, reduce as S } from "./utils/reductions.js";
3
- import { isPackedTensor as d } from "../../utilities/packed.js";
4
- import { p as f } from "../../pack16-bqltoUlR.js";
5
- import b from "./normRMS16_program.js";
6
- import z from "./normRMS32_program.js";
7
- import G from "./utils/deviceInfo.js";
8
- function u(t) {
9
- const { x: e, gamma: o } = t.inputs, m = t.backend, c = G(m), p = d(e), i = o ? d(o) : !1, n = p || i, r = !n || n ? e : f(e), a = !n || !o ? o : f(o), h = a ? [r, a] : [r], s = w(h, -1), l = n ? new b(c, s, !!o) : new z(c, s, !!o);
10
- if (a && N(a.shape, [r.shape[r.shape.length - 1]], "Error in RMSNorm: "), e.shape.length !== 3)
11
- throw new Error(`rmsNormGPU: input rank ${e.shape.length} not supported, only rank 3 is supported`);
12
- if (s.inSize !== r.shape[r.shape.length - 1])
13
- throw new Error(
14
- `rmsNormGPU: reduction size ${s.inSize} does not match expected size ${r.shape[r.shape.length - 1]}`
15
- );
16
- if (s.batchSize !== e.shape[0] * e.shape[1])
17
- throw new Error(
18
- `rmsNormGPU: batch size ${s.batchSize} does not match expected size ${e.shape[0] * e.shape[1]}`
19
- );
20
- const g = S(l, h, m);
21
- return n && !p && r.dispose(), n && !i && a && a.dispose(), g;
22
- }
23
- const P = {
24
- kernelName: "RMSNorm",
25
- backendName: "webgpu",
26
- kernelFunc: u
27
- };
28
- k(P);
29
- const M = {
30
- kernelName: "RMSNormNoGamma",
31
- backendName: "webgpu",
32
- kernelFunc: u
33
- };
34
- k(M);
@@ -1,10 +0,0 @@
1
- import { backend_util } from '@tensorflow/tfjs-core';
2
- import { ReduceProgram } from './utils/reductions';
3
- import { DeviceInformation } from './utils/deviceInfo';
4
- export default class RMSProgram16 extends ReduceProgram {
5
- private hasGamma;
6
- constructor(deviceInfo: DeviceInformation, reduceInfo: backend_util.ReduceInfo, hasGamma?: boolean);
7
- getPreprocessSnippet(): string;
8
- getPostprocessSnippet(): string;
9
- getWriteSnippet(): string;
10
- }
@@ -1,25 +0,0 @@
1
- import { ReduceProgram as s } from "./utils/reductions.js";
2
- class i extends s {
3
- hasGamma;
4
- constructor(a, t, e = !1) {
5
- super(a, t, { reductionOp: "mean", elementwise: !0 }, !0), this.shaderKey = "RMSNorm16", e && this.variableNames.push("gamma"), this.variableComponents = [1, 1], this.hasGamma = e;
6
- }
7
- getPreprocessSnippet() {
8
- return "candidate = candidate * candidate;";
9
- }
10
- getPostprocessSnippet() {
11
- return "bestValue = inverseSqrt(bestValue + 1e-8);";
12
- }
13
- getWriteSnippet() {
14
- return `
15
- let X = unpack2x16float(u32(x[offset + k]));
16
- ${this.hasGamma ? "let gamma = unpack2x16float(u32(gamma[k]));" : ""}
17
- let normalized = X * bestValue;
18
- let outVal = normalized ${this.hasGamma ? " * gamma" : ""};
19
- result[offset + k] = i32(pack2x16float(outVal));
20
- `;
21
- }
22
- }
23
- export {
24
- i as default
25
- };
@@ -1,10 +0,0 @@
1
- import { backend_util } from '@tensorflow/tfjs-core';
2
- import { ReduceProgram } from './utils/reductions';
3
- import { DeviceInformation } from './utils/deviceInfo';
4
- export default class RMSProgram32 extends ReduceProgram {
5
- private hasGamma;
6
- constructor(deviceInfo: DeviceInformation, reduceInfo: backend_util.ReduceInfo, hasGamma?: boolean);
7
- protected getPreprocessSnippet(): string;
8
- protected getPostprocessSnippet(): string;
9
- protected getWriteSnippet(): string;
10
- }
@@ -1,25 +0,0 @@
1
- import { ReduceProgram as s } from "./utils/reductions.js";
2
- class i extends s {
3
- hasGamma;
4
- constructor(a, t, e = !1) {
5
- super(a, t, { reductionOp: "mean", elementwise: !0 }, !1), this.shaderKey = "RMSNorm32", e && this.variableNames.push("gamma"), this.variableComponents = [1, 1], this.hasGamma = e;
6
- }
7
- getPreprocessSnippet() {
8
- return "candidate = candidate * candidate;";
9
- }
10
- getPostprocessSnippet() {
11
- return "bestValue = inverseSqrt(bestValue + 1e-8);";
12
- }
13
- getWriteSnippet() {
14
- return `
15
- let X = f32(x[offset + k]);
16
- ${this.hasGamma ? "let gamma = gamma[k];" : ""}
17
- let normalized = X * bestValue;
18
- let outVal = normalized ${this.hasGamma ? " * gamma" : ""};
19
- result[offset + k] = f32(outVal);
20
- `;
21
- }
22
- }
23
- export {
24
- i as default
25
- };
@@ -1 +0,0 @@
1
- export {};