@simulatte/doppler 0.1.8 → 0.2.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 (1340) hide show
  1. package/README.md +3 -97
  2. package/package.json +5 -160
  3. package/BRANDING.md +0 -14
  4. package/CHANGELOG.md +0 -145
  5. package/LICENSE +0 -201
  6. package/NOTICE +0 -5
  7. package/SECURITY.md +0 -19
  8. package/src/adapters/adapter-manager.d.ts +0 -200
  9. package/src/adapters/adapter-manager.js +0 -509
  10. package/src/adapters/adapter-manifest.d.ts +0 -290
  11. package/src/adapters/adapter-manifest.js +0 -320
  12. package/src/adapters/adapter-registry.d.ts +0 -192
  13. package/src/adapters/adapter-registry.js +0 -477
  14. package/src/adapters/index.d.ts +0 -89
  15. package/src/adapters/index.js +0 -42
  16. package/src/adapters/lora-loader.d.ts +0 -105
  17. package/src/adapters/lora-loader.js +0 -414
  18. package/src/bootstrap.d.ts +0 -1
  19. package/src/bootstrap.js +0 -30
  20. package/src/bridge/extension/background.d.ts +0 -14
  21. package/src/bridge/extension/background.js +0 -168
  22. package/src/bridge/extension/manifest.json +0 -34
  23. package/src/bridge/extension-client.d.ts +0 -114
  24. package/src/bridge/extension-client.js +0 -409
  25. package/src/bridge/index.d.ts +0 -69
  26. package/src/bridge/index.js +0 -53
  27. package/src/bridge/protocol.d.ts +0 -96
  28. package/src/bridge/protocol.js +0 -130
  29. package/src/browser/browser-converter.d.ts +0 -71
  30. package/src/browser/browser-converter.js +0 -977
  31. package/src/browser/file-picker.d.ts +0 -63
  32. package/src/browser/file-picker.js +0 -281
  33. package/src/browser/gguf-importer.d.ts +0 -136
  34. package/src/browser/gguf-importer.js +0 -532
  35. package/src/browser/gguf-parser-browser.d.ts +0 -14
  36. package/src/browser/gguf-parser-browser.js +0 -17
  37. package/src/browser/quantization.d.ts +0 -69
  38. package/src/browser/quantization.js +0 -328
  39. package/src/browser/safetensors-parser-browser.d.ts +0 -193
  40. package/src/browser/safetensors-parser-browser.js +0 -347
  41. package/src/browser/shard-io-browser.d.ts +0 -57
  42. package/src/browser/shard-io-browser.js +0 -89
  43. package/src/browser/tensor-source-download.d.ts +0 -27
  44. package/src/browser/tensor-source-download.js +0 -245
  45. package/src/browser/tensor-source-file.d.ts +0 -26
  46. package/src/browser/tensor-source-file.js +0 -53
  47. package/src/browser/tensor-source-http.d.ts +0 -29
  48. package/src/browser/tensor-source-http.js +0 -130
  49. package/src/client/doppler-api.browser.d.ts +0 -1
  50. package/src/client/doppler-api.browser.js +0 -304
  51. package/src/client/doppler-api.d.ts +0 -80
  52. package/src/client/doppler-api.js +0 -314
  53. package/src/client/doppler-provider/generation.d.ts +0 -25
  54. package/src/client/doppler-provider/generation.js +0 -126
  55. package/src/client/doppler-provider/index.d.ts +0 -2
  56. package/src/client/doppler-provider/index.js +0 -3
  57. package/src/client/doppler-provider/model-manager.d.ts +0 -71
  58. package/src/client/doppler-provider/model-manager.js +0 -739
  59. package/src/client/doppler-provider/provider.d.ts +0 -5
  60. package/src/client/doppler-provider/provider.js +0 -102
  61. package/src/client/doppler-provider/source-runtime.d.ts +0 -23
  62. package/src/client/doppler-provider/source-runtime.js +0 -641
  63. package/src/client/doppler-provider/types.d.ts +0 -127
  64. package/src/client/doppler-provider/types.js +0 -17
  65. package/src/client/doppler-provider.d.ts +0 -46
  66. package/src/client/doppler-provider.js +0 -36
  67. package/src/client/doppler-registry.d.ts +0 -23
  68. package/src/client/doppler-registry.js +0 -88
  69. package/src/client/doppler-registry.json +0 -24
  70. package/src/config/README.md +0 -69
  71. package/src/config/backward-registry-loader.d.ts +0 -3
  72. package/src/config/backward-registry-loader.js +0 -23
  73. package/src/config/execution-contract-check.d.ts +0 -82
  74. package/src/config/execution-contract-check.js +0 -317
  75. package/src/config/execution-v0-contract-check.d.ts +0 -94
  76. package/src/config/execution-v0-contract-check.js +0 -349
  77. package/src/config/execution-v0-graph-contract-check.d.ts +0 -20
  78. package/src/config/execution-v0-graph-contract-check.js +0 -64
  79. package/src/config/index.d.ts +0 -63
  80. package/src/config/index.js +0 -31
  81. package/src/config/kernel-path-contract-check.d.ts +0 -76
  82. package/src/config/kernel-path-contract-check.js +0 -507
  83. package/src/config/kernel-path-loader.d.ts +0 -170
  84. package/src/config/kernel-path-loader.js +0 -570
  85. package/src/config/kernels/backward-registry.json +0 -99
  86. package/src/config/kernels/kernel-ref-digests.d.ts +0 -1
  87. package/src/config/kernels/kernel-ref-digests.js +0 -226
  88. package/src/config/kernels/kernel-ref.d.ts +0 -17
  89. package/src/config/kernels/kernel-ref.js +0 -75
  90. package/src/config/kernels/moe/gpt-oss.paths.json +0 -49
  91. package/src/config/kernels/registry.d.ts +0 -86
  92. package/src/config/kernels/registry.js +0 -116
  93. package/src/config/kernels/registry.json +0 -7443
  94. package/src/config/loader.d.ts +0 -57
  95. package/src/config/loader.js +0 -578
  96. package/src/config/merge-contract-check.d.ts +0 -16
  97. package/src/config/merge-contract-check.js +0 -383
  98. package/src/config/merge-helpers.d.ts +0 -58
  99. package/src/config/merge-helpers.js +0 -175
  100. package/src/config/merge.d.ts +0 -143
  101. package/src/config/merge.js +0 -414
  102. package/src/config/param-categories.d.ts +0 -17
  103. package/src/config/param-categories.js +0 -72
  104. package/src/config/param-validator.d.ts +0 -26
  105. package/src/config/param-validator.js +0 -280
  106. package/src/config/platforms/amd-rdna3.json +0 -16
  107. package/src/config/platforms/apple-m1.json +0 -16
  108. package/src/config/platforms/apple-m2.json +0 -16
  109. package/src/config/platforms/apple-m3.json +0 -16
  110. package/src/config/platforms/generic.json +0 -14
  111. package/src/config/platforms/loader.d.ts +0 -65
  112. package/src/config/platforms/loader.js +0 -153
  113. package/src/config/platforms/nvidia-rtx30.json +0 -16
  114. package/src/config/platforms/nvidia-rtx40.json +0 -16
  115. package/src/config/presets/kernel-paths/embeddinggemma-f16-f32a.json +0 -60
  116. package/src/config/presets/kernel-paths/embeddinggemma-f32-f32a.json +0 -60
  117. package/src/config/presets/kernel-paths/embeddinggemma-q4k-dequant-f32a.json +0 -60
  118. package/src/config/presets/kernel-paths/gemma2-f16-f16a.json +0 -61
  119. package/src/config/presets/kernel-paths/gemma2-f16-f32a.json +0 -60
  120. package/src/config/presets/kernel-paths/gemma2-q4k-dequant-f16a.json +0 -61
  121. package/src/config/presets/kernel-paths/gemma2-q4k-dequant-f32a-nosubgroups.json +0 -60
  122. package/src/config/presets/kernel-paths/gemma2-q4k-fused-f32a.json +0 -57
  123. package/src/config/presets/kernel-paths/gemma3-f16-fused-f16a-online.json +0 -200
  124. package/src/config/presets/kernel-paths/gemma3-f16-fused-f32a-online-streamingprefill.json +0 -223
  125. package/src/config/presets/kernel-paths/gemma3-f16-fused-f32a-online.json +0 -223
  126. package/src/config/presets/kernel-paths/gemma3-q4k-dequant-f16a-online.json +0 -60
  127. package/src/config/presets/kernel-paths/gemma3-q4k-dequant-f32a-nosubgroups.json +0 -61
  128. package/src/config/presets/kernel-paths/gemma3-q4k-dequant-f32a-online.json +0 -61
  129. package/src/config/presets/kernel-paths/gemma3-q4k-dequant-f32w-f32a-online.json +0 -56
  130. package/src/config/presets/kernel-paths/lfm2-q4k-dequant-f32a-nosubgroups.json +0 -61
  131. package/src/config/presets/kernel-paths/lfm2-q4k-dequant-f32a-online.json +0 -61
  132. package/src/config/presets/kernel-paths/registry.json +0 -138
  133. package/src/config/presets/models/deepseek.json +0 -20
  134. package/src/config/presets/models/diffusion.json +0 -10
  135. package/src/config/presets/models/embeddinggemma.json +0 -74
  136. package/src/config/presets/models/functiongemma.json +0 -31
  137. package/src/config/presets/models/gemma2.json +0 -60
  138. package/src/config/presets/models/gemma3.json +0 -77
  139. package/src/config/presets/models/gpt-oss.json +0 -68
  140. package/src/config/presets/models/janus-text.json +0 -27
  141. package/src/config/presets/models/kimi-k2.json +0 -25
  142. package/src/config/presets/models/lfm2.json +0 -83
  143. package/src/config/presets/models/llama3.json +0 -40
  144. package/src/config/presets/models/mamba.json +0 -34
  145. package/src/config/presets/models/mixtral.json +0 -37
  146. package/src/config/presets/models/modernbert.json +0 -32
  147. package/src/config/presets/models/qwen3.json +0 -49
  148. package/src/config/presets/models/qwen3_5.json +0 -16
  149. package/src/config/presets/models/transformer.json +0 -78
  150. package/src/config/presets/models/translategemma.json +0 -30
  151. package/src/config/presets/platforms/nvidia-gb200-8gpu.json +0 -45
  152. package/src/config/presets/platforms/nvidia-gb200-nvl72.json +0 -45
  153. package/src/config/presets/platforms/nvidia-gh200-nvl2.json +0 -44
  154. package/src/config/presets/platforms/nvidia-gh200.json +0 -44
  155. package/src/config/presets/runtime/compute/f16-activations.json +0 -30
  156. package/src/config/presets/runtime/compute/f16-batched.json +0 -32
  157. package/src/config/presets/runtime/default.json +0 -101
  158. package/src/config/presets/runtime/diagnostics/debug-logits.json +0 -53
  159. package/src/config/presets/runtime/experiments/bench/gemma3-bench-q4k.json +0 -53
  160. package/src/config/presets/runtime/experiments/debug/gemma3-debug-q4k.json +0 -210
  161. package/src/config/presets/runtime/experiments/verify/gemma3-verify.json +0 -39
  162. package/src/config/presets/runtime/kernels/dequant-f16-q4k.json +0 -13
  163. package/src/config/presets/runtime/kernels/dequant-f32-q4k.json +0 -13
  164. package/src/config/presets/runtime/kernels/embeddinggemma-q4k-dequant-f32a.json +0 -37
  165. package/src/config/presets/runtime/kernels/fused-q4k.json +0 -13
  166. package/src/config/presets/runtime/kernels/gemma2-q4k-dequant-f16a.json +0 -33
  167. package/src/config/presets/runtime/kernels/gemma2-q4k-dequant-f32a-nosubgroups.json +0 -33
  168. package/src/config/presets/runtime/kernels/gemma2-q4k-fused-f32a.json +0 -33
  169. package/src/config/presets/runtime/kernels/safe-q4k.json +0 -13
  170. package/src/config/presets/runtime/model/gemma2-debug.json +0 -77
  171. package/src/config/presets/runtime/model/gemma2-pipeline-debug.json +0 -66
  172. package/src/config/presets/runtime/model/gemma2-pipeline.json +0 -75
  173. package/src/config/presets/runtime/model/gemma3-layer-probe.json +0 -85
  174. package/src/config/presets/runtime/model/qwen3-5-layer-probe.json +0 -52
  175. package/src/config/presets/runtime/model/qwen3-5-linear-attn-debug.json +0 -90
  176. package/src/config/presets/runtime/modes/bench.json +0 -37
  177. package/src/config/presets/runtime/modes/debug.json +0 -39
  178. package/src/config/presets/runtime/modes/default.json +0 -10
  179. package/src/config/presets/runtime/modes/embedding-bench.json +0 -28
  180. package/src/config/presets/runtime/modes/embedding.json +0 -54
  181. package/src/config/presets/runtime/modes/low-memory.json +0 -40
  182. package/src/config/presets/runtime/modes/production.json +0 -48
  183. package/src/config/presets/runtime/modes/simulation.json +0 -30
  184. package/src/config/presets/runtime/modes/trace-layers.json +0 -126
  185. package/src/config/presets/runtime/platform/metal-apple-q4k.json +0 -11
  186. package/src/config/quantization-contract-check.d.ts +0 -12
  187. package/src/config/quantization-contract-check.js +0 -91
  188. package/src/config/required-inference-fields-contract-check.d.ts +0 -24
  189. package/src/config/required-inference-fields-contract-check.js +0 -237
  190. package/src/config/runtime-merge.d.ts +0 -5
  191. package/src/config/runtime-merge.js +0 -21
  192. package/src/config/runtime.d.ts +0 -28
  193. package/src/config/runtime.js +0 -61
  194. package/src/config/schema/adapter.schema.d.ts +0 -53
  195. package/src/config/schema/adapter.schema.js +0 -60
  196. package/src/config/schema/backward-registry.schema.d.ts +0 -14
  197. package/src/config/schema/backward-registry.schema.js +0 -46
  198. package/src/config/schema/benchmark.schema.d.ts +0 -54
  199. package/src/config/schema/benchmark.schema.js +0 -74
  200. package/src/config/schema/bridge.schema.d.ts +0 -25
  201. package/src/config/schema/bridge.schema.js +0 -22
  202. package/src/config/schema/browser-suite-metrics.schema.d.ts +0 -17
  203. package/src/config/schema/browser-suite-metrics.schema.js +0 -46
  204. package/src/config/schema/buffer-pool.schema.d.ts +0 -92
  205. package/src/config/schema/buffer-pool.schema.js +0 -50
  206. package/src/config/schema/conversion-report.schema.d.ts +0 -40
  207. package/src/config/schema/conversion-report.schema.js +0 -108
  208. package/src/config/schema/conversion.schema.d.ts +0 -184
  209. package/src/config/schema/conversion.schema.js +0 -13
  210. package/src/config/schema/converter.schema.d.ts +0 -123
  211. package/src/config/schema/converter.schema.js +0 -136
  212. package/src/config/schema/debug.schema.d.ts +0 -250
  213. package/src/config/schema/debug.schema.js +0 -106
  214. package/src/config/schema/diffusion.schema.d.ts +0 -88
  215. package/src/config/schema/diffusion.schema.js +0 -62
  216. package/src/config/schema/distill-training.schema.d.ts +0 -48
  217. package/src/config/schema/distill-training.schema.js +0 -139
  218. package/src/config/schema/distribution.schema.d.ts +0 -155
  219. package/src/config/schema/distribution.schema.js +0 -81
  220. package/src/config/schema/doppler.schema.d.ts +0 -75
  221. package/src/config/schema/doppler.schema.js +0 -341
  222. package/src/config/schema/ecosystem.schema.d.ts +0 -255
  223. package/src/config/schema/ecosystem.schema.js +0 -534
  224. package/src/config/schema/emulation.schema.d.ts +0 -351
  225. package/src/config/schema/emulation.schema.js +0 -299
  226. package/src/config/schema/energy.schema.d.ts +0 -102
  227. package/src/config/schema/energy.schema.js +0 -72
  228. package/src/config/schema/execution-v0.schema.d.ts +0 -187
  229. package/src/config/schema/execution-v0.schema.js +0 -55
  230. package/src/config/schema/gpu-cache.schema.d.ts +0 -26
  231. package/src/config/schema/gpu-cache.schema.js +0 -8
  232. package/src/config/schema/harness.schema.d.ts +0 -32
  233. package/src/config/schema/harness.schema.js +0 -20
  234. package/src/config/schema/hotswap.schema.d.ts +0 -55
  235. package/src/config/schema/hotswap.schema.js +0 -18
  236. package/src/config/schema/index.d.ts +0 -885
  237. package/src/config/schema/index.js +0 -489
  238. package/src/config/schema/inference-defaults.schema.d.ts +0 -276
  239. package/src/config/schema/inference-defaults.schema.js +0 -188
  240. package/src/config/schema/inference.schema.d.ts +0 -298
  241. package/src/config/schema/inference.schema.js +0 -39
  242. package/src/config/schema/intent-bundle.schema.d.ts +0 -28
  243. package/src/config/schema/intent-bundle.schema.js +0 -12
  244. package/src/config/schema/kernel-path.schema.d.ts +0 -183
  245. package/src/config/schema/kernel-path.schema.js +0 -9
  246. package/src/config/schema/kernel-registry.schema.d.ts +0 -199
  247. package/src/config/schema/kernel-registry.schema.js +0 -46
  248. package/src/config/schema/kernel-thresholds.schema.d.ts +0 -302
  249. package/src/config/schema/kernel-thresholds.schema.js +0 -195
  250. package/src/config/schema/kernel-warmup.schema.d.ts +0 -19
  251. package/src/config/schema/kernel-warmup.schema.js +0 -5
  252. package/src/config/schema/kvcache.schema.d.ts +0 -131
  253. package/src/config/schema/kvcache.schema.js +0 -31
  254. package/src/config/schema/loading.schema.d.ts +0 -153
  255. package/src/config/schema/loading.schema.js +0 -84
  256. package/src/config/schema/lora.schema.d.ts +0 -12
  257. package/src/config/schema/lora.schema.js +0 -12
  258. package/src/config/schema/manifest.schema.d.ts +0 -507
  259. package/src/config/schema/manifest.schema.js +0 -146
  260. package/src/config/schema/memory-limits.schema.d.ts +0 -107
  261. package/src/config/schema/memory-limits.schema.js +0 -57
  262. package/src/config/schema/moe.schema.d.ts +0 -78
  263. package/src/config/schema/moe.schema.js +0 -31
  264. package/src/config/schema/platform.schema.d.ts +0 -121
  265. package/src/config/schema/platform.schema.js +0 -1
  266. package/src/config/schema/preset.schema.d.ts +0 -124
  267. package/src/config/schema/preset.schema.js +0 -1
  268. package/src/config/schema/quantization-defaults.schema.d.ts +0 -34
  269. package/src/config/schema/quantization-defaults.schema.js +0 -5
  270. package/src/config/schema/quantization.schema.d.ts +0 -10
  271. package/src/config/schema/quantization.schema.js +0 -33
  272. package/src/config/schema/shared-runtime.schema.d.ts +0 -75
  273. package/src/config/schema/shared-runtime.schema.js +0 -45
  274. package/src/config/schema/speculative.schema.d.ts +0 -21
  275. package/src/config/schema/speculative.schema.js +0 -11
  276. package/src/config/schema/storage.schema.d.ts +0 -123
  277. package/src/config/schema/storage.schema.js +0 -66
  278. package/src/config/schema/tooling.schema.d.ts +0 -29
  279. package/src/config/schema/tooling.schema.js +0 -12
  280. package/src/config/schema/training-metrics.schema.d.ts +0 -89
  281. package/src/config/schema/training-metrics.schema.js +0 -374
  282. package/src/config/schema/training.schema.d.ts +0 -88
  283. package/src/config/schema/training.schema.js +0 -106
  284. package/src/config/schema/tuner.schema.d.ts +0 -39
  285. package/src/config/schema/tuner.schema.js +0 -13
  286. package/src/config/schema/ul-training.schema.d.ts +0 -61
  287. package/src/config/schema/ul-training.schema.js +0 -140
  288. package/src/config/schema/units.schema.d.ts +0 -27
  289. package/src/config/schema/units.schema.js +0 -26
  290. package/src/config/training-defaults.d.ts +0 -24
  291. package/src/config/training-defaults.js +0 -99
  292. package/src/converter/conversion-plan.d.ts +0 -64
  293. package/src/converter/conversion-plan.js +0 -565
  294. package/src/converter/core.d.ts +0 -264
  295. package/src/converter/core.js +0 -1374
  296. package/src/converter/execution-v0-manifest.d.ts +0 -15
  297. package/src/converter/execution-v0-manifest.js +0 -149
  298. package/src/converter/index.d.ts +0 -99
  299. package/src/converter/index.js +0 -60
  300. package/src/converter/manifest-inference.d.ts +0 -20
  301. package/src/converter/manifest-inference.js +0 -513
  302. package/src/converter/parsers/diffusion.d.ts +0 -50
  303. package/src/converter/parsers/diffusion.js +0 -327
  304. package/src/converter/parsers/gguf.d.ts +0 -22
  305. package/src/converter/parsers/gguf.js +0 -46
  306. package/src/converter/parsers/index.d.ts +0 -21
  307. package/src/converter/parsers/index.js +0 -12
  308. package/src/converter/parsers/transformer.d.ts +0 -16
  309. package/src/converter/parsers/transformer.js +0 -29
  310. package/src/converter/quantization-info.d.ts +0 -37
  311. package/src/converter/quantization-info.js +0 -422
  312. package/src/converter/quantizer.d.ts +0 -96
  313. package/src/converter/quantizer.js +0 -429
  314. package/src/converter/rope-config.d.ts +0 -15
  315. package/src/converter/rope-config.js +0 -262
  316. package/src/converter/shard-packer.d.ts +0 -138
  317. package/src/converter/shard-packer.js +0 -425
  318. package/src/converter/tokenizer-utils.d.ts +0 -12
  319. package/src/converter/tokenizer-utils.js +0 -104
  320. package/src/debug/config.d.ts +0 -78
  321. package/src/debug/config.js +0 -347
  322. package/src/debug/history.d.ts +0 -65
  323. package/src/debug/history.js +0 -71
  324. package/src/debug/index.d.ts +0 -268
  325. package/src/debug/index.js +0 -192
  326. package/src/debug/log.d.ts +0 -46
  327. package/src/debug/log.js +0 -132
  328. package/src/debug/perf.d.ts +0 -33
  329. package/src/debug/perf.js +0 -51
  330. package/src/debug/reference/README.md +0 -114
  331. package/src/debug/reference/hf_attn_debug.py +0 -114
  332. package/src/debug/reference/hf_embed_check.py +0 -89
  333. package/src/debug/reference/hf_layer_out.py +0 -100
  334. package/src/debug/reference/hf_qwen35_linear_attn_debug.py +0 -268
  335. package/src/debug/reference/hf_rope_check.py +0 -116
  336. package/src/debug/reference/hf_weights.py +0 -75
  337. package/src/debug/signals.d.ts +0 -63
  338. package/src/debug/signals.js +0 -39
  339. package/src/debug/stats.d.ts +0 -47
  340. package/src/debug/stats.js +0 -160
  341. package/src/debug/tensor.d.ts +0 -125
  342. package/src/debug/tensor.js +0 -268
  343. package/src/debug/trace.d.ts +0 -17
  344. package/src/debug/trace.js +0 -167
  345. package/src/diffusion/image-regression.d.ts +0 -31
  346. package/src/diffusion/image-regression.js +0 -107
  347. package/src/diffusion/index.d.ts +0 -8
  348. package/src/diffusion/index.js +0 -8
  349. package/src/distribution/p2p-control-plane.d.ts +0 -52
  350. package/src/distribution/p2p-control-plane.js +0 -272
  351. package/src/distribution/p2p-observability.d.ts +0 -116
  352. package/src/distribution/p2p-observability.js +0 -303
  353. package/src/distribution/p2p-transport-contract.d.ts +0 -57
  354. package/src/distribution/p2p-transport-contract.js +0 -310
  355. package/src/distribution/p2p-webrtc-browser.d.ts +0 -37
  356. package/src/distribution/p2p-webrtc-browser.js +0 -454
  357. package/src/distribution/shard-delivery.d.ts +0 -251
  358. package/src/distribution/shard-delivery.js +0 -2152
  359. package/src/energy/index.d.ts +0 -2
  360. package/src/energy/index.js +0 -2
  361. package/src/errors/doppler-error.d.ts +0 -21
  362. package/src/errors/doppler-error.js +0 -25
  363. package/src/errors/index.d.ts +0 -1
  364. package/src/errors/index.js +0 -1
  365. package/src/formats/gguf/index.d.ts +0 -8
  366. package/src/formats/gguf/index.js +0 -4
  367. package/src/formats/gguf/types.d.ts +0 -137
  368. package/src/formats/gguf/types.js +0 -460
  369. package/src/formats/index.d.ts +0 -51
  370. package/src/formats/index.js +0 -13
  371. package/src/formats/rdrr/classification.d.ts +0 -39
  372. package/src/formats/rdrr/classification.js +0 -275
  373. package/src/formats/rdrr/groups.d.ts +0 -35
  374. package/src/formats/rdrr/groups.js +0 -73
  375. package/src/formats/rdrr/index.d.ts +0 -25
  376. package/src/formats/rdrr/index.js +0 -19
  377. package/src/formats/rdrr/manifest.d.ts +0 -32
  378. package/src/formats/rdrr/manifest.js +0 -108
  379. package/src/formats/rdrr/parsing.d.ts +0 -27
  380. package/src/formats/rdrr/parsing.js +0 -151
  381. package/src/formats/rdrr/tensor-config-validator.d.ts +0 -42
  382. package/src/formats/rdrr/tensor-config-validator.js +0 -156
  383. package/src/formats/rdrr/types.d.ts +0 -201
  384. package/src/formats/rdrr/types.js +0 -16
  385. package/src/formats/rdrr/validation.d.ts +0 -9
  386. package/src/formats/rdrr/validation.js +0 -213
  387. package/src/formats/safetensors/index.d.ts +0 -8
  388. package/src/formats/safetensors/index.js +0 -4
  389. package/src/formats/safetensors/types.d.ts +0 -67
  390. package/src/formats/safetensors/types.js +0 -102
  391. package/src/formats/tokenizer/index.d.ts +0 -5
  392. package/src/formats/tokenizer/index.js +0 -3
  393. package/src/formats/tokenizer/types.d.ts +0 -9
  394. package/src/formats/tokenizer/types.js +0 -22
  395. package/src/generation/index.d.ts +0 -18
  396. package/src/generation/index.js +0 -12
  397. package/src/gpu/command-recorder.d.ts +0 -175
  398. package/src/gpu/command-recorder.js +0 -498
  399. package/src/gpu/device.d.ts +0 -142
  400. package/src/gpu/device.js +0 -462
  401. package/src/gpu/kernel-runtime.d.ts +0 -20
  402. package/src/gpu/kernel-runtime.js +0 -37
  403. package/src/gpu/kernel-selection-cache.d.ts +0 -13
  404. package/src/gpu/kernel-selection-cache.js +0 -13
  405. package/src/gpu/kernel-selection-log.d.ts +0 -12
  406. package/src/gpu/kernel-selection-log.js +0 -28
  407. package/src/gpu/kernel-selector.d.ts +0 -11
  408. package/src/gpu/kernel-selector.js +0 -10
  409. package/src/gpu/kernel-tuner/benchmarks.d.ts +0 -144
  410. package/src/gpu/kernel-tuner/benchmarks.js +0 -902
  411. package/src/gpu/kernel-tuner/cache.d.ts +0 -55
  412. package/src/gpu/kernel-tuner/cache.js +0 -133
  413. package/src/gpu/kernel-tuner/index.d.ts +0 -59
  414. package/src/gpu/kernel-tuner/index.js +0 -38
  415. package/src/gpu/kernel-tuner/tuner.d.ts +0 -82
  416. package/src/gpu/kernel-tuner/tuner.js +0 -247
  417. package/src/gpu/kernel-tuner/types.d.ts +0 -101
  418. package/src/gpu/kernel-tuner/types.js +0 -4
  419. package/src/gpu/kernel-tuner.d.ts +0 -33
  420. package/src/gpu/kernel-tuner.js +0 -12
  421. package/src/gpu/kernels/README.md +0 -127
  422. package/src/gpu/kernels/attention.d.ts +0 -236
  423. package/src/gpu/kernels/attention.js +0 -1438
  424. package/src/gpu/kernels/attention.wgsl +0 -249
  425. package/src/gpu/kernels/attention_bdpa_decode_f16.wgsl +0 -246
  426. package/src/gpu/kernels/attention_decode.wgsl +0 -233
  427. package/src/gpu/kernels/attention_decode_chunked_f16.wgsl +0 -183
  428. package/src/gpu/kernels/attention_decode_chunked_f16kv.wgsl +0 -208
  429. package/src/gpu/kernels/attention_decode_f16.wgsl +0 -202
  430. package/src/gpu/kernels/attention_decode_f16kv.wgsl +0 -224
  431. package/src/gpu/kernels/attention_decode_online_f16.wgsl +0 -223
  432. package/src/gpu/kernels/attention_decode_online_f16kv.wgsl +0 -225
  433. package/src/gpu/kernels/attention_decode_optimized.wgsl +0 -445
  434. package/src/gpu/kernels/attention_decode_paged_f16.wgsl +0 -172
  435. package/src/gpu/kernels/attention_decode_paged_f16kv.wgsl +0 -174
  436. package/src/gpu/kernels/attention_decode_subgroup.wgsl +0 -233
  437. package/src/gpu/kernels/attention_decode_tiered_f16.wgsl +0 -218
  438. package/src/gpu/kernels/attention_decode_tiered_f16kv.wgsl +0 -220
  439. package/src/gpu/kernels/attention_decode_tiered_int4_f16kv.wgsl +0 -242
  440. package/src/gpu/kernels/attention_decode_tiered_int8_f16kv.wgsl +0 -242
  441. package/src/gpu/kernels/attention_f16.wgsl +0 -214
  442. package/src/gpu/kernels/attention_f16kv.wgsl +0 -242
  443. package/src/gpu/kernels/attention_small.wgsl +0 -260
  444. package/src/gpu/kernels/attention_small_f16.wgsl +0 -240
  445. package/src/gpu/kernels/attention_small_f16kv.wgsl +0 -266
  446. package/src/gpu/kernels/attention_streaming.wgsl +0 -149
  447. package/src/gpu/kernels/attention_streaming_f16.wgsl +0 -147
  448. package/src/gpu/kernels/attention_streaming_f16kv.wgsl +0 -151
  449. package/src/gpu/kernels/backward/adam.d.ts +0 -28
  450. package/src/gpu/kernels/backward/adam.js +0 -203
  451. package/src/gpu/kernels/backward/adam.wgsl +0 -50
  452. package/src/gpu/kernels/backward/attention_backward.d.ts +0 -22
  453. package/src/gpu/kernels/backward/attention_backward.js +0 -364
  454. package/src/gpu/kernels/backward/attention_backward.wgsl +0 -49
  455. package/src/gpu/kernels/backward/bias_add_backward.d.ts +0 -17
  456. package/src/gpu/kernels/backward/bias_add_backward.js +0 -24
  457. package/src/gpu/kernels/backward/bias_add_backward.wgsl +0 -33
  458. package/src/gpu/kernels/backward/conv2d_backward.d.ts +0 -31
  459. package/src/gpu/kernels/backward/conv2d_backward.js +0 -148
  460. package/src/gpu/kernels/backward/conv2d_backward_input.wgsl +0 -83
  461. package/src/gpu/kernels/backward/conv2d_backward_weight.wgsl +0 -70
  462. package/src/gpu/kernels/backward/cross_entropy_backward.d.ts +0 -23
  463. package/src/gpu/kernels/backward/cross_entropy_backward.js +0 -29
  464. package/src/gpu/kernels/backward/cross_entropy_backward.wgsl +0 -39
  465. package/src/gpu/kernels/backward/embed_backward.d.ts +0 -29
  466. package/src/gpu/kernels/backward/embed_backward.js +0 -118
  467. package/src/gpu/kernels/backward/embed_backward.wgsl +0 -73
  468. package/src/gpu/kernels/backward/gelu_backward.d.ts +0 -16
  469. package/src/gpu/kernels/backward/gelu_backward.js +0 -39
  470. package/src/gpu/kernels/backward/gelu_backward.wgsl +0 -38
  471. package/src/gpu/kernels/backward/groupnorm_backward.d.ts +0 -24
  472. package/src/gpu/kernels/backward/groupnorm_backward.js +0 -29
  473. package/src/gpu/kernels/backward/groupnorm_backward.wgsl +0 -143
  474. package/src/gpu/kernels/backward/index.d.ts +0 -17
  475. package/src/gpu/kernels/backward/index.js +0 -23
  476. package/src/gpu/kernels/backward/layernorm_backward.d.ts +0 -22
  477. package/src/gpu/kernels/backward/layernorm_backward.js +0 -135
  478. package/src/gpu/kernels/backward/layernorm_backward.wgsl +0 -194
  479. package/src/gpu/kernels/backward/matmul_backward.d.ts +0 -32
  480. package/src/gpu/kernels/backward/matmul_backward.js +0 -124
  481. package/src/gpu/kernels/backward/matmul_backward.wgsl +0 -90
  482. package/src/gpu/kernels/backward/matmul_transpose_a.wgsl +0 -84
  483. package/src/gpu/kernels/backward/pixel_shuffle_backward.d.ts +0 -22
  484. package/src/gpu/kernels/backward/pixel_shuffle_backward.js +0 -30
  485. package/src/gpu/kernels/backward/pixel_shuffle_backward.wgsl +0 -54
  486. package/src/gpu/kernels/backward/rmsnorm_backward.d.ts +0 -24
  487. package/src/gpu/kernels/backward/rmsnorm_backward.js +0 -101
  488. package/src/gpu/kernels/backward/rmsnorm_backward.wgsl +0 -78
  489. package/src/gpu/kernels/backward/rope_backward.d.ts +0 -25
  490. package/src/gpu/kernels/backward/rope_backward.js +0 -109
  491. package/src/gpu/kernels/backward/rope_backward.wgsl +0 -59
  492. package/src/gpu/kernels/backward/scale_backward.d.ts +0 -16
  493. package/src/gpu/kernels/backward/scale_backward.js +0 -84
  494. package/src/gpu/kernels/backward/scale_backward.wgsl +0 -27
  495. package/src/gpu/kernels/backward/silu_backward.d.ts +0 -16
  496. package/src/gpu/kernels/backward/silu_backward.js +0 -39
  497. package/src/gpu/kernels/backward/silu_backward.wgsl +0 -31
  498. package/src/gpu/kernels/backward/softmax_backward.d.ts +0 -16
  499. package/src/gpu/kernels/backward/softmax_backward.js +0 -43
  500. package/src/gpu/kernels/backward/softmax_backward.wgsl +0 -44
  501. package/src/gpu/kernels/backward/upsample2d_backward.d.ts +0 -21
  502. package/src/gpu/kernels/backward/upsample2d_backward.js +0 -30
  503. package/src/gpu/kernels/backward/upsample2d_backward.wgsl +0 -59
  504. package/src/gpu/kernels/backward/utils.d.ts +0 -45
  505. package/src/gpu/kernels/backward/utils.js +0 -371
  506. package/src/gpu/kernels/bf16_to_f16.wgsl +0 -54
  507. package/src/gpu/kernels/bf16_to_f32.wgsl +0 -70
  508. package/src/gpu/kernels/bias_add.wgsl +0 -42
  509. package/src/gpu/kernels/bias_add_f16.wgsl +0 -47
  510. package/src/gpu/kernels/cast.d.ts +0 -67
  511. package/src/gpu/kernels/cast.js +0 -464
  512. package/src/gpu/kernels/cast_f16_to_f32.wgsl +0 -31
  513. package/src/gpu/kernels/cast_f32_to_f16.wgsl +0 -36
  514. package/src/gpu/kernels/check-finiteness.d.ts +0 -15
  515. package/src/gpu/kernels/check-finiteness.js +0 -149
  516. package/src/gpu/kernels/check-stop.d.ts +0 -31
  517. package/src/gpu/kernels/check-stop.js +0 -170
  518. package/src/gpu/kernels/clamp.d.ts +0 -22
  519. package/src/gpu/kernels/clamp.js +0 -42
  520. package/src/gpu/kernels/clamp.wgsl +0 -24
  521. package/src/gpu/kernels/constants.d.ts +0 -168
  522. package/src/gpu/kernels/constants.js +0 -129
  523. package/src/gpu/kernels/conv2d.d.ts +0 -34
  524. package/src/gpu/kernels/conv2d.js +0 -91
  525. package/src/gpu/kernels/conv2d.wgsl +0 -70
  526. package/src/gpu/kernels/conv2d_f16.wgsl +0 -72
  527. package/src/gpu/kernels/cross_entropy_loss.d.ts +0 -21
  528. package/src/gpu/kernels/cross_entropy_loss.js +0 -60
  529. package/src/gpu/kernels/cross_entropy_loss.wgsl +0 -39
  530. package/src/gpu/kernels/depthwise_conv2d.d.ts +0 -29
  531. package/src/gpu/kernels/depthwise_conv2d.js +0 -109
  532. package/src/gpu/kernels/depthwise_conv2d.wgsl +0 -55
  533. package/src/gpu/kernels/depthwise_conv2d_f16.wgsl +0 -59
  534. package/src/gpu/kernels/dequant.d.ts +0 -108
  535. package/src/gpu/kernels/dequant.js +0 -576
  536. package/src/gpu/kernels/dequant_f16_out.wgsl +0 -151
  537. package/src/gpu/kernels/dequant_f16_out_vec4.wgsl +0 -149
  538. package/src/gpu/kernels/dequant_f16_rowwise.wgsl +0 -139
  539. package/src/gpu/kernels/dequant_f32_rowwise.wgsl +0 -133
  540. package/src/gpu/kernels/dequant_mxfp4.wgsl +0 -120
  541. package/src/gpu/kernels/dequant_mxfp4_expert.wgsl +0 -129
  542. package/src/gpu/kernels/dequant_mxfp4_expert_f16.wgsl +0 -105
  543. package/src/gpu/kernels/dequant_mxfp4_vec4.wgsl +0 -116
  544. package/src/gpu/kernels/dequant_q6k.wgsl +0 -140
  545. package/src/gpu/kernels/dequant_q8_0.wgsl +0 -98
  546. package/src/gpu/kernels/dequant_shared.wgsl +0 -202
  547. package/src/gpu/kernels/dequant_shared_vec4.wgsl +0 -153
  548. package/src/gpu/kernels/dequant_subgroup.wgsl +0 -202
  549. package/src/gpu/kernels/dispatch.d.ts +0 -157
  550. package/src/gpu/kernels/dispatch.js +0 -235
  551. package/src/gpu/kernels/energy.d.ts +0 -113
  552. package/src/gpu/kernels/energy.js +0 -448
  553. package/src/gpu/kernels/energy_eval.wgsl +0 -26
  554. package/src/gpu/kernels/energy_eval_f16.wgsl +0 -30
  555. package/src/gpu/kernels/energy_quintel_grad.wgsl +0 -92
  556. package/src/gpu/kernels/energy_quintel_grad_f16.wgsl +0 -96
  557. package/src/gpu/kernels/energy_quintel_reduce.wgsl +0 -112
  558. package/src/gpu/kernels/energy_quintel_reduce_f16.wgsl +0 -116
  559. package/src/gpu/kernels/energy_quintel_update.wgsl +0 -92
  560. package/src/gpu/kernels/energy_quintel_update_f16.wgsl +0 -96
  561. package/src/gpu/kernels/energy_update.wgsl +0 -25
  562. package/src/gpu/kernels/energy_update_f16.wgsl +0 -30
  563. package/src/gpu/kernels/feature-check.d.ts +0 -42
  564. package/src/gpu/kernels/feature-check.js +0 -70
  565. package/src/gpu/kernels/fused_ffn.d.ts +0 -65
  566. package/src/gpu/kernels/fused_ffn.js +0 -337
  567. package/src/gpu/kernels/fused_ffn.wgsl +0 -420
  568. package/src/gpu/kernels/fused_ffn_f16.wgsl +0 -213
  569. package/src/gpu/kernels/fused_ffn_q4k.wgsl +0 -375
  570. package/src/gpu/kernels/fused_matmul_q4.wgsl +0 -404
  571. package/src/gpu/kernels/fused_matmul_q4_batched.wgsl +0 -194
  572. package/src/gpu/kernels/fused_matmul_q4_batched_f16.wgsl +0 -170
  573. package/src/gpu/kernels/fused_matmul_q4_batched_f16a.wgsl +0 -154
  574. package/src/gpu/kernels/fused_matmul_q4_f16a.wgsl +0 -219
  575. package/src/gpu/kernels/fused_matmul_q4_multicol_f16.wgsl +0 -216
  576. package/src/gpu/kernels/fused_matmul_q4_multicol_f16a.wgsl +0 -204
  577. package/src/gpu/kernels/fused_matmul_residual.d.ts +0 -46
  578. package/src/gpu/kernels/fused_matmul_residual.js +0 -175
  579. package/src/gpu/kernels/fused_matmul_rmsnorm.d.ts +0 -64
  580. package/src/gpu/kernels/fused_matmul_rmsnorm.js +0 -290
  581. package/src/gpu/kernels/fused_matmul_rmsnorm.wgsl +0 -324
  582. package/src/gpu/kernels/fused_matmul_rmsnorm_f16.wgsl +0 -303
  583. package/src/gpu/kernels/fused_swiglu.wgsl +0 -63
  584. package/src/gpu/kernels/fused_swiglu_f16.wgsl +0 -57
  585. package/src/gpu/kernels/gather.d.ts +0 -64
  586. package/src/gpu/kernels/gather.js +0 -137
  587. package/src/gpu/kernels/gather.wgsl +0 -61
  588. package/src/gpu/kernels/gather_f16.wgsl +0 -65
  589. package/src/gpu/kernels/gather_f16_f16_out.wgsl +0 -55
  590. package/src/gpu/kernels/gather_f16_out.wgsl +0 -55
  591. package/src/gpu/kernels/gather_f16_vec4.wgsl +0 -76
  592. package/src/gpu/kernels/gather_f16_vec4_f16_out.wgsl +0 -68
  593. package/src/gpu/kernels/gather_vec4.wgsl +0 -74
  594. package/src/gpu/kernels/gather_vec4_f16_out.wgsl +0 -68
  595. package/src/gpu/kernels/gelu.d.ts +0 -33
  596. package/src/gpu/kernels/gelu.js +0 -55
  597. package/src/gpu/kernels/gelu.wgsl +0 -64
  598. package/src/gpu/kernels/gelu_f16.wgsl +0 -66
  599. package/src/gpu/kernels/gptoss_mxfp4_expert_fused.wgsl +0 -127
  600. package/src/gpu/kernels/gptoss_router_topk.wgsl +0 -119
  601. package/src/gpu/kernels/grouped_pointwise_conv2d.d.ts +0 -27
  602. package/src/gpu/kernels/grouped_pointwise_conv2d.js +0 -103
  603. package/src/gpu/kernels/grouped_pointwise_conv2d.wgsl +0 -44
  604. package/src/gpu/kernels/grouped_pointwise_conv2d_f16.wgsl +0 -48
  605. package/src/gpu/kernels/groupnorm.d.ts +0 -31
  606. package/src/gpu/kernels/groupnorm.js +0 -102
  607. package/src/gpu/kernels/groupnorm_apply.wgsl +0 -41
  608. package/src/gpu/kernels/groupnorm_apply_f16.wgsl +0 -46
  609. package/src/gpu/kernels/groupnorm_stats.wgsl +0 -76
  610. package/src/gpu/kernels/groupnorm_stats_f16.wgsl +0 -79
  611. package/src/gpu/kernels/index.d.ts +0 -374
  612. package/src/gpu/kernels/index.js +0 -315
  613. package/src/gpu/kernels/kernel-base.d.ts +0 -33
  614. package/src/gpu/kernels/kernel-base.js +0 -46
  615. package/src/gpu/kernels/kernel-configs.d.ts +0 -65
  616. package/src/gpu/kernels/kernel-configs.js +0 -50
  617. package/src/gpu/kernels/kernel-tuning.d.ts +0 -42
  618. package/src/gpu/kernels/kernel-tuning.js +0 -149
  619. package/src/gpu/kernels/kv-quantize.d.ts +0 -37
  620. package/src/gpu/kernels/kv-quantize.js +0 -141
  621. package/src/gpu/kernels/kv_quantize_int4.wgsl +0 -119
  622. package/src/gpu/kernels/kv_quantize_int8.wgsl +0 -119
  623. package/src/gpu/kernels/layernorm.d.ts +0 -37
  624. package/src/gpu/kernels/layernorm.js +0 -96
  625. package/src/gpu/kernels/layernorm.wgsl +0 -121
  626. package/src/gpu/kernels/layernorm_f16.wgsl +0 -103
  627. package/src/gpu/kernels/linear-attention-core.d.ts +0 -39
  628. package/src/gpu/kernels/linear-attention-core.js +0 -535
  629. package/src/gpu/kernels/logit-merge.d.ts +0 -110
  630. package/src/gpu/kernels/logit-merge.js +0 -394
  631. package/src/gpu/kernels/matmul-dispatch.d.ts +0 -38
  632. package/src/gpu/kernels/matmul-dispatch.js +0 -155
  633. package/src/gpu/kernels/matmul-selection.d.ts +0 -87
  634. package/src/gpu/kernels/matmul-selection.js +0 -517
  635. package/src/gpu/kernels/matmul.d.ts +0 -111
  636. package/src/gpu/kernels/matmul.js +0 -315
  637. package/src/gpu/kernels/matmul_f16.wgsl +0 -170
  638. package/src/gpu/kernels/matmul_f16_tiled.wgsl +0 -165
  639. package/src/gpu/kernels/matmul_f16w_f32a.wgsl +0 -89
  640. package/src/gpu/kernels/matmul_f16w_f32a_tiled.wgsl +0 -154
  641. package/src/gpu/kernels/matmul_f32.wgsl +0 -100
  642. package/src/gpu/kernels/matmul_gemv.wgsl +0 -80
  643. package/src/gpu/kernels/matmul_gemv_f16a.wgsl +0 -81
  644. package/src/gpu/kernels/matmul_gemv_residual.wgsl +0 -119
  645. package/src/gpu/kernels/matmul_gemv_residual_f16.wgsl +0 -78
  646. package/src/gpu/kernels/matmul_gemv_subgroup.wgsl +0 -345
  647. package/src/gpu/kernels/matmul_gemv_subgroup_f16a.wgsl +0 -514
  648. package/src/gpu/kernels/modulate.d.ts +0 -29
  649. package/src/gpu/kernels/modulate.js +0 -57
  650. package/src/gpu/kernels/modulate.wgsl +0 -40
  651. package/src/gpu/kernels/modulate_f16.wgsl +0 -43
  652. package/src/gpu/kernels/moe.d.ts +0 -164
  653. package/src/gpu/kernels/moe.js +0 -542
  654. package/src/gpu/kernels/moe_gather.wgsl +0 -170
  655. package/src/gpu/kernels/moe_gather_f16.wgsl +0 -82
  656. package/src/gpu/kernels/moe_gather_vec4.wgsl +0 -74
  657. package/src/gpu/kernels/moe_offsets.wgsl +0 -48
  658. package/src/gpu/kernels/pipeline-cache.d.ts +0 -88
  659. package/src/gpu/kernels/pipeline-cache.js +0 -305
  660. package/src/gpu/kernels/pixel_shuffle.d.ts +0 -27
  661. package/src/gpu/kernels/pixel_shuffle.js +0 -57
  662. package/src/gpu/kernels/pixel_shuffle.wgsl +0 -43
  663. package/src/gpu/kernels/pixel_shuffle_f16.wgsl +0 -46
  664. package/src/gpu/kernels/relu.d.ts +0 -18
  665. package/src/gpu/kernels/relu.js +0 -66
  666. package/src/gpu/kernels/relu.wgsl +0 -22
  667. package/src/gpu/kernels/relu_f16.wgsl +0 -24
  668. package/src/gpu/kernels/repeat_channels.d.ts +0 -21
  669. package/src/gpu/kernels/repeat_channels.js +0 -68
  670. package/src/gpu/kernels/repeat_channels.wgsl +0 -28
  671. package/src/gpu/kernels/repeat_channels_f16.wgsl +0 -30
  672. package/src/gpu/kernels/residual.d.ts +0 -74
  673. package/src/gpu/kernels/residual.js +0 -173
  674. package/src/gpu/kernels/residual.wgsl +0 -56
  675. package/src/gpu/kernels/residual_f16.wgsl +0 -36
  676. package/src/gpu/kernels/residual_f16_vec4.wgsl +0 -48
  677. package/src/gpu/kernels/residual_vec4.wgsl +0 -47
  678. package/src/gpu/kernels/rmsnorm.d.ts +0 -53
  679. package/src/gpu/kernels/rmsnorm.js +0 -215
  680. package/src/gpu/kernels/rmsnorm.wgsl +0 -425
  681. package/src/gpu/kernels/rmsnorm_f16.wgsl +0 -172
  682. package/src/gpu/kernels/rope.d.ts +0 -50
  683. package/src/gpu/kernels/rope.js +0 -66
  684. package/src/gpu/kernels/rope.wgsl +0 -344
  685. package/src/gpu/kernels/rope_f16.wgsl +0 -271
  686. package/src/gpu/kernels/rule-matcher.d.ts +0 -30
  687. package/src/gpu/kernels/rule-matcher.js +0 -42
  688. package/src/gpu/kernels/rule-registry.d.ts +0 -7
  689. package/src/gpu/kernels/rule-registry.js +0 -41
  690. package/src/gpu/kernels/sample.d.ts +0 -75
  691. package/src/gpu/kernels/sample.js +0 -567
  692. package/src/gpu/kernels/sample.wgsl +0 -377
  693. package/src/gpu/kernels/sample_f16.wgsl +0 -331
  694. package/src/gpu/kernels/sana_linear_attention.d.ts +0 -27
  695. package/src/gpu/kernels/sana_linear_attention.js +0 -129
  696. package/src/gpu/kernels/sana_linear_attention_apply.wgsl +0 -43
  697. package/src/gpu/kernels/sana_linear_attention_apply_f16.wgsl +0 -46
  698. package/src/gpu/kernels/sana_linear_attention_summary.wgsl +0 -51
  699. package/src/gpu/kernels/sana_linear_attention_summary_f16.wgsl +0 -53
  700. package/src/gpu/kernels/scale.d.ts +0 -35
  701. package/src/gpu/kernels/scale.js +0 -44
  702. package/src/gpu/kernels/scale.wgsl +0 -38
  703. package/src/gpu/kernels/scatter_add.wgsl +0 -88
  704. package/src/gpu/kernels/scatter_add_dynamic.wgsl +0 -59
  705. package/src/gpu/kernels/scatter_add_dynamic_f16.wgsl +0 -52
  706. package/src/gpu/kernels/scatter_add_dynamic_f16_weights.wgsl +0 -50
  707. package/src/gpu/kernels/scatter_add_vec4.wgsl +0 -70
  708. package/src/gpu/kernels/shader-cache.d.ts +0 -56
  709. package/src/gpu/kernels/shader-cache.js +0 -208
  710. package/src/gpu/kernels/silu.d.ts +0 -76
  711. package/src/gpu/kernels/silu.js +0 -406
  712. package/src/gpu/kernels/silu.wgsl +0 -109
  713. package/src/gpu/kernels/silu_f16.wgsl +0 -108
  714. package/src/gpu/kernels/softmax.d.ts +0 -57
  715. package/src/gpu/kernels/softmax.js +0 -125
  716. package/src/gpu/kernels/softmax.wgsl +0 -388
  717. package/src/gpu/kernels/softmax_subgroup.wgsl +0 -175
  718. package/src/gpu/kernels/split_qg.d.ts +0 -50
  719. package/src/gpu/kernels/split_qg.js +0 -46
  720. package/src/gpu/kernels/split_qg.wgsl +0 -58
  721. package/src/gpu/kernels/split_qg_f16.wgsl +0 -62
  722. package/src/gpu/kernels/split_qkv.d.ts +0 -51
  723. package/src/gpu/kernels/split_qkv.js +0 -51
  724. package/src/gpu/kernels/split_qkv.wgsl +0 -71
  725. package/src/gpu/kernels/split_qkv_f16.wgsl +0 -75
  726. package/src/gpu/kernels/topk.wgsl +0 -243
  727. package/src/gpu/kernels/topk_f16.wgsl +0 -108
  728. package/src/gpu/kernels/topk_f16_weights.wgsl +0 -101
  729. package/src/gpu/kernels/transpose.d.ts +0 -21
  730. package/src/gpu/kernels/transpose.js +0 -51
  731. package/src/gpu/kernels/transpose.wgsl +0 -33
  732. package/src/gpu/kernels/types.d.ts +0 -21
  733. package/src/gpu/kernels/types.js +0 -4
  734. package/src/gpu/kernels/uniform-utils.d.ts +0 -48
  735. package/src/gpu/kernels/uniform-utils.js +0 -94
  736. package/src/gpu/kernels/upsample2d.d.ts +0 -25
  737. package/src/gpu/kernels/upsample2d.js +0 -67
  738. package/src/gpu/kernels/upsample2d.wgsl +0 -34
  739. package/src/gpu/kernels/upsample2d_f16.wgsl +0 -38
  740. package/src/gpu/kernels/utils.d.ts +0 -106
  741. package/src/gpu/kernels/utils.js +0 -246
  742. package/src/gpu/multi-model-recorder.d.ts +0 -21
  743. package/src/gpu/multi-model-recorder.js +0 -31
  744. package/src/gpu/partitioned-buffer-pool.d.ts +0 -28
  745. package/src/gpu/partitioned-buffer-pool.js +0 -57
  746. package/src/gpu/perf-guards.d.ts +0 -25
  747. package/src/gpu/perf-guards.js +0 -133
  748. package/src/gpu/profiler.d.ts +0 -114
  749. package/src/gpu/profiler.js +0 -396
  750. package/src/gpu/readback-utils.d.ts +0 -16
  751. package/src/gpu/readback-utils.js +0 -41
  752. package/src/gpu/submit-tracker.d.ts +0 -111
  753. package/src/gpu/submit-tracker.js +0 -242
  754. package/src/gpu/tensor.d.ts +0 -69
  755. package/src/gpu/tensor.js +0 -75
  756. package/src/gpu/uniform-cache.d.ts +0 -109
  757. package/src/gpu/uniform-cache.js +0 -263
  758. package/src/gpu/weight-buffer.d.ts +0 -115
  759. package/src/gpu/weight-buffer.js +0 -118
  760. package/src/hotswap/intent-bundle.d.ts +0 -37
  761. package/src/hotswap/intent-bundle.js +0 -129
  762. package/src/hotswap/manifest.d.ts +0 -42
  763. package/src/hotswap/manifest.js +0 -124
  764. package/src/hotswap/runtime.d.ts +0 -31
  765. package/src/hotswap/runtime.js +0 -150
  766. package/src/index-browser.d.ts +0 -92
  767. package/src/index-browser.js +0 -68
  768. package/src/index-internal.d.ts +0 -2
  769. package/src/index-internal.js +0 -2
  770. package/src/index.d.ts +0 -103
  771. package/src/index.js +0 -76
  772. package/src/inference/README.md +0 -593
  773. package/src/inference/browser-harness-contract-helpers.d.ts +0 -5
  774. package/src/inference/browser-harness-contract-helpers.js +0 -28
  775. package/src/inference/browser-harness-diffusion-energy-suites.d.ts +0 -2
  776. package/src/inference/browser-harness-diffusion-energy-suites.js +0 -269
  777. package/src/inference/browser-harness-model-helpers.d.ts +0 -16
  778. package/src/inference/browser-harness-model-helpers.js +0 -217
  779. package/src/inference/browser-harness-report-helpers.d.ts +0 -7
  780. package/src/inference/browser-harness-report-helpers.js +0 -42
  781. package/src/inference/browser-harness-runtime-helpers.d.ts +0 -61
  782. package/src/inference/browser-harness-runtime-helpers.js +0 -415
  783. package/src/inference/browser-harness-suite-helpers.d.ts +0 -28
  784. package/src/inference/browser-harness-suite-helpers.js +0 -268
  785. package/src/inference/browser-harness-text-helpers.d.ts +0 -27
  786. package/src/inference/browser-harness-text-helpers.js +0 -788
  787. package/src/inference/browser-harness.d.ts +0 -242
  788. package/src/inference/browser-harness.js +0 -990
  789. package/src/inference/decode-buffers.d.ts +0 -108
  790. package/src/inference/decode-buffers.js +0 -181
  791. package/src/inference/decode-ring.d.ts +0 -52
  792. package/src/inference/decode-ring.js +0 -273
  793. package/src/inference/expert-router.d.ts +0 -27
  794. package/src/inference/expert-router.js +0 -55
  795. package/src/inference/functiongemma.d.ts +0 -15
  796. package/src/inference/functiongemma.js +0 -1
  797. package/src/inference/kv-cache/base.d.ts +0 -150
  798. package/src/inference/kv-cache/base.js +0 -1083
  799. package/src/inference/kv-cache/basis-decomposed-paged.d.ts +0 -50
  800. package/src/inference/kv-cache/basis-decomposed-paged.js +0 -276
  801. package/src/inference/kv-cache/index.d.ts +0 -35
  802. package/src/inference/kv-cache/index.js +0 -20
  803. package/src/inference/kv-cache/sliding-window.d.ts +0 -72
  804. package/src/inference/kv-cache/sliding-window.js +0 -243
  805. package/src/inference/kv-cache/tiered.d.ts +0 -89
  806. package/src/inference/kv-cache/tiered.js +0 -576
  807. package/src/inference/kv-cache/types.d.ts +0 -188
  808. package/src/inference/kv-cache/types.js +0 -80
  809. package/src/inference/kv-cache.d.ts +0 -36
  810. package/src/inference/kv-cache.js +0 -18
  811. package/src/inference/moe-router.d.ts +0 -212
  812. package/src/inference/moe-router.js +0 -585
  813. package/src/inference/multi-model-network.d.ts +0 -139
  814. package/src/inference/multi-model-network.js +0 -771
  815. package/src/inference/multi-pipeline-pool.d.ts +0 -62
  816. package/src/inference/multi-pipeline-pool.js +0 -161
  817. package/src/inference/network-evolution.d.ts +0 -55
  818. package/src/inference/network-evolution.js +0 -79
  819. package/src/inference/pipelines/context.d.ts +0 -21
  820. package/src/inference/pipelines/context.js +0 -184
  821. package/src/inference/pipelines/diffusion/helpers.d.ts +0 -29
  822. package/src/inference/pipelines/diffusion/helpers.js +0 -120
  823. package/src/inference/pipelines/diffusion/index.d.ts +0 -3
  824. package/src/inference/pipelines/diffusion/index.js +0 -3
  825. package/src/inference/pipelines/diffusion/init.d.ts +0 -24
  826. package/src/inference/pipelines/diffusion/init.js +0 -138
  827. package/src/inference/pipelines/diffusion/pipeline.d.ts +0 -38
  828. package/src/inference/pipelines/diffusion/pipeline.js +0 -771
  829. package/src/inference/pipelines/diffusion/sana-transformer.d.ts +0 -53
  830. package/src/inference/pipelines/diffusion/sana-transformer.js +0 -738
  831. package/src/inference/pipelines/diffusion/scheduler.d.ts +0 -35
  832. package/src/inference/pipelines/diffusion/scheduler.js +0 -153
  833. package/src/inference/pipelines/diffusion/sd3-transformer.d.ts +0 -20
  834. package/src/inference/pipelines/diffusion/sd3-transformer.js +0 -1194
  835. package/src/inference/pipelines/diffusion/sd3-weights.d.ts +0 -21
  836. package/src/inference/pipelines/diffusion/sd3-weights.js +0 -287
  837. package/src/inference/pipelines/diffusion/text-encoder-gpu.d.ts +0 -87
  838. package/src/inference/pipelines/diffusion/text-encoder-gpu.js +0 -1223
  839. package/src/inference/pipelines/diffusion/text-encoder.d.ts +0 -29
  840. package/src/inference/pipelines/diffusion/text-encoder.js +0 -195
  841. package/src/inference/pipelines/diffusion/types.d.ts +0 -116
  842. package/src/inference/pipelines/diffusion/types.js +0 -1
  843. package/src/inference/pipelines/diffusion/vae.d.ts +0 -20
  844. package/src/inference/pipelines/diffusion/vae.js +0 -1375
  845. package/src/inference/pipelines/diffusion/weights.d.ts +0 -40
  846. package/src/inference/pipelines/diffusion/weights.js +0 -150
  847. package/src/inference/pipelines/dream/energy-head-pipeline.d.ts +0 -29
  848. package/src/inference/pipelines/dream/energy-head-pipeline.js +0 -6
  849. package/src/inference/pipelines/dream/pipeline.d.ts +0 -17
  850. package/src/inference/pipelines/dream/pipeline.js +0 -8
  851. package/src/inference/pipelines/energy/index.d.ts +0 -1
  852. package/src/inference/pipelines/energy/index.js +0 -1
  853. package/src/inference/pipelines/energy/pipeline.d.ts +0 -27
  854. package/src/inference/pipelines/energy/pipeline.js +0 -686
  855. package/src/inference/pipelines/energy/quintel.d.ts +0 -92
  856. package/src/inference/pipelines/energy/quintel.js +0 -218
  857. package/src/inference/pipelines/energy/types.d.ts +0 -63
  858. package/src/inference/pipelines/energy/types.js +0 -1
  859. package/src/inference/pipelines/energy-head/index.d.ts +0 -6
  860. package/src/inference/pipelines/energy-head/index.js +0 -6
  861. package/src/inference/pipelines/energy-head/row-head-pipeline.d.ts +0 -103
  862. package/src/inference/pipelines/energy-head/row-head-pipeline.js +0 -491
  863. package/src/inference/pipelines/factory.d.ts +0 -10
  864. package/src/inference/pipelines/factory.js +0 -6
  865. package/src/inference/pipelines/index.d.ts +0 -22
  866. package/src/inference/pipelines/index.js +0 -19
  867. package/src/inference/pipelines/registry.d.ts +0 -15
  868. package/src/inference/pipelines/registry.js +0 -23
  869. package/src/inference/pipelines/rng.d.ts +0 -2
  870. package/src/inference/pipelines/rng.js +0 -17
  871. package/src/inference/pipelines/structured/index.d.ts +0 -8
  872. package/src/inference/pipelines/structured/index.js +0 -8
  873. package/src/inference/pipelines/structured/json-head-pipeline.d.ts +0 -58
  874. package/src/inference/pipelines/structured/json-head-pipeline.js +0 -196
  875. package/src/inference/pipelines/text/attention/index.d.ts +0 -24
  876. package/src/inference/pipelines/text/attention/index.js +0 -17
  877. package/src/inference/pipelines/text/attention/output-projection.d.ts +0 -12
  878. package/src/inference/pipelines/text/attention/output-projection.js +0 -8
  879. package/src/inference/pipelines/text/attention/projections.d.ts +0 -110
  880. package/src/inference/pipelines/text/attention/projections.js +0 -515
  881. package/src/inference/pipelines/text/attention/record.d.ts +0 -36
  882. package/src/inference/pipelines/text/attention/record.js +0 -685
  883. package/src/inference/pipelines/text/attention/run.d.ts +0 -38
  884. package/src/inference/pipelines/text/attention/run.js +0 -933
  885. package/src/inference/pipelines/text/attention/types.d.ts +0 -98
  886. package/src/inference/pipelines/text/attention/types.js +0 -67
  887. package/src/inference/pipelines/text/attention.d.ts +0 -23
  888. package/src/inference/pipelines/text/attention.js +0 -12
  889. package/src/inference/pipelines/text/bdpa-steamroller.d.ts +0 -22
  890. package/src/inference/pipelines/text/bdpa-steamroller.js +0 -158
  891. package/src/inference/pipelines/text/buffer-types.d.ts +0 -7
  892. package/src/inference/pipelines/text/buffer-types.js +0 -4
  893. package/src/inference/pipelines/text/chat-format.d.ts +0 -46
  894. package/src/inference/pipelines/text/chat-format.js +0 -390
  895. package/src/inference/pipelines/text/config.d.ts +0 -244
  896. package/src/inference/pipelines/text/config.js +0 -703
  897. package/src/inference/pipelines/text/debug-utils/config.d.ts +0 -144
  898. package/src/inference/pipelines/text/debug-utils/config.js +0 -156
  899. package/src/inference/pipelines/text/debug-utils/index.d.ts +0 -53
  900. package/src/inference/pipelines/text/debug-utils/index.js +0 -44
  901. package/src/inference/pipelines/text/debug-utils/logging.d.ts +0 -106
  902. package/src/inference/pipelines/text/debug-utils/logging.js +0 -152
  903. package/src/inference/pipelines/text/debug-utils/tensor.d.ts +0 -119
  904. package/src/inference/pipelines/text/debug-utils/tensor.js +0 -268
  905. package/src/inference/pipelines/text/debug-utils/utils.d.ts +0 -77
  906. package/src/inference/pipelines/text/debug-utils/utils.js +0 -139
  907. package/src/inference/pipelines/text/debug-utils.d.ts +0 -42
  908. package/src/inference/pipelines/text/debug-utils.js +0 -34
  909. package/src/inference/pipelines/text/embed.d.ts +0 -67
  910. package/src/inference/pipelines/text/embed.js +0 -455
  911. package/src/inference/pipelines/text/execution-plan.d.ts +0 -116
  912. package/src/inference/pipelines/text/execution-plan.js +0 -329
  913. package/src/inference/pipelines/text/execution-v0-contract-helpers.d.ts +0 -59
  914. package/src/inference/pipelines/text/execution-v0-contract-helpers.js +0 -937
  915. package/src/inference/pipelines/text/execution-v0-runtime-builders.d.ts +0 -15
  916. package/src/inference/pipelines/text/execution-v0-runtime-builders.js +0 -279
  917. package/src/inference/pipelines/text/execution-v0.d.ts +0 -66
  918. package/src/inference/pipelines/text/execution-v0.js +0 -255
  919. package/src/inference/pipelines/text/ffn/dense.d.ts +0 -40
  920. package/src/inference/pipelines/text/ffn/dense.js +0 -759
  921. package/src/inference/pipelines/text/ffn/index.d.ts +0 -23
  922. package/src/inference/pipelines/text/ffn/index.js +0 -16
  923. package/src/inference/pipelines/text/ffn/moe.d.ts +0 -21
  924. package/src/inference/pipelines/text/ffn/moe.js +0 -49
  925. package/src/inference/pipelines/text/ffn/sandwich.d.ts +0 -25
  926. package/src/inference/pipelines/text/ffn/sandwich.js +0 -196
  927. package/src/inference/pipelines/text/ffn/standard.d.ts +0 -23
  928. package/src/inference/pipelines/text/ffn/standard.js +0 -87
  929. package/src/inference/pipelines/text/ffn/types.d.ts +0 -30
  930. package/src/inference/pipelines/text/ffn/types.js +0 -25
  931. package/src/inference/pipelines/text/ffn.d.ts +0 -31
  932. package/src/inference/pipelines/text/ffn.js +0 -18
  933. package/src/inference/pipelines/text/finiteness-guard-status.d.ts +0 -11
  934. package/src/inference/pipelines/text/finiteness-guard-status.js +0 -21
  935. package/src/inference/pipelines/text/finiteness-policy.d.ts +0 -35
  936. package/src/inference/pipelines/text/finiteness-policy.js +0 -45
  937. package/src/inference/pipelines/text/generator-helpers.d.ts +0 -34
  938. package/src/inference/pipelines/text/generator-helpers.js +0 -175
  939. package/src/inference/pipelines/text/generator-runtime.d.ts +0 -93
  940. package/src/inference/pipelines/text/generator-runtime.js +0 -378
  941. package/src/inference/pipelines/text/generator-steps.d.ts +0 -127
  942. package/src/inference/pipelines/text/generator-steps.js +0 -1197
  943. package/src/inference/pipelines/text/generator.d.ts +0 -41
  944. package/src/inference/pipelines/text/generator.js +0 -1361
  945. package/src/inference/pipelines/text/index.d.ts +0 -5
  946. package/src/inference/pipelines/text/index.js +0 -6
  947. package/src/inference/pipelines/text/init.d.ts +0 -312
  948. package/src/inference/pipelines/text/init.js +0 -1112
  949. package/src/inference/pipelines/text/kernel-path-auto-select.d.ts +0 -12
  950. package/src/inference/pipelines/text/kernel-path-auto-select.js +0 -92
  951. package/src/inference/pipelines/text/kernel-trace.d.ts +0 -152
  952. package/src/inference/pipelines/text/kernel-trace.js +0 -330
  953. package/src/inference/pipelines/text/layer-plan.d.ts +0 -65
  954. package/src/inference/pipelines/text/layer-plan.js +0 -249
  955. package/src/inference/pipelines/text/layer.d.ts +0 -56
  956. package/src/inference/pipelines/text/layer.js +0 -922
  957. package/src/inference/pipelines/text/linear-attention.d.ts +0 -109
  958. package/src/inference/pipelines/text/linear-attention.js +0 -907
  959. package/src/inference/pipelines/text/logits/cpu.d.ts +0 -81
  960. package/src/inference/pipelines/text/logits/cpu.js +0 -91
  961. package/src/inference/pipelines/text/logits/gpu.d.ts +0 -113
  962. package/src/inference/pipelines/text/logits/gpu.js +0 -411
  963. package/src/inference/pipelines/text/logits/index.d.ts +0 -62
  964. package/src/inference/pipelines/text/logits/index.js +0 -306
  965. package/src/inference/pipelines/text/logits/types.d.ts +0 -46
  966. package/src/inference/pipelines/text/logits/types.js +0 -4
  967. package/src/inference/pipelines/text/logits/utils.d.ts +0 -56
  968. package/src/inference/pipelines/text/logits/utils.js +0 -68
  969. package/src/inference/pipelines/text/logits.d.ts +0 -27
  970. package/src/inference/pipelines/text/logits.js +0 -16
  971. package/src/inference/pipelines/text/lora-apply.d.ts +0 -28
  972. package/src/inference/pipelines/text/lora-apply.js +0 -76
  973. package/src/inference/pipelines/text/lora-types.d.ts +0 -39
  974. package/src/inference/pipelines/text/lora-types.js +0 -18
  975. package/src/inference/pipelines/text/lora.d.ts +0 -18
  976. package/src/inference/pipelines/text/lora.js +0 -12
  977. package/src/inference/pipelines/text/model-load.d.ts +0 -58
  978. package/src/inference/pipelines/text/model-load.js +0 -739
  979. package/src/inference/pipelines/text/moe-cache.d.ts +0 -32
  980. package/src/inference/pipelines/text/moe-cache.js +0 -108
  981. package/src/inference/pipelines/text/moe-cpu-gptoss.d.ts +0 -9
  982. package/src/inference/pipelines/text/moe-cpu-gptoss.js +0 -115
  983. package/src/inference/pipelines/text/moe-cpu.d.ts +0 -13
  984. package/src/inference/pipelines/text/moe-cpu.js +0 -120
  985. package/src/inference/pipelines/text/moe-gpu.d.ts +0 -13
  986. package/src/inference/pipelines/text/moe-gpu.js +0 -635
  987. package/src/inference/pipelines/text/moe-helpers.d.ts +0 -12
  988. package/src/inference/pipelines/text/moe-helpers.js +0 -21
  989. package/src/inference/pipelines/text/moe-impl.d.ts +0 -117
  990. package/src/inference/pipelines/text/moe-impl.js +0 -9
  991. package/src/inference/pipelines/text/moe-shape-validator.d.ts +0 -31
  992. package/src/inference/pipelines/text/moe-shape-validator.js +0 -78
  993. package/src/inference/pipelines/text/ops.d.ts +0 -167
  994. package/src/inference/pipelines/text/ops.js +0 -367
  995. package/src/inference/pipelines/text/probes.d.ts +0 -31
  996. package/src/inference/pipelines/text/probes.js +0 -170
  997. package/src/inference/pipelines/text/sampling.d.ts +0 -54
  998. package/src/inference/pipelines/text/sampling.js +0 -249
  999. package/src/inference/pipelines/text/state.d.ts +0 -112
  1000. package/src/inference/pipelines/text/state.js +0 -152
  1001. package/src/inference/pipelines/text/types.d.ts +0 -627
  1002. package/src/inference/pipelines/text/types.js +0 -4
  1003. package/src/inference/pipelines/text/weights.d.ts +0 -110
  1004. package/src/inference/pipelines/text/weights.js +0 -173
  1005. package/src/inference/pipelines/text.d.ts +0 -157
  1006. package/src/inference/pipelines/text.js +0 -608
  1007. package/src/inference/speculative.d.ts +0 -239
  1008. package/src/inference/speculative.js +0 -402
  1009. package/src/inference/test-harness.d.ts +0 -178
  1010. package/src/inference/test-harness.js +0 -359
  1011. package/src/inference/tokenizer.d.ts +0 -72
  1012. package/src/inference/tokenizer.js +0 -239
  1013. package/src/inference/tokenizers/base.d.ts +0 -39
  1014. package/src/inference/tokenizers/base.js +0 -69
  1015. package/src/inference/tokenizers/bpe.d.ts +0 -27
  1016. package/src/inference/tokenizers/bpe.js +0 -180
  1017. package/src/inference/tokenizers/bundled.d.ts +0 -63
  1018. package/src/inference/tokenizers/bundled.js +0 -1009
  1019. package/src/inference/tokenizers/sentencepiece.d.ts +0 -28
  1020. package/src/inference/tokenizers/sentencepiece.js +0 -401
  1021. package/src/inference/tokenizers/types.d.ts +0 -166
  1022. package/src/inference/tokenizers/types.js +0 -7
  1023. package/src/loader/doppler-loader.d.ts +0 -134
  1024. package/src/loader/doppler-loader.js +0 -1052
  1025. package/src/loader/dtype-utils.d.ts +0 -40
  1026. package/src/loader/dtype-utils.js +0 -61
  1027. package/src/loader/embedding-loader.d.ts +0 -56
  1028. package/src/loader/embedding-loader.js +0 -211
  1029. package/src/loader/experts/expert-cache.d.ts +0 -156
  1030. package/src/loader/experts/expert-cache.js +0 -382
  1031. package/src/loader/experts/expert-loader.d.ts +0 -108
  1032. package/src/loader/experts/expert-loader.js +0 -388
  1033. package/src/loader/final-weights-loader.d.ts +0 -68
  1034. package/src/loader/final-weights-loader.js +0 -268
  1035. package/src/loader/index.d.ts +0 -150
  1036. package/src/loader/index.js +0 -124
  1037. package/src/loader/layer-loader.d.ts +0 -63
  1038. package/src/loader/layer-loader.js +0 -418
  1039. package/src/loader/loader-state.d.ts +0 -51
  1040. package/src/loader/loader-state.js +0 -142
  1041. package/src/loader/loader-types.d.ts +0 -236
  1042. package/src/loader/loader-types.js +0 -4
  1043. package/src/loader/manifest-config.d.ts +0 -97
  1044. package/src/loader/manifest-config.js +0 -132
  1045. package/src/loader/memory-monitor.d.ts +0 -112
  1046. package/src/loader/memory-monitor.js +0 -284
  1047. package/src/loader/multi-model-loader.d.ts +0 -51
  1048. package/src/loader/multi-model-loader.js +0 -133
  1049. package/src/loader/quantization-constants.d.ts +0 -23
  1050. package/src/loader/quantization-constants.js +0 -14
  1051. package/src/loader/shard-cache.d.ts +0 -60
  1052. package/src/loader/shard-cache.js +0 -638
  1053. package/src/loader/shard-resolver.d.ts +0 -12
  1054. package/src/loader/shard-resolver.js +0 -105
  1055. package/src/loader/tensors/tensor-loader.d.ts +0 -154
  1056. package/src/loader/tensors/tensor-loader.js +0 -497
  1057. package/src/loader/tensors/tensor-reader.d.ts +0 -22
  1058. package/src/loader/tensors/tensor-reader.js +0 -113
  1059. package/src/loader/tensors/tensor-role.d.ts +0 -7
  1060. package/src/loader/tensors/tensor-role.js +0 -12
  1061. package/src/loader/weight-downcast.d.ts +0 -62
  1062. package/src/loader/weight-downcast.js +0 -213
  1063. package/src/loader/weights.d.ts +0 -22
  1064. package/src/loader/weights.js +0 -4
  1065. package/src/memory/address-table.d.ts +0 -104
  1066. package/src/memory/address-table.js +0 -114
  1067. package/src/memory/buffer-pool.d.ts +0 -204
  1068. package/src/memory/buffer-pool.js +0 -821
  1069. package/src/memory/capability.d.ts +0 -49
  1070. package/src/memory/capability.js +0 -95
  1071. package/src/memory/heap-manager.d.ts +0 -104
  1072. package/src/memory/heap-manager.js +0 -264
  1073. package/src/memory/unified-detect.d.ts +0 -59
  1074. package/src/memory/unified-detect.js +0 -192
  1075. package/src/rules/converter/execution.rules.json +0 -20
  1076. package/src/rules/converter/tensor-roles.rules.json +0 -13
  1077. package/src/rules/converter/tokenizer.rules.json +0 -7
  1078. package/src/rules/execution-rules-contract-check.d.ts +0 -17
  1079. package/src/rules/execution-rules-contract-check.js +0 -245
  1080. package/src/rules/inference/attention.rules.json +0 -54
  1081. package/src/rules/inference/config.rules.json +0 -58
  1082. package/src/rules/inference/dtype.rules.json +0 -99
  1083. package/src/rules/inference/execution.rules.json +0 -45
  1084. package/src/rules/inference/ffn.rules.json +0 -35
  1085. package/src/rules/inference/kernel-path.rules.json +0 -92
  1086. package/src/rules/inference/layer-pattern.rules.json +0 -16
  1087. package/src/rules/inference/layer.rules.json +0 -7
  1088. package/src/rules/inference/moe.rules.json +0 -48
  1089. package/src/rules/kernels/attention.rules.json +0 -61
  1090. package/src/rules/kernels/conv2d.rules.json +0 -6
  1091. package/src/rules/kernels/depthwise-conv2d.rules.json +0 -6
  1092. package/src/rules/kernels/dequant.rules.json +0 -58
  1093. package/src/rules/kernels/energy.rules.json +0 -22
  1094. package/src/rules/kernels/fused-ffn.rules.json +0 -13
  1095. package/src/rules/kernels/fused-matmul-residual.rules.json +0 -6
  1096. package/src/rules/kernels/fused-matmul-rmsnorm.rules.json +0 -8
  1097. package/src/rules/kernels/gather.rules.json +0 -12
  1098. package/src/rules/kernels/gelu.rules.json +0 -11
  1099. package/src/rules/kernels/grouped-pointwise-conv2d.rules.json +0 -6
  1100. package/src/rules/kernels/groupnorm.rules.json +0 -10
  1101. package/src/rules/kernels/kernel-validator.d.ts +0 -24
  1102. package/src/rules/kernels/kernel-validator.js +0 -160
  1103. package/src/rules/kernels/kv_quantize.rules.json +0 -7
  1104. package/src/rules/kernels/layernorm.rules.json +0 -6
  1105. package/src/rules/kernels/matmul.rules.json +0 -60
  1106. package/src/rules/kernels/modulate.rules.json +0 -6
  1107. package/src/rules/kernels/moe.rules.gptoss.json +0 -105
  1108. package/src/rules/kernels/moe.rules.json +0 -11
  1109. package/src/rules/kernels/pixel_shuffle.rules.json +0 -6
  1110. package/src/rules/kernels/relu.rules.json +0 -6
  1111. package/src/rules/kernels/repeat-channels.rules.json +0 -6
  1112. package/src/rules/kernels/residual.rules.json +0 -12
  1113. package/src/rules/kernels/rmsnorm.rules.json +0 -11
  1114. package/src/rules/kernels/rope.rules.json +0 -6
  1115. package/src/rules/kernels/sample.rules.json +0 -6
  1116. package/src/rules/kernels/sana-linear-attention.rules.json +0 -6
  1117. package/src/rules/kernels/scale.rules.json +0 -6
  1118. package/src/rules/kernels/silu.rules.json +0 -21
  1119. package/src/rules/kernels/softmax.rules.json +0 -23
  1120. package/src/rules/kernels/split-qg.rules.json +0 -6
  1121. package/src/rules/kernels/split-qkv.rules.json +0 -6
  1122. package/src/rules/kernels/upsample2d.rules.json +0 -6
  1123. package/src/rules/layer-pattern-contract-check.d.ts +0 -17
  1124. package/src/rules/layer-pattern-contract-check.js +0 -231
  1125. package/src/rules/loader/tensor-loader.rules.json +0 -15
  1126. package/src/rules/loader/weights.rules.json +0 -41
  1127. package/src/rules/rule-registry.d.ts +0 -76
  1128. package/src/rules/rule-registry.js +0 -241
  1129. package/src/rules/tooling/command-runtime.rules.json +0 -56
  1130. package/src/storage/backends/idb-store.d.ts +0 -52
  1131. package/src/storage/backends/idb-store.js +0 -590
  1132. package/src/storage/backends/memory-store.d.ts +0 -36
  1133. package/src/storage/backends/memory-store.js +0 -242
  1134. package/src/storage/backends/opfs-store.d.ts +0 -41
  1135. package/src/storage/backends/opfs-store.js +0 -473
  1136. package/src/storage/blake3.d.ts +0 -17
  1137. package/src/storage/blake3.js +0 -269
  1138. package/src/storage/download-types.d.ts +0 -157
  1139. package/src/storage/download-types.js +0 -48
  1140. package/src/storage/downloader.d.ts +0 -103
  1141. package/src/storage/downloader.js +0 -1121
  1142. package/src/storage/emulated-vram.d.ts +0 -264
  1143. package/src/storage/emulated-vram.js +0 -576
  1144. package/src/storage/export.d.ts +0 -20
  1145. package/src/storage/export.js +0 -159
  1146. package/src/storage/index.d.ts +0 -256
  1147. package/src/storage/index.js +0 -188
  1148. package/src/storage/inventory.d.ts +0 -26
  1149. package/src/storage/inventory.js +0 -218
  1150. package/src/storage/preflight.d.ts +0 -144
  1151. package/src/storage/preflight.js +0 -316
  1152. package/src/storage/quickstart-downloader.d.ts +0 -154
  1153. package/src/storage/quickstart-downloader.js +0 -271
  1154. package/src/storage/quota.d.ts +0 -150
  1155. package/src/storage/quota.js +0 -304
  1156. package/src/storage/registry.d.ts +0 -28
  1157. package/src/storage/registry.js +0 -131
  1158. package/src/storage/reports.d.ts +0 -20
  1159. package/src/storage/reports.js +0 -94
  1160. package/src/storage/shard-manager.d.ts +0 -151
  1161. package/src/storage/shard-manager.js +0 -850
  1162. package/src/storage/source-artifact-store.d.ts +0 -52
  1163. package/src/storage/source-artifact-store.js +0 -234
  1164. package/src/sw.d.ts +0 -1
  1165. package/src/sw.js +0 -187
  1166. package/src/tooling/browser-command-runner.d.ts +0 -28
  1167. package/src/tooling/browser-command-runner.js +0 -82
  1168. package/src/tooling/command-api-constants.d.ts +0 -9
  1169. package/src/tooling/command-api-constants.js +0 -9
  1170. package/src/tooling/command-api-family-normalizers.d.ts +0 -9
  1171. package/src/tooling/command-api-family-normalizers.js +0 -343
  1172. package/src/tooling/command-api-helpers.d.ts +0 -25
  1173. package/src/tooling/command-api-helpers.js +0 -262
  1174. package/src/tooling/command-api.d.ts +0 -173
  1175. package/src/tooling/command-api.js +0 -76
  1176. package/src/tooling/command-envelope.d.ts +0 -81
  1177. package/src/tooling/command-envelope.js +0 -198
  1178. package/src/tooling/command-runner-shared.d.ts +0 -73
  1179. package/src/tooling/command-runner-shared.js +0 -180
  1180. package/src/tooling/command-runner.html +0 -45
  1181. package/src/tooling/conversion-config-materializer.d.ts +0 -24
  1182. package/src/tooling/conversion-config-materializer.js +0 -97
  1183. package/src/tooling/lean-execution-contract-runner.d.ts +0 -43
  1184. package/src/tooling/lean-execution-contract-runner.js +0 -158
  1185. package/src/tooling/lean-execution-contract.d.ts +0 -16
  1186. package/src/tooling/lean-execution-contract.js +0 -228
  1187. package/src/tooling/node-browser-command-runner.d.ts +0 -34
  1188. package/src/tooling/node-browser-command-runner.js +0 -813
  1189. package/src/tooling/node-command-runner.d.ts +0 -36
  1190. package/src/tooling/node-command-runner.js +0 -168
  1191. package/src/tooling/node-convert-worker-pool.d.ts +0 -16
  1192. package/src/tooling/node-convert-worker-pool.js +0 -186
  1193. package/src/tooling/node-convert-worker.d.ts +0 -1
  1194. package/src/tooling/node-convert-worker.js +0 -60
  1195. package/src/tooling/node-convert.d.ts +0 -54
  1196. package/src/tooling/node-converter.d.ts +0 -1
  1197. package/src/tooling/node-converter.js +0 -1315
  1198. package/src/tooling/node-file-fetch.d.ts +0 -1
  1199. package/src/tooling/node-file-fetch.js +0 -38
  1200. package/src/tooling/node-source-runtime.d.ts +0 -19
  1201. package/src/tooling/node-source-runtime.js +0 -586
  1202. package/src/tooling/node-webgpu.d.ts +0 -6
  1203. package/src/tooling/node-webgpu.js +0 -267
  1204. package/src/tooling/opfs-cache.d.ts +0 -11
  1205. package/src/tooling/opfs-cache.js +0 -191
  1206. package/src/tooling/runtime-input-composition.d.ts +0 -38
  1207. package/src/tooling/runtime-input-composition.js +0 -86
  1208. package/src/tooling/source-runtime-bundle.d.ts +0 -137
  1209. package/src/tooling/source-runtime-bundle.js +0 -711
  1210. package/src/tooling/source-runtime-materializer.d.ts +0 -6
  1211. package/src/tooling/source-runtime-materializer.js +0 -93
  1212. package/src/tooling-exports.browser.d.ts +0 -7
  1213. package/src/tooling-exports.browser.js +0 -2
  1214. package/src/tooling-exports.d.ts +0 -22
  1215. package/src/tooling-exports.js +0 -7
  1216. package/src/tooling-exports.shared.d.ts +0 -105
  1217. package/src/tooling-exports.shared.js +0 -92
  1218. package/src/training/README.md +0 -153
  1219. package/src/training/artifacts.d.ts +0 -160
  1220. package/src/training/artifacts.js +0 -896
  1221. package/src/training/attention-backward.d.ts +0 -30
  1222. package/src/training/attention-backward.js +0 -232
  1223. package/src/training/attention-forward.d.ts +0 -22
  1224. package/src/training/attention-forward.js +0 -82
  1225. package/src/training/autograd.d.ts +0 -51
  1226. package/src/training/autograd.js +0 -408
  1227. package/src/training/checkpoint-watch.d.ts +0 -8
  1228. package/src/training/checkpoint-watch.js +0 -139
  1229. package/src/training/checkpoint.d.ts +0 -36
  1230. package/src/training/checkpoint.js +0 -277
  1231. package/src/training/clip.d.ts +0 -9
  1232. package/src/training/clip.js +0 -55
  1233. package/src/training/dataloader.d.ts +0 -8
  1234. package/src/training/dataloader.js +0 -44
  1235. package/src/training/datasets/index.d.ts +0 -12
  1236. package/src/training/datasets/index.js +0 -6
  1237. package/src/training/datasets/jsonl.d.ts +0 -11
  1238. package/src/training/datasets/jsonl.js +0 -50
  1239. package/src/training/datasets/reploid.d.ts +0 -3
  1240. package/src/training/datasets/reploid.js +0 -36
  1241. package/src/training/datasets/text-pairs.d.ts +0 -21
  1242. package/src/training/datasets/text-pairs.js +0 -42
  1243. package/src/training/datasets/token-batch.d.ts +0 -21
  1244. package/src/training/datasets/token-batch.js +0 -52
  1245. package/src/training/datasets/translation-pairs.d.ts +0 -34
  1246. package/src/training/datasets/translation-pairs.js +0 -49
  1247. package/src/training/distillation/artifacts.d.ts +0 -71
  1248. package/src/training/distillation/artifacts.js +0 -132
  1249. package/src/training/distillation/checkpoint-watch.d.ts +0 -10
  1250. package/src/training/distillation/checkpoint-watch.js +0 -58
  1251. package/src/training/distillation/dataset.d.ts +0 -59
  1252. package/src/training/distillation/dataset.js +0 -337
  1253. package/src/training/distillation/eval.d.ts +0 -34
  1254. package/src/training/distillation/eval.js +0 -310
  1255. package/src/training/distillation/index.d.ts +0 -29
  1256. package/src/training/distillation/index.js +0 -29
  1257. package/src/training/distillation/runtime.d.ts +0 -20
  1258. package/src/training/distillation/runtime.js +0 -121
  1259. package/src/training/distillation/scoreboard.d.ts +0 -6
  1260. package/src/training/distillation/scoreboard.js +0 -8
  1261. package/src/training/distillation/stage-a.d.ts +0 -45
  1262. package/src/training/distillation/stage-a.js +0 -338
  1263. package/src/training/distillation/stage-b.d.ts +0 -24
  1264. package/src/training/distillation/stage-b.js +0 -20
  1265. package/src/training/distillation/student-fixture.d.ts +0 -22
  1266. package/src/training/distillation/student-fixture.js +0 -846
  1267. package/src/training/distillation/suite-data.d.ts +0 -45
  1268. package/src/training/distillation/suite-data.js +0 -189
  1269. package/src/training/export.d.ts +0 -32
  1270. package/src/training/export.js +0 -112
  1271. package/src/training/index.d.ts +0 -62
  1272. package/src/training/index.js +0 -51
  1273. package/src/training/lora-pipeline.d.ts +0 -40
  1274. package/src/training/lora-pipeline.js +0 -793
  1275. package/src/training/lora.d.ts +0 -19
  1276. package/src/training/lora.js +0 -71
  1277. package/src/training/loss-scaling.d.ts +0 -21
  1278. package/src/training/loss-scaling.js +0 -80
  1279. package/src/training/loss.d.ts +0 -10
  1280. package/src/training/loss.js +0 -40
  1281. package/src/training/objectives/base.d.ts +0 -58
  1282. package/src/training/objectives/base.js +0 -38
  1283. package/src/training/objectives/cross_entropy.d.ts +0 -18
  1284. package/src/training/objectives/cross_entropy.js +0 -34
  1285. package/src/training/objectives/distill_kd.d.ts +0 -16
  1286. package/src/training/objectives/distill_kd.js +0 -365
  1287. package/src/training/objectives/distill_triplet.d.ts +0 -16
  1288. package/src/training/objectives/distill_triplet.js +0 -408
  1289. package/src/training/objectives/index.d.ts +0 -12
  1290. package/src/training/objectives/index.js +0 -6
  1291. package/src/training/objectives/ul_stage1_joint.d.ts +0 -16
  1292. package/src/training/objectives/ul_stage1_joint.js +0 -188
  1293. package/src/training/objectives/ul_stage2_base.d.ts +0 -16
  1294. package/src/training/objectives/ul_stage2_base.js +0 -218
  1295. package/src/training/operator-artifacts.d.ts +0 -62
  1296. package/src/training/operator-artifacts.js +0 -140
  1297. package/src/training/operator-command.d.ts +0 -5
  1298. package/src/training/operator-command.js +0 -455
  1299. package/src/training/operator-eval.d.ts +0 -48
  1300. package/src/training/operator-eval.js +0 -230
  1301. package/src/training/operator-scoreboard.d.ts +0 -5
  1302. package/src/training/operator-scoreboard.js +0 -44
  1303. package/src/training/optimizer.d.ts +0 -22
  1304. package/src/training/optimizer.js +0 -127
  1305. package/src/training/runner.d.ts +0 -248
  1306. package/src/training/runner.js +0 -1220
  1307. package/src/training/suite.d.ts +0 -299
  1308. package/src/training/suite.js +0 -2196
  1309. package/src/training/tensor-factory.d.ts +0 -9
  1310. package/src/training/tensor-factory.js +0 -13
  1311. package/src/training/trainer.d.ts +0 -89
  1312. package/src/training/trainer.js +0 -299
  1313. package/src/training/ul_dataset.d.ts +0 -47
  1314. package/src/training/ul_dataset.js +0 -151
  1315. package/src/training/ul_schedule.d.ts +0 -6
  1316. package/src/training/ul_schedule.js +0 -29
  1317. package/src/training/workloads.d.ts +0 -164
  1318. package/src/training/workloads.js +0 -530
  1319. package/src/types/chrome.d.ts +0 -36
  1320. package/src/types/chrome.js +0 -1
  1321. package/src/types/gpu.d.ts +0 -185
  1322. package/src/types/gpu.js +0 -5
  1323. package/src/types/index.d.ts +0 -3
  1324. package/src/types/index.js +0 -3
  1325. package/src/types/inference.d.ts +0 -197
  1326. package/src/types/inference.js +0 -5
  1327. package/src/types/model.d.ts +0 -130
  1328. package/src/types/model.js +0 -5
  1329. package/src/utils/index.d.ts +0 -7
  1330. package/src/utils/index.js +0 -7
  1331. package/src/utils/load-json.d.ts +0 -5
  1332. package/src/utils/load-json.js +0 -23
  1333. package/src/utils/plain-object.d.ts +0 -1
  1334. package/src/utils/plain-object.js +0 -3
  1335. package/src/utils/sha256.d.ts +0 -4
  1336. package/src/utils/sha256.js +0 -135
  1337. package/src/version.d.ts +0 -2
  1338. package/src/version.js +0 -2
  1339. package/tools/convert-safetensors-node.js +0 -233
  1340. package/tools/doppler-cli.js +0 -1452
