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