@@ -1,1083 +0,0 @@
1
-
2
-
3
- import { getDevice } from '../../gpu/device.js';
4
- import { allowReadback } from '../../gpu/perf-guards.js';
5
- import { log } from '../../debug/index.js';
6
- import { readBuffer } from '../../memory/buffer-pool.js';
7
- import {
8
- isContiguousLayer,
9
- isPagedLayer,
10
- f32ToF16Array,
11
- f16ToF32Array,
12
- } from './types.js';
13
-
14
- // ============================================================================
15
- // KVCache Class
16
- // ============================================================================
17
-
18
- export class KVCache {
19
-
20
- constructor(config) {
21
- this.numLayers = config.numLayers;
22
-
23
- this.numHeads = config.numHeads;
24
-
25
- this.headDim = config.headDim;
26
- if (!Number.isFinite(config.maxSeqLen) || config.maxSeqLen <= 0) {
27
- throw new Error('KVCache requires a valid maxSeqLen.');
28
- }
29
- if (config.useGPU == null) {
30
- throw new Error('KVCache requires useGPU to be set.');
31
- }
32
- if (!config.layout) {
33
- throw new Error('KVCache requires a layout.');
34
- }
35
- if (!Number.isFinite(config.pageSize) || config.pageSize <= 0) {
36
- throw new Error('KVCache requires a valid pageSize.');
37
- }
38
- if (!config.kvDtype) {
39
- throw new Error('KVCache requires kvDtype.');
40
- }
41
-
42
- this.maxSeqLen = config.maxSeqLen;
43
-
44
- this.useGPU = config.useGPU;
45
-
46
- this.layout = config.layout;
47
-
48
- this.pageSize = config.pageSize;
49
-
50
- this.kvDtype = config.kvDtype;
51
-
52
- this.bytesPerElem = this.kvDtype === 'f16' ? 2 : 4;
53
-
54
- // Size of one KV pair per position
55
-
56
- this.kvSize = this.numHeads * this.headDim;
57
-
58
- // Initialize layer caches
59
-
60
- this.layers = new Array(this.numLayers);
61
-
62
- this.currentSeqLen = 0;
63
-
64
- this.totalTokensSeen = 0;
65
-
66
- // Memory usage tracking
67
-
68
- this.memoryUsage = 0;
69
-
70
- // GPU context (set externally)
71
-
72
- this.gpuContext = null;
73
-
74
- // Initialize storage
75
- this._initializeStorage();
76
- }
77
-
78
- // ==========================================================================
79
- // Storage Initialization
80
- // ==========================================================================
81
-
82
-
83
- _initializeStorage() {
84
- if (this.layout === 'paged') {
85
- this._initializePagedStorage();
86
- } else {
87
- this._initializeContiguousStorage();
88
- }
89
- }
90
-
91
-
92
- _initializeContiguousStorage() {
93
- const sizePerLayer = this.maxSeqLen * this.kvSize;
94
- const bytesPerLayer = sizePerLayer * this.bytesPerElem * 2; // K + V
95
-
96
- const device = this.useGPU ? getDevice() : null;
97
-
98
- for (let l = 0; l < this.numLayers; l++) {
99
- if (device && this.useGPU) {
100
- // GPU-native storage
101
- const keysGPU = device.createBuffer({
102
- label: `kv_cache_keys_layer_${l}`,
103
- size: sizePerLayer * this.bytesPerElem,
104
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
105
- });
106
- const valuesGPU = device.createBuffer({
107
- label: `kv_cache_values_layer_${l}`,
108
- size: sizePerLayer * this.bytesPerElem,
109
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
110
- });
111
-
112
- this.layers[l] = {
113
- keysGPU,
114
- valuesGPU,
115
- // Use empty CPU arrays in GPU mode - saves ~2.7GB for 9B models
116
- // CPU shadows are only allocated on-demand if migrateFromGPU() is called
117
- keys: new Float32Array(0),
118
- values: new Float32Array(0),
119
- seqLen: 0
120
- };
121
- } else {
122
- // CPU-only storage
123
- this.layers[l] = {
124
- keys: new Float32Array(sizePerLayer),
125
- values: new Float32Array(sizePerLayer),
126
- keysGPU: null,
127
- valuesGPU: null,
128
- seqLen: 0
129
- };
130
- }
131
- this.memoryUsage += bytesPerLayer;
132
- }
133
- }
134
-
135
-
136
- _initializePagedStorage() {
137
- const numPages = Math.ceil(this.maxSeqLen / this.pageSize);
138
- const device = this.useGPU ? getDevice() : null;
139
- const sizePerLayer = this.maxSeqLen * this.kvSize;
140
- const bytesPerLayer = sizePerLayer * this.bytesPerElem;
141
- const pageTableBytes = numPages * 4;
142
-
143
- for (let l = 0; l < this.numLayers; l++) {
144
- if (device && this.useGPU) {
145
- const keysGPU = device.createBuffer({
146
- label: `kv_cache_keys_paged_layer_${l}`,
147
- size: bytesPerLayer,
148
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
149
- });
150
- const valuesGPU = device.createBuffer({
151
- label: `kv_cache_values_paged_layer_${l}`,
152
- size: bytesPerLayer,
153
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
154
- });
155
- const pageTable = new Uint32Array(numPages);
156
- for (let i = 0; i < numPages; i++) {
157
- pageTable[i] = i;
158
- }
159
- const pageTableGPU = device.createBuffer({
160
- label: `kv_cache_page_table_layer_${l}`,
161
- size: pageTableBytes,
162
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
163
- });
164
- device.queue.writeBuffer(pageTableGPU, 0, pageTable);
165
-
166
- this.layers[l] = {
167
- keyPages: new Array(numPages).fill(null),
168
- valuePages: new Array(numPages).fill(null),
169
- allocatedPages: 0,
170
- seqLen: 0,
171
- keysGPU,
172
- valuesGPU,
173
- pageTable,
174
- pageTableGPU,
175
- };
176
- this.memoryUsage += (bytesPerLayer * 2) + pageTableBytes;
177
- } else {
178
- this.layers[l] = {
179
- keyPages: new Array(numPages).fill(null),
180
- valuePages: new Array(numPages).fill(null),
181
- allocatedPages: 0,
182
- seqLen: 0,
183
- keysGPU: null,
184
- valuesGPU: null,
185
- pageTable: null,
186
- pageTableGPU: null,
187
- };
188
- }
189
- }
190
- }
191
-
192
- // ==========================================================================
193
- // Paged Storage Helpers
194
- // ==========================================================================
195
-
196
-
197
- _allocatePage() {
198
- const pageElements = this.pageSize * this.kvSize;
199
- const page = new Float32Array(pageElements);
200
- this.memoryUsage += pageElements * 4;
201
- return page;
202
- }
203
-
204
-
205
- _getPageLocation(pos) {
206
- const pageIdx = Math.floor(pos / this.pageSize);
207
- const offset = (pos % this.pageSize) * this.kvSize;
208
- return { pageIdx, offset };
209
- }
210
-
211
-
212
- _ensurePagesAllocated(layerIdx, pos) {
213
- if (this.layout !== 'paged') return;
214
-
215
- const layer = (this.layers[layerIdx]);
216
- const neededPage = Math.floor(pos / this.pageSize);
217
-
218
- for (let p = layer.allocatedPages; p <= neededPage; p++) {
219
- if (!layer.keyPages[p]) {
220
- layer.keyPages[p] = this._allocatePage();
221
- layer.valuePages[p] = this._allocatePage();
222
- layer.allocatedPages = p + 1;
223
- }
224
- }
225
- }
226
-
227
- // ==========================================================================
228
- // Update Methods
229
- // ==========================================================================
230
-
231
-
232
- _assertLayerIndex(layerIdx) {
233
- if (!Number.isInteger(layerIdx) || layerIdx < 0 || layerIdx >= this.numLayers) {
234
- throw new Error(`KVCache layer index out of range: ${layerIdx}`);
235
- }
236
- }
237
-
238
-
239
- _assertStartPos(startPos) {
240
- if (!Number.isInteger(startPos) || startPos < 0) {
241
- throw new Error('KVCache startPos must be a non-negative integer.');
242
- }
243
- }
244
-
245
-
246
- _resolveTokenCount(keys, values) {
247
- const bytesPerToken = this.kvSize * this.bytesPerElem;
248
- const keysIsGPU = keys instanceof GPUBuffer;
249
- const valuesIsGPU = values instanceof GPUBuffer;
250
-
251
- if (keysIsGPU || valuesIsGPU) {
252
- if (!keysIsGPU || !valuesIsGPU) {
253
- throw new Error('KVCache update requires both keys and values as GPU buffers.');
254
- }
255
- if (!Number.isFinite(keys.size) || !Number.isFinite(values.size)) {
256
- throw new Error('KVCache update requires GPU buffer sizes.');
257
- }
258
- if (keys.size !== values.size) {
259
- throw new Error('KVCache update requires matching GPU buffer sizes.');
260
- }
261
- if (keys.size % bytesPerToken !== 0) {
262
- throw new Error('KVCache update GPU buffer size must align to kvSize.');
263
- }
264
- return { numNewTokens: keys.size / bytesPerToken, isGPU: true };
265
- }
266
-
267
- if (!Number.isFinite(keys?.length) || !Number.isFinite(values?.length)) {
268
- throw new Error('KVCache update requires typed array inputs.');
269
- }
270
- if (keys.length !== values.length) {
271
- throw new Error('KVCache update requires matching keys and values lengths.');
272
- }
273
- if (keys.length % this.kvSize !== 0) {
274
- throw new Error('KVCache update array length must align to kvSize.');
275
- }
276
- return { numNewTokens: keys.length / this.kvSize, isGPU: false };
277
- }
278
-
279
-
280
- update(
281
- layerIdx,
282
- keys,
283
- values,
284
- startPos = this.currentSeqLen
285
- ) {
286
- this._assertLayerIndex(layerIdx);
287
- this._assertStartPos(startPos);
288
-
289
- const { numNewTokens } = this._resolveTokenCount(keys, values);
290
- if (!Number.isInteger(numNewTokens) || numNewTokens < 0) {
291
- throw new Error('KVCache update requires a non-negative integer token count.');
292
- }
293
- if (numNewTokens === 0) {
294
- return;
295
- }
296
-
297
- if (startPos + numNewTokens > this.maxSeqLen) {
298
- throw new Error(
299
- `Cache overflow: ${startPos + numNewTokens} > ${this.maxSeqLen}`
300
- );
301
- }
302
-
303
- const layer = this.layers[layerIdx];
304
-
305
- if (this.layout === 'paged') {
306
- if (keys instanceof GPUBuffer || values instanceof GPUBuffer) {
307
- throw new Error('Paged layout does not support GPU buffer inputs');
308
- }
309
- this._updatePaged(layerIdx, (layer), keys, values, startPos, numNewTokens);
310
- } else {
311
- this._updateContiguous( (layer), keys, values, startPos, numNewTokens);
312
- }
313
-
314
- layer.seqLen = Math.max(layer.seqLen, startPos + numNewTokens);
315
- this.totalTokensSeen = Math.max(this.totalTokensSeen, startPos + numNewTokens);
316
-
317
- // Update global sequence length if this is the last layer
318
- if (layerIdx === this.numLayers - 1) {
319
- this.currentSeqLen = Math.max(this.currentSeqLen, startPos + numNewTokens);
320
- }
321
- }
322
-
323
-
324
- updateFromGPU(
325
- layerIdx,
326
- keysBuffer,
327
- valuesBuffer,
328
- startPos,
329
- numTokens
330
- ) {
331
- this._assertLayerIndex(layerIdx);
332
- this._assertStartPos(startPos);
333
- if (!Number.isInteger(numTokens) || numTokens < 0) {
334
- throw new Error('KVCache updateFromGPU requires a non-negative integer token count.');
335
- }
336
- if (numTokens === 0) {
337
- return;
338
- }
339
-
340
- const layer = (this.layers[layerIdx]);
341
- const device = getDevice();
342
-
343
- if (!device || !layer.keysGPU) {
344
- throw new Error('GPU cache not initialized');
345
- }
346
-
347
- if (startPos + numTokens > this.maxSeqLen) {
348
- throw new Error(
349
- `Cache overflow: ${startPos + numTokens} > ${this.maxSeqLen}`
350
- );
351
- }
352
-
353
- const byteOffset = startPos * this.kvSize * this.bytesPerElem;
354
- const byteSize = numTokens * this.kvSize * this.bytesPerElem;
355
- if (byteSize > keysBuffer.size || byteSize > valuesBuffer.size) {
356
- throw new Error('KVCache updateFromGPU buffer size is smaller than requested write.');
357
- }
358
-
359
- // Copy directly from source buffers to cache buffers
360
- const encoder = device.createCommandEncoder({ label: 'kv_cache_update' });
361
- encoder.copyBufferToBuffer(keysBuffer, 0, layer.keysGPU, byteOffset, byteSize);
362
- encoder.copyBufferToBuffer(valuesBuffer, 0, layer.valuesGPU, byteOffset, byteSize);
363
- device.queue.submit([encoder.finish()]);
364
-
365
- if (this.layout === 'paged') {
366
- const neededPages = Math.ceil((startPos + numTokens) / this.pageSize);
367
- if (Number.isFinite(layer.allocatedPages)) {
368
- layer.allocatedPages = Math.max(layer.allocatedPages, neededPages);
369
- } else {
370
- layer.allocatedPages = neededPages;
371
- }
372
- }
373
-
374
- layer.seqLen = Math.max(layer.seqLen, startPos + numTokens);
375
- this.totalTokensSeen = Math.max(this.totalTokensSeen, startPos + numTokens);
376
-
377
- if (layerIdx === this.numLayers - 1) {
378
- this.currentSeqLen = Math.max(this.currentSeqLen, startPos + numTokens);
379
- }
380
- }
381
-
382
-
383
- recordUpdateFromGPU(
384
- recorder,
385
- layerIdx,
386
- keysBuffer,
387
- valuesBuffer,
388
- startPos,
389
- numTokens
390
- ) {
391
- this._assertLayerIndex(layerIdx);
392
- this._assertStartPos(startPos);
393
- if (!Number.isInteger(numTokens) || numTokens < 0) {
394
- throw new Error('KVCache recordUpdateFromGPU requires a non-negative integer token count.');
395
- }
396
- if (numTokens === 0) {
397
- return;
398
- }
399
-
400
- const encoder = recorder.getEncoder();
401
- const layer = (this.layers[layerIdx]);
402
-
403
- if (!layer.keysGPU) {
404
- throw new Error('GPU cache not initialized');
405
- }
406
-
407
- if (startPos + numTokens > this.maxSeqLen) {
408
- throw new Error(
409
- `Cache overflow: ${startPos + numTokens} > ${this.maxSeqLen}`
410
- );
411
- }
412
-
413
- const byteOffset = startPos * this.kvSize * this.bytesPerElem;
414
- const byteSize = numTokens * this.kvSize * this.bytesPerElem;
415
- if (byteSize > keysBuffer.size || byteSize > valuesBuffer.size) {
416
- throw new Error('KVCache recordUpdateFromGPU buffer size is smaller than requested write.');
417
- }
418
-
419
- // Record copy operations to the provided encoder (no submit)
420
- encoder.copyBufferToBuffer(keysBuffer, 0, layer.keysGPU, byteOffset, byteSize);
421
- encoder.copyBufferToBuffer(valuesBuffer, 0, layer.valuesGPU, byteOffset, byteSize);
422
-
423
- if (this.layout === 'paged') {
424
- const neededPages = Math.ceil((startPos + numTokens) / this.pageSize);
425
- if (Number.isFinite(layer.allocatedPages)) {
426
- layer.allocatedPages = Math.max(layer.allocatedPages, neededPages);
427
- } else {
428
- layer.allocatedPages = neededPages;
429
- }
430
- }
431
-
432
- // Update seqLen metadata (this happens immediately, copies happen when encoder is submitted)
433
- layer.seqLen = Math.max(layer.seqLen, startPos + numTokens);
434
- this.totalTokensSeen = Math.max(this.totalTokensSeen, startPos + numTokens);
435
-
436
- if (layerIdx === this.numLayers - 1) {
437
- this.currentSeqLen = Math.max(this.currentSeqLen, startPos + numTokens);
438
- }
439
- }
440
-
441
-
442
- _updateContiguous(
443
- layer,
444
- keys,
445
- values,
446
- startPos,
447
- numNewTokens
448
- ) {
449
- const offset = startPos * this.kvSize;
450
- const device = getDevice();
451
-
452
- // Handle GPU buffer inputs
453
- if (keys instanceof GPUBuffer) {
454
- // For GPU inputs, copy to GPU cache directly
455
- if (layer.keysGPU && device) {
456
- const byteOffset = offset * this.bytesPerElem;
457
- const byteSize = numNewTokens * this.kvSize * this.bytesPerElem;
458
- const encoder = device.createCommandEncoder({ label: 'kv_update_gpu' });
459
- encoder.copyBufferToBuffer(keys, 0, layer.keysGPU, byteOffset, byteSize);
460
- encoder.copyBufferToBuffer( (values), 0, layer.valuesGPU, byteOffset, byteSize);
461
- device.queue.submit([encoder.finish()]);
462
- }
463
- return;
464
- }
465
-
466
- // CPU path
467
- layer.keys.set(keys, offset);
468
- layer.values.set( (values), offset);
469
-
470
- // Also update GPU if available
471
- if (layer.keysGPU && device) {
472
- const byteOffset = offset * this.bytesPerElem;
473
- if (this.kvDtype === 'f16') {
474
- const keysF16 = f32ToF16Array( (keys));
475
- const valuesF16 = f32ToF16Array( (values));
476
- device.queue.writeBuffer(layer.keysGPU, byteOffset, keysF16);
477
- device.queue.writeBuffer(layer.valuesGPU, byteOffset, valuesF16);
478
- } else {
479
- device.queue.writeBuffer(layer.keysGPU, byteOffset, (keys));
480
- device.queue.writeBuffer(layer.valuesGPU, byteOffset, (values));
481
- }
482
- }
483
- }
484
-
485
-
486
- _updatePaged(
487
- layerIdx,
488
- layer,
489
- keys,
490
- values,
491
- startPos,
492
- numNewTokens
493
- ) {
494
- const device = getDevice();
495
- if (layer.keysGPU && layer.valuesGPU && device) {
496
- const byteOffset = startPos * this.kvSize * this.bytesPerElem;
497
- if (this.kvDtype === 'f16') {
498
- const keysF16 = f32ToF16Array( (keys));
499
- const valuesF16 = f32ToF16Array( (values));
500
- device.queue.writeBuffer(layer.keysGPU, byteOffset, keysF16);
501
- device.queue.writeBuffer(layer.valuesGPU, byteOffset, valuesF16);
502
- } else {
503
- device.queue.writeBuffer(layer.keysGPU, byteOffset, (keys));
504
- device.queue.writeBuffer(layer.valuesGPU, byteOffset, (values));
505
- }
506
- }
507
-
508
- for (let t = 0; t < numNewTokens; t++) {
509
- const pos = startPos + t;
510
- this._ensurePagesAllocated(layerIdx, pos);
511
-
512
- const { pageIdx, offset } = this._getPageLocation(pos);
513
- const srcOffset = t * this.kvSize;
514
-
515
- layer.keyPages[pageIdx].set(
516
- keys.subarray(srcOffset, srcOffset + this.kvSize),
517
- offset
518
- );
519
- layer.valuePages[pageIdx].set(
520
- values.subarray(srcOffset, srcOffset + this.kvSize),
521
- offset
522
- );
523
- }
524
- }
525
-
526
- // ==========================================================================
527
- // Get Methods
528
- // ==========================================================================
529
-
530
-
531
- get(layerIdx, startPos = 0, endPos) {
532
- this._assertLayerIndex(layerIdx);
533
- this._assertStartPos(startPos);
534
- const layer = this.layers[layerIdx];
535
- const actualEndPos = endPos ?? layer.seqLen;
536
- if (!Number.isInteger(actualEndPos) || actualEndPos < startPos) {
537
- throw new Error('KVCache get requires endPos >= startPos.');
538
- }
539
- if (actualEndPos > layer.seqLen) {
540
- throw new Error('KVCache get range exceeds cached sequence length.');
541
- }
542
-
543
- if (this.layout === 'paged' && this.useGPU) {
544
- throw new Error('Paged GPU cache does not support CPU readback via get().');
545
- }
546
-
547
- if (this.layout === 'paged') {
548
- return this._getPaged( (layer), startPos, actualEndPos);
549
- } else {
550
- return this._getContiguous( (layer), startPos, actualEndPos);
551
- }
552
- }
553
-
554
-
555
- getKeyCache(layerIdx) {
556
- const layer = this.layers[layerIdx];
557
- if (isContiguousLayer(layer)) {
558
- return layer.keysGPU || layer.keys;
559
- }
560
- if (this.layout === 'paged') {
561
- return layer.keysGPU || null;
562
- }
563
- return null;
564
- }
565
-
566
-
567
- getValueCache(layerIdx) {
568
- const layer = this.layers[layerIdx];
569
- if (isContiguousLayer(layer)) {
570
- return layer.valuesGPU || layer.values;
571
- }
572
- if (this.layout === 'paged') {
573
- return layer.valuesGPU || null;
574
- }
575
- return null;
576
- }
577
-
578
-
579
- getGPUBuffers(layerIdx) {
580
- const layer = this.layers[layerIdx];
581
-
582
- if (this.layout === 'paged') {
583
- if (!layer.keysGPU || !layer.valuesGPU || !layer.pageTableGPU) {
584
- return null;
585
- }
586
- return {
587
- keysGPU: layer.keysGPU,
588
- valuesGPU: layer.valuesGPU,
589
- seqLen: layer.seqLen,
590
- pageTableGPU: layer.pageTableGPU,
591
- pageSize: this.pageSize,
592
- };
593
- }
594
-
595
- if (!isContiguousLayer(layer) || !layer.keysGPU || !layer.valuesGPU) {
596
- return null;
597
- }
598
-
599
- return {
600
- keysGPU: layer.keysGPU,
601
- valuesGPU: layer.valuesGPU,
602
- seqLen: layer.seqLen,
603
- };
604
- }
605
-
606
-
607
- hasGPUCache() {
608
- const firstLayer = this.layers[0];
609
- if (!this.useGPU) return false;
610
- if (this.layout === 'paged') {
611
- return firstLayer.keysGPU != null && firstLayer.valuesGPU != null;
612
- }
613
- return isContiguousLayer(firstLayer) && firstLayer.keysGPU != null;
614
- }
615
-
616
-
617
- _getContiguous(
618
- layer,
619
- startPos,
620
- endPos
621
- ) {
622
- const startOffset = startPos * this.kvSize;
623
- const endOffset = endPos * this.kvSize;
624
-
625
- return {
626
- keys: layer.keys.subarray(startOffset, endOffset),
627
- values: layer.values.subarray(startOffset, endOffset)
628
- };
629
- }
630
-
631
-
632
- _getPaged(
633
- layer,
634
- startPos,
635
- endPos
636
- ) {
637
- const length = (endPos - startPos) * this.kvSize;
638
- const keys = new Float32Array(length);
639
- const values = new Float32Array(length);
640
-
641
- let destOffset = 0;
642
- for (let pos = startPos; pos < endPos; pos++) {
643
- const { pageIdx, offset } = this._getPageLocation(pos);
644
- const keyPage = layer.keyPages[pageIdx];
645
- const valuePage = layer.valuePages[pageIdx];
646
- if (!keyPage || !valuePage) {
647
- destOffset += this.kvSize;
648
- continue;
649
- }
650
-
651
- keys.set(keyPage.subarray(offset, offset + this.kvSize), destOffset);
652
- values.set(valuePage.subarray(offset, offset + this.kvSize), destOffset);
653
-
654
- destOffset += this.kvSize;
655
- }
656
-
657
- return { keys, values };
658
- }
659
-
660
- // ==========================================================================
661
- // Cache Management
662
- // ==========================================================================
663
-
664
-
665
- clear() {
666
- this.currentSeqLen = 0;
667
- this.totalTokensSeen = 0;
668
-
669
- for (let l = 0; l < this.numLayers; l++) {
670
- const layer = this.layers[l];
671
- layer.seqLen = 0;
672
-
673
- if (this.layout === 'paged') {
674
- // Don't deallocate pages, just reset length
675
- // Pages will be reused
676
- } else {
677
- // Zero out contiguous arrays
678
- const contiguousLayer = (layer);
679
- contiguousLayer.keys.fill(0);
680
- contiguousLayer.values.fill(0);
681
- }
682
- }
683
- }
684
-
685
-
686
- clone() {
687
- if (this.layout === 'paged') {
688
- const cloned = new KVCache({
689
- numLayers: this.numLayers,
690
- numHeads: this.numHeads,
691
- headDim: this.headDim,
692
- maxSeqLen: this.maxSeqLen,
693
- useGPU: this.useGPU,
694
- layout: 'paged',
695
- pageSize: this.pageSize,
696
- kvDtype: this.kvDtype
697
- });
698
-
699
- cloned.currentSeqLen = this.currentSeqLen;
700
- cloned.totalTokensSeen = this.totalTokensSeen;
701
-
702
- const device = this.useGPU ? getDevice() : null;
703
- if (this.useGPU && !device) {
704
- throw new Error('GPU device not initialized');
705
- }
706
-
707
- for (let l = 0; l < this.numLayers; l++) {
708
- const src = this.layers[l];
709
- const dst = cloned.layers[l];
710
-
711
- const inferredPages = Math.ceil(src.seqLen / this.pageSize);
712
- const allocatedPages = Number.isFinite(src.allocatedPages)
713
- ? Math.max(src.allocatedPages, inferredPages)
714
- : inferredPages;
715
- dst.allocatedPages = allocatedPages;
716
- dst.seqLen = src.seqLen;
717
-
718
- if (this.useGPU && src.keysGPU && src.valuesGPU && dst.keysGPU && dst.valuesGPU) {
719
- const usedBytes = src.seqLen * this.kvSize * this.bytesPerElem;
720
- if (usedBytes > 0) {
721
- const encoder = device.createCommandEncoder({ label: `kv_cache_clone_paged_${l}` });
722
- encoder.copyBufferToBuffer(src.keysGPU, 0, dst.keysGPU, 0, usedBytes);
723
- encoder.copyBufferToBuffer(src.valuesGPU, 0, dst.valuesGPU, 0, usedBytes);
724
- device.queue.submit([encoder.finish()]);
725
- }
726
- }
727
-
728
- if (src.pageTable && dst.pageTable && dst.pageTableGPU && device) {
729
- dst.pageTable.set(src.pageTable);
730
- device.queue.writeBuffer(dst.pageTableGPU, 0, src.pageTable);
731
- }
732
-
733
- if (!this.useGPU) {
734
- for (let p = 0; p < allocatedPages; p++) {
735
- const keyPage = src.keyPages?.[p];
736
- const valuePage = src.valuePages?.[p];
737
- if (!keyPage || !valuePage) {
738
- continue;
739
- }
740
- const nextKeyPage = cloned._allocatePage();
741
- nextKeyPage.set(keyPage);
742
- const nextValuePage = cloned._allocatePage();
743
- nextValuePage.set(valuePage);
744
- dst.keyPages[p] = nextKeyPage;
745
- dst.valuePages[p] = nextValuePage;
746
- }
747
- }
748
- }
749
-
750
- return cloned;
751
- }
752
-
753
- const cloned = new KVCache({
754
- numLayers: this.numLayers,
755
- numHeads: this.numHeads,
756
- headDim: this.headDim,
757
- maxSeqLen: this.maxSeqLen,
758
- useGPU: false, // Always clone to CPU
759
- layout: 'contiguous', // Simplify for clone
760
- pageSize: this.pageSize,
761
- kvDtype: this.kvDtype
762
- });
763
-
764
- cloned.currentSeqLen = this.currentSeqLen;
765
-
766
- for (let l = 0; l < this.numLayers; l++) {
767
- const { keys, values } = this.get(l);
768
- const clonedLayer = (cloned.layers[l]);
769
- clonedLayer.keys.set(keys);
770
- clonedLayer.values.set(values);
771
- clonedLayer.seqLen = this.layers[l].seqLen;
772
- }
773
-
774
- return cloned;
775
- }
776
-
777
-
778
- truncate(length) {
779
- if (length >= this.currentSeqLen) return;
780
-
781
- this.currentSeqLen = length;
782
- this.totalTokensSeen = Math.min(this.totalTokensSeen, length);
783
- for (let l = 0; l < this.numLayers; l++) {
784
- this.layers[l].seqLen = Math.min(this.layers[l].seqLen, length);
785
- }
786
- }
787
-
788
-
789
- getMemoryStats() {
790
- const theoretical = this.numLayers * 2 * this.maxSeqLen * this.kvSize * this.bytesPerElem;
791
- const actual = this.memoryUsage;
792
- const used = this.numLayers * 2 * this.currentSeqLen * this.kvSize * this.bytesPerElem;
793
-
794
- return {
795
- theoretical: theoretical,
796
- allocated: actual,
797
- used: used,
798
- efficiency: used / actual,
799
- seqLen: this.currentSeqLen,
800
- maxSeqLen: this.maxSeqLen,
801
- layout: this.layout
802
- };
803
- }
804
-
805
- // ==========================================================================
806
- // GPU Migration
807
- // ==========================================================================
808
-
809
-
810
- setGPUContext(gpuContext) {
811
- this.gpuContext = gpuContext;
812
-
813
- // Migrate existing cache to GPU if we have data
814
- if (this.currentSeqLen > 0 && gpuContext?.device) {
815
- this._migrateToGPU(gpuContext.device);
816
- }
817
- }
818
-
819
- _destroyGpuBuffer(buffer) {
820
- if (!buffer) return;
821
- try {
822
- buffer.destroy();
823
- } catch {
824
- // Ignore already-destroyed buffers during rollback.
825
- }
826
- }
827
-
828
- _snapshotLayerGpuState(layer) {
829
- return {
830
- keysGPU: layer.keysGPU ?? null,
831
- valuesGPU: layer.valuesGPU ?? null,
832
- pageTableGPU: layer.pageTableGPU ?? null,
833
- };
834
- }
835
-
836
- _rollbackMigratedLayers(snapshots) {
837
- for (let l = 0; l < this.numLayers; l++) {
838
- const layer = this.layers[l];
839
- const snapshot = snapshots[l];
840
- if (!snapshot) continue;
841
-
842
- if (layer.keysGPU && layer.keysGPU !== snapshot.keysGPU) {
843
- this._destroyGpuBuffer(layer.keysGPU);
844
- }
845
- if (layer.valuesGPU && layer.valuesGPU !== snapshot.valuesGPU) {
846
- this._destroyGpuBuffer(layer.valuesGPU);
847
- }
848
- if (layer.pageTableGPU && layer.pageTableGPU !== snapshot.pageTableGPU) {
849
- this._destroyGpuBuffer(layer.pageTableGPU);
850
- }
851
-
852
- layer.keysGPU = snapshot.keysGPU;
853
- layer.valuesGPU = snapshot.valuesGPU;
854
- if ('pageTableGPU' in layer) {
855
- layer.pageTableGPU = snapshot.pageTableGPU;
856
- }
857
- }
858
- }
859
-
860
-
861
- _migrateToGPU(device) {
862
- const snapshots = this.layers.map((layer) => this._snapshotLayerGpuState(layer));
863
-
864
- try {
865
- if (this.layout === 'paged') {
866
- log.info('KVCache', `Migrating ${this.currentSeqLen} positions to GPU (paged)...`);
867
- const numPages = Math.ceil(this.maxSeqLen / this.pageSize);
868
- const sizePerLayer = this.maxSeqLen * this.kvSize;
869
- const bytesPerLayer = sizePerLayer * this.bytesPerElem;
870
- const pageTableBytes = numPages * 4;
871
-
872
- for (let l = 0; l < this.numLayers; l++) {
873
- const layer = (this.layers[l]);
874
- let keysGPU = null;
875
- let valuesGPU = null;
876
- let pageTableGPU = null;
877
- try {
878
- keysGPU = device.createBuffer({
879
- label: `kv_cache_keys_paged_layer_${l}`,
880
- size: bytesPerLayer,
881
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
882
- });
883
- valuesGPU = device.createBuffer({
884
- label: `kv_cache_values_paged_layer_${l}`,
885
- size: bytesPerLayer,
886
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
887
- });
888
-
889
- if (!layer.pageTable) {
890
- layer.pageTable = new Uint32Array(numPages);
891
- for (let i = 0; i < numPages; i++) {
892
- layer.pageTable[i] = i;
893
- }
894
- }
895
- pageTableGPU = device.createBuffer({
896
- label: `kv_cache_page_table_layer_${l}`,
897
- size: pageTableBytes,
898
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
899
- });
900
- device.queue.writeBuffer(pageTableGPU, 0, layer.pageTable);
901
-
902
- const allocatedPages = layer.allocatedPages ?? 0;
903
- if (allocatedPages > 0) {
904
- const pageElems = this.pageSize * this.kvSize;
905
- const pageBytes = pageElems * this.bytesPerElem;
906
- for (let p = 0; p < allocatedPages; p++) {
907
- const keyPage = layer.keyPages?.[p];
908
- const valuePage = layer.valuePages?.[p];
909
- if (!keyPage || !valuePage) continue;
910
- const byteOffset = p * pageBytes;
911
- if (this.kvDtype === 'f16') {
912
- const keysF16 = f32ToF16Array(keyPage);
913
- const valuesF16 = f32ToF16Array(valuePage);
914
- device.queue.writeBuffer(keysGPU, byteOffset, keysF16);
915
- device.queue.writeBuffer(valuesGPU, byteOffset, valuesF16);
916
- } else {
917
- device.queue.writeBuffer(keysGPU, byteOffset, keyPage);
918
- device.queue.writeBuffer(valuesGPU, byteOffset, valuePage);
919
- }
920
- }
921
- }
922
-
923
- this._destroyGpuBuffer(layer.keysGPU);
924
- this._destroyGpuBuffer(layer.valuesGPU);
925
- this._destroyGpuBuffer(layer.pageTableGPU);
926
- layer.keysGPU = keysGPU;
927
- layer.valuesGPU = valuesGPU;
928
- layer.pageTableGPU = pageTableGPU;
929
- } catch (error) {
930
- this._destroyGpuBuffer(keysGPU);
931
- this._destroyGpuBuffer(valuesGPU);
932
- this._destroyGpuBuffer(pageTableGPU);
933
- throw error;
934
- }
935
- }
936
-
937
- this.useGPU = true;
938
- log.info('KVCache', 'Paged migration complete');
939
- return;
940
- }
941
-
942
- log.info('KVCache', `Migrating ${this.currentSeqLen} positions to GPU...`);
943
- const sizePerLayer = this.maxSeqLen * this.kvSize;
944
- const bytesPerLayer = sizePerLayer * this.bytesPerElem;
945
-
946
- for (let l = 0; l < this.numLayers; l++) {
947
- const layer = (this.layers[l]);
948
- let keysGPU = null;
949
- let valuesGPU = null;
950
- try {
951
- keysGPU = device.createBuffer({
952
- label: `kv_cache_keys_layer_${l}`,
953
- size: bytesPerLayer,
954
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
955
- });
956
- valuesGPU = device.createBuffer({
957
- label: `kv_cache_values_layer_${l}`,
958
- size: bytesPerLayer,
959
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
960
- });
961
-
962
- // Upload existing CPU data to GPU
963
- const usedElems = layer.seqLen * this.kvSize;
964
- const usedSize = usedElems * this.bytesPerElem;
965
- if (usedSize > 0) {
966
- if (this.kvDtype === 'f16') {
967
- const keysF16 = f32ToF16Array(layer.keys.subarray(0, usedElems));
968
- const valuesF16 = f32ToF16Array(layer.values.subarray(0, usedElems));
969
- device.queue.writeBuffer(keysGPU, 0, keysF16);
970
- device.queue.writeBuffer(valuesGPU, 0, valuesF16);
971
- } else {
972
- device.queue.writeBuffer(
973
- keysGPU,
974
- 0,
975
- layer.keys.buffer,
976
- layer.keys.byteOffset,
977
- usedSize
978
- );
979
- device.queue.writeBuffer(
980
- valuesGPU,
981
- 0,
982
- layer.values.buffer,
983
- layer.values.byteOffset,
984
- usedSize
985
- );
986
- }
987
- }
988
-
989
- this._destroyGpuBuffer(layer.keysGPU);
990
- this._destroyGpuBuffer(layer.valuesGPU);
991
- layer.keysGPU = keysGPU;
992
- layer.valuesGPU = valuesGPU;
993
- } catch (error) {
994
- this._destroyGpuBuffer(keysGPU);
995
- this._destroyGpuBuffer(valuesGPU);
996
- throw error;
997
- }
998
- }
999
-
1000
- this.useGPU = true;
1001
- log.info('KVCache', 'Migration complete');
1002
- } catch (error) {
1003
- this._rollbackMigratedLayers(snapshots);
1004
- throw error;
1005
- }
1006
- }
1007
-
1008
-
1009
- async syncToCPU() {
1010
- if (!this.useGPU || this.layout === 'paged') return;
1011
- if (!allowReadback('kv-cache.syncToCPU')) return;
1012
-
1013
- const device = getDevice();
1014
- if (!device) return;
1015
-
1016
- const sizePerLayer = this.maxSeqLen * this.kvSize;
1017
-
1018
- for (let l = 0; l < this.numLayers; l++) {
1019
- const layer = (this.layers[l]);
1020
- if (!layer.keysGPU || !layer.valuesGPU) continue;
1021
-
1022
- const usedSize = layer.seqLen * this.kvSize * this.bytesPerElem;
1023
- if (usedSize === 0) continue;
1024
-
1025
- // Allocate CPU arrays on-demand if empty (lazy allocation from GPU mode)
1026
- if (layer.keys.length === 0) {
1027
- layer.keys = new Float32Array(sizePerLayer);
1028
- layer.values = new Float32Array(sizePerLayer);
1029
- }
1030
-
1031
- const [keysBytes, valuesBytes] = await Promise.all([
1032
- readBuffer(layer.keysGPU, usedSize),
1033
- readBuffer(layer.valuesGPU, usedSize),
1034
- ]);
1035
-
1036
- if (this.kvDtype === 'f16') {
1037
- const keysRaw = new Uint16Array(keysBytes);
1038
- const valuesRaw = new Uint16Array(valuesBytes);
1039
- const keysData = f16ToF32Array(keysRaw);
1040
- const valuesData = f16ToF32Array(valuesRaw);
1041
- layer.keys.set(keysData);
1042
- layer.values.set(valuesData);
1043
- } else {
1044
- const keysData = new Float32Array(keysBytes);
1045
- const valuesData = new Float32Array(valuesBytes);
1046
- layer.keys.set(keysData);
1047
- layer.values.set(valuesData);
1048
- }
1049
- }
1050
- }
1051
-
1052
-
1053
- destroy() {
1054
- for (let l = 0; l < this.numLayers; l++) {
1055
- const layer = this.layers[l];
1056
- if (this.layout === 'paged') {
1057
- if (layer.keysGPU) {
1058
- layer.keysGPU.destroy();
1059
- layer.keysGPU = null;
1060
- }
1061
- if (layer.valuesGPU) {
1062
- layer.valuesGPU.destroy();
1063
- layer.valuesGPU = null;
1064
- }
1065
- if (layer.pageTableGPU) {
1066
- layer.pageTableGPU.destroy();
1067
- layer.pageTableGPU = null;
1068
- }
1069
- continue;
1070
- }
1071
- if (isContiguousLayer(layer)) {
1072
- if (layer.keysGPU) {
1073
- layer.keysGPU.destroy();
1074
- layer.keysGPU = null;
1075
- }
1076
- if (layer.valuesGPU) {
1077
- layer.valuesGPU.destroy();
1078
- layer.valuesGPU = null;
1079
- }
1080
- }
1081
- }
1082
- }
1083
- }