local-llm-rn 1.0.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 (626) hide show
  1. package/cpp/CMakeLists.txt +285 -0
  2. package/cpp/common/CMakeLists.txt +149 -0
  3. package/cpp/common/arg.cpp +3799 -0
  4. package/cpp/common/arg.h +131 -0
  5. package/cpp/common/base64.hpp +392 -0
  6. package/cpp/common/build-info.cpp.in +4 -0
  7. package/cpp/common/chat-parser-xml-toolcall.cpp +879 -0
  8. package/cpp/common/chat-parser-xml-toolcall.h +45 -0
  9. package/cpp/common/chat-parser.cpp +1649 -0
  10. package/cpp/common/chat-parser.h +133 -0
  11. package/cpp/common/chat-peg-parser.cpp +124 -0
  12. package/cpp/common/chat-peg-parser.h +105 -0
  13. package/cpp/common/chat.cpp +3355 -0
  14. package/cpp/common/chat.h +252 -0
  15. package/cpp/common/common.cpp +1824 -0
  16. package/cpp/common/common.h +930 -0
  17. package/cpp/common/console.cpp +1137 -0
  18. package/cpp/common/console.h +41 -0
  19. package/cpp/common/debug.cpp +167 -0
  20. package/cpp/common/debug.h +43 -0
  21. package/cpp/common/download.cpp +792 -0
  22. package/cpp/common/download.h +84 -0
  23. package/cpp/common/http.h +84 -0
  24. package/cpp/common/jinja/README.md +88 -0
  25. package/cpp/common/jinja/caps.cpp +285 -0
  26. package/cpp/common/jinja/caps.h +30 -0
  27. package/cpp/common/jinja/lexer.cpp +341 -0
  28. package/cpp/common/jinja/lexer.h +157 -0
  29. package/cpp/common/jinja/parser.cpp +591 -0
  30. package/cpp/common/jinja/parser.h +21 -0
  31. package/cpp/common/jinja/runtime.cpp +867 -0
  32. package/cpp/common/jinja/runtime.h +638 -0
  33. package/cpp/common/jinja/string.cpp +213 -0
  34. package/cpp/common/jinja/string.h +61 -0
  35. package/cpp/common/jinja/utils.h +149 -0
  36. package/cpp/common/jinja/value.cpp +1393 -0
  37. package/cpp/common/jinja/value.h +756 -0
  38. package/cpp/common/json-partial.cpp +324 -0
  39. package/cpp/common/json-partial.h +39 -0
  40. package/cpp/common/json-schema-to-grammar.cpp +1153 -0
  41. package/cpp/common/json-schema-to-grammar.h +43 -0
  42. package/cpp/common/llguidance.cpp +258 -0
  43. package/cpp/common/log.cpp +446 -0
  44. package/cpp/common/log.h +119 -0
  45. package/cpp/common/ngram-cache.cpp +285 -0
  46. package/cpp/common/ngram-cache.h +101 -0
  47. package/cpp/common/ngram-map.cpp +530 -0
  48. package/cpp/common/ngram-map.h +115 -0
  49. package/cpp/common/ngram-mod.cpp +60 -0
  50. package/cpp/common/ngram-mod.h +38 -0
  51. package/cpp/common/peg-parser.cpp +1712 -0
  52. package/cpp/common/peg-parser.h +459 -0
  53. package/cpp/common/preset.cpp +483 -0
  54. package/cpp/common/preset.h +83 -0
  55. package/cpp/common/regex-partial.cpp +204 -0
  56. package/cpp/common/regex-partial.h +56 -0
  57. package/cpp/common/sampling.cpp +745 -0
  58. package/cpp/common/sampling.h +119 -0
  59. package/cpp/common/speculative.cpp +1074 -0
  60. package/cpp/common/speculative.h +41 -0
  61. package/cpp/common/unicode.cpp +64 -0
  62. package/cpp/common/unicode.h +22 -0
  63. package/cpp/ggml/CMakeLists.txt +494 -0
  64. package/cpp/ggml/cmake/GitVars.cmake +22 -0
  65. package/cpp/ggml/cmake/common.cmake +50 -0
  66. package/cpp/ggml/cmake/ggml-config.cmake.in +191 -0
  67. package/cpp/ggml/include/ggml-alloc.h +85 -0
  68. package/cpp/ggml/include/ggml-backend.h +373 -0
  69. package/cpp/ggml/include/ggml-blas.h +25 -0
  70. package/cpp/ggml/include/ggml-cann.h +123 -0
  71. package/cpp/ggml/include/ggml-cpp.h +39 -0
  72. package/cpp/ggml/include/ggml-cpu.h +151 -0
  73. package/cpp/ggml/include/ggml-cuda.h +47 -0
  74. package/cpp/ggml/include/ggml-hexagon.h +19 -0
  75. package/cpp/ggml/include/ggml-metal.h +61 -0
  76. package/cpp/ggml/include/ggml-opencl.h +26 -0
  77. package/cpp/ggml/include/ggml-opt.h +256 -0
  78. package/cpp/ggml/include/ggml-rpc.h +30 -0
  79. package/cpp/ggml/include/ggml-sycl.h +49 -0
  80. package/cpp/ggml/include/ggml-virtgpu.h +14 -0
  81. package/cpp/ggml/include/ggml-vulkan.h +29 -0
  82. package/cpp/ggml/include/ggml-webgpu.h +19 -0
  83. package/cpp/ggml/include/ggml-zdnn.h +17 -0
  84. package/cpp/ggml/include/ggml-zendnn.h +22 -0
  85. package/cpp/ggml/include/ggml.h +2753 -0
  86. package/cpp/ggml/include/gguf.h +204 -0
  87. package/cpp/ggml/src/CMakeLists.txt +492 -0
  88. package/cpp/ggml/src/ggml-alloc.c +1244 -0
  89. package/cpp/ggml/src/ggml-backend-dl.cpp +48 -0
  90. package/cpp/ggml/src/ggml-backend-dl.h +45 -0
  91. package/cpp/ggml/src/ggml-backend-impl.h +255 -0
  92. package/cpp/ggml/src/ggml-backend-reg.cpp +566 -0
  93. package/cpp/ggml/src/ggml-backend.cpp +2270 -0
  94. package/cpp/ggml/src/ggml-blas/CMakeLists.txt +101 -0
  95. package/cpp/ggml/src/ggml-blas/ggml-blas.cpp +518 -0
  96. package/cpp/ggml/src/ggml-common.h +1878 -0
  97. package/cpp/ggml/src/ggml-cpu/CMakeLists.txt +691 -0
  98. package/cpp/ggml/src/ggml-cpu/amx/amx.cpp +247 -0
  99. package/cpp/ggml/src/ggml-cpu/amx/amx.h +8 -0
  100. package/cpp/ggml/src/ggml-cpu/amx/common.h +91 -0
  101. package/cpp/ggml/src/ggml-cpu/amx/mmq.cpp +2512 -0
  102. package/cpp/ggml/src/ggml-cpu/amx/mmq.h +10 -0
  103. package/cpp/ggml/src/ggml-cpu/arch/arm/cpu-feats.cpp +98 -0
  104. package/cpp/ggml/src/ggml-cpu/arch/arm/quants.c +4052 -0
  105. package/cpp/ggml/src/ggml-cpu/arch/arm/repack.cpp +4935 -0
  106. package/cpp/ggml/src/ggml-cpu/arch/loongarch/quants.c +2159 -0
  107. package/cpp/ggml/src/ggml-cpu/arch/powerpc/cpu-feats.cpp +82 -0
  108. package/cpp/ggml/src/ggml-cpu/arch/powerpc/quants.c +2305 -0
  109. package/cpp/ggml/src/ggml-cpu/arch/riscv/cpu-feats.cpp +38 -0
  110. package/cpp/ggml/src/ggml-cpu/arch/riscv/quants.c +2726 -0
  111. package/cpp/ggml/src/ggml-cpu/arch/riscv/repack.cpp +342 -0
  112. package/cpp/ggml/src/ggml-cpu/arch/s390/cpu-feats.cpp +50 -0
  113. package/cpp/ggml/src/ggml-cpu/arch/s390/quants.c +1468 -0
  114. package/cpp/ggml/src/ggml-cpu/arch/wasm/quants.c +1221 -0
  115. package/cpp/ggml/src/ggml-cpu/arch/x86/cpu-feats.cpp +327 -0
  116. package/cpp/ggml/src/ggml-cpu/arch/x86/quants.c +3820 -0
  117. package/cpp/ggml/src/ggml-cpu/arch/x86/repack.cpp +6307 -0
  118. package/cpp/ggml/src/ggml-cpu/arch-fallback.h +313 -0
  119. package/cpp/ggml/src/ggml-cpu/binary-ops.cpp +154 -0
  120. package/cpp/ggml/src/ggml-cpu/binary-ops.h +16 -0
  121. package/cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake +100 -0
  122. package/cpp/ggml/src/ggml-cpu/common.h +95 -0
  123. package/cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h +529 -0
  124. package/cpp/ggml/src/ggml-cpu/ggml-cpu.c +3734 -0
  125. package/cpp/ggml/src/ggml-cpu/ggml-cpu.cpp +701 -0
  126. package/cpp/ggml/src/ggml-cpu/hbm.cpp +55 -0
  127. package/cpp/ggml/src/ggml-cpu/hbm.h +8 -0
  128. package/cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp +938 -0
  129. package/cpp/ggml/src/ggml-cpu/kleidiai/kernels.h +90 -0
  130. package/cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp +798 -0
  131. package/cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h +17 -0
  132. package/cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp +4033 -0
  133. package/cpp/ggml/src/ggml-cpu/llamafile/sgemm.h +25 -0
  134. package/cpp/ggml/src/ggml-cpu/ops.cpp +10978 -0
  135. package/cpp/ggml/src/ggml-cpu/ops.h +116 -0
  136. package/cpp/ggml/src/ggml-cpu/quants.c +1193 -0
  137. package/cpp/ggml/src/ggml-cpu/quants.h +97 -0
  138. package/cpp/ggml/src/ggml-cpu/repack.cpp +3316 -0
  139. package/cpp/ggml/src/ggml-cpu/repack.h +173 -0
  140. package/cpp/ggml/src/ggml-cpu/simd-gemm.h +136 -0
  141. package/cpp/ggml/src/ggml-cpu/simd-mappings.h +1279 -0
  142. package/cpp/ggml/src/ggml-cpu/spacemit/ime.cpp +1025 -0
  143. package/cpp/ggml/src/ggml-cpu/spacemit/ime.h +13 -0
  144. package/cpp/ggml/src/ggml-cpu/spacemit/ime1_kernels.cpp +3196 -0
  145. package/cpp/ggml/src/ggml-cpu/spacemit/ime_kernels.h +26 -0
  146. package/cpp/ggml/src/ggml-cpu/traits.cpp +36 -0
  147. package/cpp/ggml/src/ggml-cpu/traits.h +38 -0
  148. package/cpp/ggml/src/ggml-cpu/unary-ops.cpp +337 -0
  149. package/cpp/ggml/src/ggml-cpu/unary-ops.h +35 -0
  150. package/cpp/ggml/src/ggml-cpu/vec.cpp +629 -0
  151. package/cpp/ggml/src/ggml-cpu/vec.h +1585 -0
  152. package/cpp/ggml/src/ggml-hexagon/CMakeLists.txt +117 -0
  153. package/cpp/ggml/src/ggml-hexagon/ggml-hexagon.cpp +3232 -0
  154. package/cpp/ggml/src/ggml-hexagon/htp/CMakeLists.txt +45 -0
  155. package/cpp/ggml/src/ggml-hexagon/htp/act-ops.c +815 -0
  156. package/cpp/ggml/src/ggml-hexagon/htp/argsort-ops.c +281 -0
  157. package/cpp/ggml/src/ggml-hexagon/htp/binary-ops.c +827 -0
  158. package/cpp/ggml/src/ggml-hexagon/htp/cmake-toolchain.cmake +157 -0
  159. package/cpp/ggml/src/ggml-hexagon/htp/cpy-ops.c +251 -0
  160. package/cpp/ggml/src/ggml-hexagon/htp/flash-attn-ops.c +666 -0
  161. package/cpp/ggml/src/ggml-hexagon/htp/get-rows-ops.c +111 -0
  162. package/cpp/ggml/src/ggml-hexagon/htp/hex-dma.c +63 -0
  163. package/cpp/ggml/src/ggml-hexagon/htp/hex-dma.h +182 -0
  164. package/cpp/ggml/src/ggml-hexagon/htp/hex-dump.h +77 -0
  165. package/cpp/ggml/src/ggml-hexagon/htp/hex-fastdiv.h +37 -0
  166. package/cpp/ggml/src/ggml-hexagon/htp/hex-utils.h +51 -0
  167. package/cpp/ggml/src/ggml-hexagon/htp/htp-ctx.h +35 -0
  168. package/cpp/ggml/src/ggml-hexagon/htp/htp-msg.h +154 -0
  169. package/cpp/ggml/src/ggml-hexagon/htp/htp-ops.h +65 -0
  170. package/cpp/ggml/src/ggml-hexagon/htp/htp_iface.idl +16 -0
  171. package/cpp/ggml/src/ggml-hexagon/htp/hvx-arith.h +470 -0
  172. package/cpp/ggml/src/ggml-hexagon/htp/hvx-base.h +173 -0
  173. package/cpp/ggml/src/ggml-hexagon/htp/hvx-copy.h +245 -0
  174. package/cpp/ggml/src/ggml-hexagon/htp/hvx-div.h +116 -0
  175. package/cpp/ggml/src/ggml-hexagon/htp/hvx-dump.h +129 -0
  176. package/cpp/ggml/src/ggml-hexagon/htp/hvx-exp.h +215 -0
  177. package/cpp/ggml/src/ggml-hexagon/htp/hvx-floor.h +100 -0
  178. package/cpp/ggml/src/ggml-hexagon/htp/hvx-inverse.h +176 -0
  179. package/cpp/ggml/src/ggml-hexagon/htp/hvx-reduce.h +266 -0
  180. package/cpp/ggml/src/ggml-hexagon/htp/hvx-scale.h +133 -0
  181. package/cpp/ggml/src/ggml-hexagon/htp/hvx-sigmoid.h +141 -0
  182. package/cpp/ggml/src/ggml-hexagon/htp/hvx-sqrt.h +126 -0
  183. package/cpp/ggml/src/ggml-hexagon/htp/hvx-types.h +36 -0
  184. package/cpp/ggml/src/ggml-hexagon/htp/hvx-utils.h +18 -0
  185. package/cpp/ggml/src/ggml-hexagon/htp/main.c +1150 -0
  186. package/cpp/ggml/src/ggml-hexagon/htp/matmul-ops.c +2595 -0
  187. package/cpp/ggml/src/ggml-hexagon/htp/rope-ops.c +498 -0
  188. package/cpp/ggml/src/ggml-hexagon/htp/set-rows-ops.c +167 -0
  189. package/cpp/ggml/src/ggml-hexagon/htp/softmax-ops.c +421 -0
  190. package/cpp/ggml/src/ggml-hexagon/htp/sum-rows-ops.c +130 -0
  191. package/cpp/ggml/src/ggml-hexagon/htp/unary-ops.c +384 -0
  192. package/cpp/ggml/src/ggml-hexagon/htp/worker-pool.c +293 -0
  193. package/cpp/ggml/src/ggml-hexagon/htp/worker-pool.h +57 -0
  194. package/cpp/ggml/src/ggml-hexagon/htp-drv.cpp +418 -0
  195. package/cpp/ggml/src/ggml-hexagon/htp-drv.h +121 -0
  196. package/cpp/ggml/src/ggml-hexagon/libdl.h +79 -0
  197. package/cpp/ggml/src/ggml-hexagon/libggml-htp.inf +38 -0
  198. package/cpp/ggml/src/ggml-hexagon/op-desc.h +153 -0
  199. package/cpp/ggml/src/ggml-impl.h +724 -0
  200. package/cpp/ggml/src/ggml-metal/CMakeLists.txt +124 -0
  201. package/cpp/ggml/src/ggml-metal/ggml-metal-common.cpp +457 -0
  202. package/cpp/ggml/src/ggml-metal/ggml-metal-common.h +52 -0
  203. package/cpp/ggml/src/ggml-metal/ggml-metal-context.h +41 -0
  204. package/cpp/ggml/src/ggml-metal/ggml-metal-context.m +702 -0
  205. package/cpp/ggml/src/ggml-metal/ggml-metal-device.cpp +1890 -0
  206. package/cpp/ggml/src/ggml-metal/ggml-metal-device.h +290 -0
  207. package/cpp/ggml/src/ggml-metal/ggml-metal-device.m +1749 -0
  208. package/cpp/ggml/src/ggml-metal/ggml-metal-impl.h +1054 -0
  209. package/cpp/ggml/src/ggml-metal/ggml-metal-ops.cpp +4370 -0
  210. package/cpp/ggml/src/ggml-metal/ggml-metal-ops.h +94 -0
  211. package/cpp/ggml/src/ggml-metal/ggml-metal.cpp +937 -0
  212. package/cpp/ggml/src/ggml-metal/ggml-metal.metal +9819 -0
  213. package/cpp/ggml/src/ggml-musa/CMakeLists.txt +125 -0
  214. package/cpp/ggml/src/ggml-musa/mudnn.cu +112 -0
  215. package/cpp/ggml/src/ggml-musa/mudnn.cuh +12 -0
  216. package/cpp/ggml/src/ggml-opencl/CMakeLists.txt +150 -0
  217. package/cpp/ggml/src/ggml-opencl/ggml-opencl.cpp +11553 -0
  218. package/cpp/ggml/src/ggml-opencl/kernels/add.cl +190 -0
  219. package/cpp/ggml/src/ggml-opencl/kernels/add_id.cl +42 -0
  220. package/cpp/ggml/src/ggml-opencl/kernels/argsort.cl +86 -0
  221. package/cpp/ggml/src/ggml-opencl/kernels/clamp.cl +20 -0
  222. package/cpp/ggml/src/ggml-opencl/kernels/concat.cl +51 -0
  223. package/cpp/ggml/src/ggml-opencl/kernels/conv2d.cl +185 -0
  224. package/cpp/ggml/src/ggml-opencl/kernels/conv2d_f16_f32.cl +176 -0
  225. package/cpp/ggml/src/ggml-opencl/kernels/cpy.cl +184 -0
  226. package/cpp/ggml/src/ggml-opencl/kernels/cvt.cl +417 -0
  227. package/cpp/ggml/src/ggml-opencl/kernels/diag_mask_inf.cl +58 -0
  228. package/cpp/ggml/src/ggml-opencl/kernels/div.cl +138 -0
  229. package/cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py +26 -0
  230. package/cpp/ggml/src/ggml-opencl/kernels/expm1.cl +113 -0
  231. package/cpp/ggml/src/ggml-opencl/kernels/fill.cl +17 -0
  232. package/cpp/ggml/src/ggml-opencl/kernels/flash_attn_f16.cl +370 -0
  233. package/cpp/ggml/src/ggml-opencl/kernels/flash_attn_f32.cl +371 -0
  234. package/cpp/ggml/src/ggml-opencl/kernels/flash_attn_f32_f16.cl +373 -0
  235. package/cpp/ggml/src/ggml-opencl/kernels/gelu.cl +89 -0
  236. package/cpp/ggml/src/ggml-opencl/kernels/gemm_moe_mxfp4_f32.cl +162 -0
  237. package/cpp/ggml/src/ggml-opencl/kernels/gemv_moe_mxfp4_f32.cl +156 -0
  238. package/cpp/ggml/src/ggml-opencl/kernels/gemv_noshuffle.cl +268 -0
  239. package/cpp/ggml/src/ggml-opencl/kernels/gemv_noshuffle_general.cl +274 -0
  240. package/cpp/ggml/src/ggml-opencl/kernels/gemv_noshuffle_general_q8_0_f32.cl +195 -0
  241. package/cpp/ggml/src/ggml-opencl/kernels/get_rows.cl +187 -0
  242. package/cpp/ggml/src/ggml-opencl/kernels/glu.cl +378 -0
  243. package/cpp/ggml/src/ggml-opencl/kernels/group_norm.cl +121 -0
  244. package/cpp/ggml/src/ggml-opencl/kernels/im2col_f16.cl +57 -0
  245. package/cpp/ggml/src/ggml-opencl/kernels/im2col_f32.cl +57 -0
  246. package/cpp/ggml/src/ggml-opencl/kernels/mean.cl +140 -0
  247. package/cpp/ggml/src/ggml-opencl/kernels/mul.cl +152 -0
  248. package/cpp/ggml/src/ggml-opencl/kernels/mul_mat_Ab_Bi_8x4.cl +139 -0
  249. package/cpp/ggml/src/ggml-opencl/kernels/mul_mat_f16_f32.cl +130 -0
  250. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_f16_f32_kq_kqv.cl +273 -0
  251. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_f16_f32_l4_lm.cl +146 -0
  252. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_f32_f32_l4_lm.cl +147 -0
  253. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q4_0_f32_l4_lm.cl +163 -0
  254. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q4_1_f32_l4_lm.cl +165 -0
  255. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q6_k_f32_l4_lm.cl +158 -0
  256. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q8_0_f32_8x4.cl +129 -0
  257. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q8_0_f32_l4_lm.cl +154 -0
  258. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f16.cl +118 -0
  259. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32.cl +118 -0
  260. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32_1row.cl +94 -0
  261. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32_l4.cl +84 -0
  262. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f32_f32.cl +118 -0
  263. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_mxfp4_f32.cl +189 -0
  264. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_mxfp4_f32_flat.cl +176 -0
  265. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_q4_0_f32_8x_flat.cl +283 -0
  266. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_q8_0_f32.cl +140 -0
  267. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_q8_0_f32_flat.cl +222 -0
  268. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_mxfp4_f32.cl +144 -0
  269. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_mxfp4_f32_flat.cl +167 -0
  270. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32.cl +192 -0
  271. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_1d_16x_flat.cl +307 -0
  272. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_1d_8x_flat.cl +265 -0
  273. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_8x_flat.cl +272 -0
  274. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_v.cl +254 -0
  275. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_1_f32.cl +219 -0
  276. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_1_f32_flat.cl +229 -0
  277. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_k_f32.cl +180 -0
  278. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q6_k_f32.cl +194 -0
  279. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q6_k_f32_flat.cl +194 -0
  280. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q8_0_f32.cl +125 -0
  281. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q8_0_f32_flat.cl +202 -0
  282. package/cpp/ggml/src/ggml-opencl/kernels/norm.cl +161 -0
  283. package/cpp/ggml/src/ggml-opencl/kernels/pad.cl +39 -0
  284. package/cpp/ggml/src/ggml-opencl/kernels/relu.cl +16 -0
  285. package/cpp/ggml/src/ggml-opencl/kernels/repeat.cl +38 -0
  286. package/cpp/ggml/src/ggml-opencl/kernels/rms_norm.cl +190 -0
  287. package/cpp/ggml/src/ggml-opencl/kernels/rope.cl +747 -0
  288. package/cpp/ggml/src/ggml-opencl/kernels/scale.cl +27 -0
  289. package/cpp/ggml/src/ggml-opencl/kernels/set_rows.cl +208 -0
  290. package/cpp/ggml/src/ggml-opencl/kernels/sigmoid.cl +29 -0
  291. package/cpp/ggml/src/ggml-opencl/kernels/silu.cl +30 -0
  292. package/cpp/ggml/src/ggml-opencl/kernels/softmax_4_f16.cl +108 -0
  293. package/cpp/ggml/src/ggml-opencl/kernels/softmax_4_f32.cl +108 -0
  294. package/cpp/ggml/src/ggml-opencl/kernels/softmax_f16.cl +107 -0
  295. package/cpp/ggml/src/ggml-opencl/kernels/softmax_f32.cl +107 -0
  296. package/cpp/ggml/src/ggml-opencl/kernels/softplus.cl +116 -0
  297. package/cpp/ggml/src/ggml-opencl/kernels/solve_tri.cl +51 -0
  298. package/cpp/ggml/src/ggml-opencl/kernels/sqr.cl +53 -0
  299. package/cpp/ggml/src/ggml-opencl/kernels/sqrt.cl +53 -0
  300. package/cpp/ggml/src/ggml-opencl/kernels/ssm_conv.cl +77 -0
  301. package/cpp/ggml/src/ggml-opencl/kernels/sub.cl +138 -0
  302. package/cpp/ggml/src/ggml-opencl/kernels/sum_rows.cl +140 -0
  303. package/cpp/ggml/src/ggml-opencl/kernels/tanh.cl +109 -0
  304. package/cpp/ggml/src/ggml-opencl/kernels/transpose.cl +117 -0
  305. package/cpp/ggml/src/ggml-opencl/kernels/tri.cl +32 -0
  306. package/cpp/ggml/src/ggml-opencl/kernels/tsembd.cl +48 -0
  307. package/cpp/ggml/src/ggml-opencl/kernels/upscale.cl +120 -0
  308. package/cpp/ggml/src/ggml-opt.cpp +1093 -0
  309. package/cpp/ggml/src/ggml-quants.c +5325 -0
  310. package/cpp/ggml/src/ggml-quants.h +106 -0
  311. package/cpp/ggml/src/ggml-rpc/CMakeLists.txt +9 -0
  312. package/cpp/ggml/src/ggml-rpc/ggml-rpc.cpp +2118 -0
  313. package/cpp/ggml/src/ggml-threading.cpp +12 -0
  314. package/cpp/ggml/src/ggml-threading.h +14 -0
  315. package/cpp/ggml/src/ggml-virtgpu/CMakeLists.txt +70 -0
  316. package/cpp/ggml/src/ggml-virtgpu/apir_cs_ggml-rpc-front.cpp +87 -0
  317. package/cpp/ggml/src/ggml-virtgpu/backend/CMakeLists.txt +21 -0
  318. package/cpp/ggml/src/ggml-virtgpu/backend/apir_cs_ggml-rpc-back.cpp +115 -0
  319. package/cpp/ggml/src/ggml-virtgpu/backend/backend-convert.h +13 -0
  320. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-backend.cpp +102 -0
  321. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-buffer-type.cpp +105 -0
  322. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-buffer.cpp +179 -0
  323. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-device.cpp +148 -0
  324. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp +51 -0
  325. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.gen.h +73 -0
  326. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.h +27 -0
  327. package/cpp/ggml/src/ggml-virtgpu/backend/backend-virgl-apir.h +32 -0
  328. package/cpp/ggml/src/ggml-virtgpu/backend/backend.cpp +144 -0
  329. package/cpp/ggml/src/ggml-virtgpu/backend/shared/api_remoting.h +95 -0
  330. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_backend.gen.h +94 -0
  331. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_backend.h +50 -0
  332. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_cs.h +378 -0
  333. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_cs_ggml.h +232 -0
  334. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_cs_rpc.h +58 -0
  335. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-buffer-type.cpp +81 -0
  336. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-buffer.cpp +119 -0
  337. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-device.cpp +158 -0
  338. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-reg.cpp +213 -0
  339. package/cpp/ggml/src/ggml-virtgpu/ggml-backend.cpp +69 -0
  340. package/cpp/ggml/src/ggml-virtgpu/ggml-remoting.h +71 -0
  341. package/cpp/ggml/src/ggml-virtgpu/ggmlremoting_functions.yaml +166 -0
  342. package/cpp/ggml/src/ggml-virtgpu/include/apir_hw.h +9 -0
  343. package/cpp/ggml/src/ggml-virtgpu/regenerate_remoting.py +333 -0
  344. package/cpp/ggml/src/ggml-virtgpu/virtgpu-apir.h +15 -0
  345. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-backend.cpp +58 -0
  346. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-buffer-type.cpp +110 -0
  347. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-buffer.cpp +173 -0
  348. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-device.cpp +192 -0
  349. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-impl.h +36 -0
  350. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward.gen.h +53 -0
  351. package/cpp/ggml/src/ggml-virtgpu/virtgpu-shm.cpp +98 -0
  352. package/cpp/ggml/src/ggml-virtgpu/virtgpu-shm.h +23 -0
  353. package/cpp/ggml/src/ggml-virtgpu/virtgpu-utils.cpp +179 -0
  354. package/cpp/ggml/src/ggml-virtgpu/virtgpu-utils.h +86 -0
  355. package/cpp/ggml/src/ggml-virtgpu/virtgpu.cpp +544 -0
  356. package/cpp/ggml/src/ggml-virtgpu/virtgpu.h +117 -0
  357. package/cpp/ggml/src/ggml-webgpu/CMakeLists.txt +80 -0
  358. package/cpp/ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp +1231 -0
  359. package/cpp/ggml/src/ggml-webgpu/ggml-webgpu.cpp +3150 -0
  360. package/cpp/ggml/src/ggml-webgpu/pre_wgsl.hpp +778 -0
  361. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/argmax.wgsl +72 -0
  362. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/argsort.wgsl +106 -0
  363. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/argsort_merge.wgsl +134 -0
  364. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/binary.wgsl +107 -0
  365. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl +923 -0
  366. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/cpy.tmpl.wgsl +107 -0
  367. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/cumsum.wgsl +66 -0
  368. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/embed_wgsl.py +182 -0
  369. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/flash_attn.wgsl +636 -0
  370. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/get_rows.wgsl +668 -0
  371. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/glu.tmpl.wgsl +323 -0
  372. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/memset.wgsl +40 -0
  373. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat.wgsl +713 -0
  374. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_decls.tmpl +103 -0
  375. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_reg_tile.wgsl +138 -0
  376. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_subgroup_matrix.wgsl +188 -0
  377. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_vec.wgsl +194 -0
  378. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/pad.wgsl +86 -0
  379. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl +123 -0
  380. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/rope.tmpl.wgsl +295 -0
  381. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/scale.wgsl +63 -0
  382. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/set_rows.wgsl +109 -0
  383. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/soft_max.tmpl.wgsl +345 -0
  384. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/sum_rows.wgsl +55 -0
  385. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/unary.wgsl +193 -0
  386. package/cpp/ggml/src/ggml-zdnn/CMakeLists.txt +36 -0
  387. package/cpp/ggml/src/ggml-zdnn/common.hpp +59 -0
  388. package/cpp/ggml/src/ggml-zdnn/ggml-zdnn.cpp +633 -0
  389. package/cpp/ggml/src/ggml-zdnn/mmf.cpp +80 -0
  390. package/cpp/ggml/src/ggml-zdnn/mmf.hpp +12 -0
  391. package/cpp/ggml/src/ggml-zdnn/utils.cpp +79 -0
  392. package/cpp/ggml/src/ggml-zdnn/utils.hpp +19 -0
  393. package/cpp/ggml/src/ggml-zendnn/CMakeLists.txt +92 -0
  394. package/cpp/ggml/src/ggml-zendnn/ggml-zendnn.cpp +469 -0
  395. package/cpp/ggml/src/ggml.c +7669 -0
  396. package/cpp/ggml/src/ggml.cpp +26 -0
  397. package/cpp/ggml/src/gguf.cpp +1699 -0
  398. package/cpp/include/llama-cpp.h +32 -0
  399. package/cpp/include/llama.h +1568 -0
  400. package/cpp/mtmd/CMakeLists.txt +98 -0
  401. package/cpp/mtmd/README.md +63 -0
  402. package/cpp/mtmd/clip-graph.h +117 -0
  403. package/cpp/mtmd/clip-impl.h +586 -0
  404. package/cpp/mtmd/clip-model.h +390 -0
  405. package/cpp/mtmd/clip.cpp +4154 -0
  406. package/cpp/mtmd/clip.h +121 -0
  407. package/cpp/mtmd/deprecation-warning.cpp +22 -0
  408. package/cpp/mtmd/legacy-models/convert_image_encoder_to_gguf.py +412 -0
  409. package/cpp/mtmd/legacy-models/glmedge-convert-image-encoder-to-gguf.py +280 -0
  410. package/cpp/mtmd/legacy-models/glmedge-surgery.py +33 -0
  411. package/cpp/mtmd/legacy-models/llava_surgery.py +38 -0
  412. package/cpp/mtmd/legacy-models/llava_surgery_v2.py +180 -0
  413. package/cpp/mtmd/legacy-models/minicpmv-convert-image-encoder-to-gguf.py +892 -0
  414. package/cpp/mtmd/legacy-models/minicpmv-surgery.py +47 -0
  415. package/cpp/mtmd/models/cogvlm.cpp +98 -0
  416. package/cpp/mtmd/models/conformer.cpp +216 -0
  417. package/cpp/mtmd/models/glm4v.cpp +122 -0
  418. package/cpp/mtmd/models/internvl.cpp +69 -0
  419. package/cpp/mtmd/models/kimik25.cpp +101 -0
  420. package/cpp/mtmd/models/kimivl.cpp +63 -0
  421. package/cpp/mtmd/models/llama4.cpp +96 -0
  422. package/cpp/mtmd/models/llava.cpp +374 -0
  423. package/cpp/mtmd/models/minicpmv.cpp +114 -0
  424. package/cpp/mtmd/models/mobilenetv5.cpp +451 -0
  425. package/cpp/mtmd/models/models.h +128 -0
  426. package/cpp/mtmd/models/nemotron-v2-vl.cpp +35 -0
  427. package/cpp/mtmd/models/paddleocr.cpp +52 -0
  428. package/cpp/mtmd/models/pixtral.cpp +86 -0
  429. package/cpp/mtmd/models/qwen2vl.cpp +183 -0
  430. package/cpp/mtmd/models/qwen3vl.cpp +193 -0
  431. package/cpp/mtmd/models/siglip.cpp +86 -0
  432. package/cpp/mtmd/models/whisper-enc.cpp +115 -0
  433. package/cpp/mtmd/models/youtuvl.cpp +179 -0
  434. package/cpp/mtmd/mtmd-audio.cpp +730 -0
  435. package/cpp/mtmd/mtmd-audio.h +113 -0
  436. package/cpp/mtmd/mtmd-cli.cpp +437 -0
  437. package/cpp/mtmd/mtmd-helper.cpp +521 -0
  438. package/cpp/mtmd/mtmd-helper.h +96 -0
  439. package/cpp/mtmd/mtmd.cpp +1156 -0
  440. package/cpp/mtmd/mtmd.h +319 -0
  441. package/cpp/mtmd/requirements.txt +5 -0
  442. package/cpp/mtmd/test-1.jpeg +0 -0
  443. package/cpp/mtmd/test-2.mp3 +0 -0
  444. package/cpp/mtmd/tests.sh +192 -0
  445. package/cpp/src/CMakeLists.txt +169 -0
  446. package/cpp/src/llama-adapter.cpp +488 -0
  447. package/cpp/src/llama-adapter.h +89 -0
  448. package/cpp/src/llama-arch.cpp +2855 -0
  449. package/cpp/src/llama-arch.h +619 -0
  450. package/cpp/src/llama-batch.cpp +917 -0
  451. package/cpp/src/llama-batch.h +173 -0
  452. package/cpp/src/llama-chat.cpp +896 -0
  453. package/cpp/src/llama-chat.h +71 -0
  454. package/cpp/src/llama-context.cpp +3512 -0
  455. package/cpp/src/llama-context.h +359 -0
  456. package/cpp/src/llama-cparams.cpp +5 -0
  457. package/cpp/src/llama-cparams.h +44 -0
  458. package/cpp/src/llama-grammar.cpp +1464 -0
  459. package/cpp/src/llama-grammar.h +194 -0
  460. package/cpp/src/llama-graph.cpp +2685 -0
  461. package/cpp/src/llama-graph.h +1026 -0
  462. package/cpp/src/llama-hparams.cpp +234 -0
  463. package/cpp/src/llama-hparams.h +339 -0
  464. package/cpp/src/llama-impl.cpp +171 -0
  465. package/cpp/src/llama-impl.h +73 -0
  466. package/cpp/src/llama-io.cpp +15 -0
  467. package/cpp/src/llama-io.h +35 -0
  468. package/cpp/src/llama-kv-cache-iswa.cpp +330 -0
  469. package/cpp/src/llama-kv-cache-iswa.h +137 -0
  470. package/cpp/src/llama-kv-cache.cpp +2271 -0
  471. package/cpp/src/llama-kv-cache.h +388 -0
  472. package/cpp/src/llama-kv-cells.h +533 -0
  473. package/cpp/src/llama-memory-hybrid-iswa.cpp +275 -0
  474. package/cpp/src/llama-memory-hybrid-iswa.h +140 -0
  475. package/cpp/src/llama-memory-hybrid.cpp +268 -0
  476. package/cpp/src/llama-memory-hybrid.h +139 -0
  477. package/cpp/src/llama-memory-recurrent.cpp +1165 -0
  478. package/cpp/src/llama-memory-recurrent.h +182 -0
  479. package/cpp/src/llama-memory.cpp +59 -0
  480. package/cpp/src/llama-memory.h +122 -0
  481. package/cpp/src/llama-mmap.cpp +785 -0
  482. package/cpp/src/llama-mmap.h +92 -0
  483. package/cpp/src/llama-model-loader.cpp +1414 -0
  484. package/cpp/src/llama-model-loader.h +203 -0
  485. package/cpp/src/llama-model-saver.cpp +286 -0
  486. package/cpp/src/llama-model-saver.h +37 -0
  487. package/cpp/src/llama-model.cpp +9253 -0
  488. package/cpp/src/llama-model.h +576 -0
  489. package/cpp/src/llama-quant.cpp +1119 -0
  490. package/cpp/src/llama-quant.h +1 -0
  491. package/cpp/src/llama-sampler.cpp +3885 -0
  492. package/cpp/src/llama-sampler.h +42 -0
  493. package/cpp/src/llama-vocab.cpp +3970 -0
  494. package/cpp/src/llama-vocab.h +187 -0
  495. package/cpp/src/llama.cpp +1313 -0
  496. package/cpp/src/models/afmoe.cpp +191 -0
  497. package/cpp/src/models/apertus.cpp +125 -0
  498. package/cpp/src/models/arcee.cpp +135 -0
  499. package/cpp/src/models/arctic.cpp +138 -0
  500. package/cpp/src/models/arwkv7.cpp +86 -0
  501. package/cpp/src/models/baichuan.cpp +122 -0
  502. package/cpp/src/models/bailingmoe.cpp +144 -0
  503. package/cpp/src/models/bailingmoe2.cpp +135 -0
  504. package/cpp/src/models/bert.cpp +178 -0
  505. package/cpp/src/models/bitnet.cpp +160 -0
  506. package/cpp/src/models/bloom.cpp +101 -0
  507. package/cpp/src/models/chameleon.cpp +178 -0
  508. package/cpp/src/models/chatglm.cpp +132 -0
  509. package/cpp/src/models/codeshell.cpp +111 -0
  510. package/cpp/src/models/cogvlm.cpp +102 -0
  511. package/cpp/src/models/cohere2-iswa.cpp +134 -0
  512. package/cpp/src/models/command-r.cpp +122 -0
  513. package/cpp/src/models/dbrx.cpp +123 -0
  514. package/cpp/src/models/deci.cpp +135 -0
  515. package/cpp/src/models/deepseek.cpp +144 -0
  516. package/cpp/src/models/deepseek2.cpp +262 -0
  517. package/cpp/src/models/delta-net-base.cpp +376 -0
  518. package/cpp/src/models/dots1.cpp +134 -0
  519. package/cpp/src/models/dream.cpp +105 -0
  520. package/cpp/src/models/ernie4-5-moe.cpp +150 -0
  521. package/cpp/src/models/ernie4-5.cpp +110 -0
  522. package/cpp/src/models/eurobert.cpp +97 -0
  523. package/cpp/src/models/exaone-moe.cpp +146 -0
  524. package/cpp/src/models/exaone.cpp +114 -0
  525. package/cpp/src/models/exaone4.cpp +123 -0
  526. package/cpp/src/models/falcon-h1.cpp +111 -0
  527. package/cpp/src/models/falcon.cpp +120 -0
  528. package/cpp/src/models/gemma-embedding.cpp +116 -0
  529. package/cpp/src/models/gemma.cpp +112 -0
  530. package/cpp/src/models/gemma2-iswa.cpp +128 -0
  531. package/cpp/src/models/gemma3.cpp +155 -0
  532. package/cpp/src/models/gemma3n-iswa.cpp +384 -0
  533. package/cpp/src/models/glm4-moe.cpp +170 -0
  534. package/cpp/src/models/glm4.cpp +157 -0
  535. package/cpp/src/models/gpt2.cpp +105 -0
  536. package/cpp/src/models/gptneox.cpp +144 -0
  537. package/cpp/src/models/granite-hybrid.cpp +196 -0
  538. package/cpp/src/models/granite.cpp +211 -0
  539. package/cpp/src/models/grok.cpp +159 -0
  540. package/cpp/src/models/grovemoe.cpp +141 -0
  541. package/cpp/src/models/hunyuan-dense.cpp +132 -0
  542. package/cpp/src/models/hunyuan-moe.cpp +154 -0
  543. package/cpp/src/models/internlm2.cpp +120 -0
  544. package/cpp/src/models/jais.cpp +86 -0
  545. package/cpp/src/models/jais2.cpp +123 -0
  546. package/cpp/src/models/jamba.cpp +106 -0
  547. package/cpp/src/models/kimi-linear.cpp +392 -0
  548. package/cpp/src/models/lfm2.cpp +190 -0
  549. package/cpp/src/models/llada-moe.cpp +122 -0
  550. package/cpp/src/models/llada.cpp +99 -0
  551. package/cpp/src/models/llama-iswa.cpp +178 -0
  552. package/cpp/src/models/llama.cpp +168 -0
  553. package/cpp/src/models/maincoder.cpp +117 -0
  554. package/cpp/src/models/mamba-base.cpp +285 -0
  555. package/cpp/src/models/mamba.cpp +54 -0
  556. package/cpp/src/models/mimo2-iswa.cpp +123 -0
  557. package/cpp/src/models/minicpm3.cpp +200 -0
  558. package/cpp/src/models/minimax-m2.cpp +124 -0
  559. package/cpp/src/models/mistral3.cpp +160 -0
  560. package/cpp/src/models/models.h +684 -0
  561. package/cpp/src/models/modern-bert.cpp +109 -0
  562. package/cpp/src/models/mpt.cpp +126 -0
  563. package/cpp/src/models/nemotron-h.cpp +148 -0
  564. package/cpp/src/models/nemotron.cpp +122 -0
  565. package/cpp/src/models/neo-bert.cpp +104 -0
  566. package/cpp/src/models/olmo.cpp +121 -0
  567. package/cpp/src/models/olmo2.cpp +150 -0
  568. package/cpp/src/models/olmoe.cpp +124 -0
  569. package/cpp/src/models/openai-moe-iswa.cpp +127 -0
  570. package/cpp/src/models/openelm.cpp +124 -0
  571. package/cpp/src/models/orion.cpp +123 -0
  572. package/cpp/src/models/paddleocr.cpp +122 -0
  573. package/cpp/src/models/pangu-embedded.cpp +121 -0
  574. package/cpp/src/models/phi2.cpp +121 -0
  575. package/cpp/src/models/phi3.cpp +152 -0
  576. package/cpp/src/models/plamo.cpp +110 -0
  577. package/cpp/src/models/plamo2.cpp +318 -0
  578. package/cpp/src/models/plamo3.cpp +128 -0
  579. package/cpp/src/models/plm.cpp +169 -0
  580. package/cpp/src/models/qwen.cpp +108 -0
  581. package/cpp/src/models/qwen2.cpp +126 -0
  582. package/cpp/src/models/qwen2moe.cpp +151 -0
  583. package/cpp/src/models/qwen2vl.cpp +117 -0
  584. package/cpp/src/models/qwen3.cpp +117 -0
  585. package/cpp/src/models/qwen35.cpp +386 -0
  586. package/cpp/src/models/qwen35moe.cpp +420 -0
  587. package/cpp/src/models/qwen3moe.cpp +124 -0
  588. package/cpp/src/models/qwen3next.cpp +525 -0
  589. package/cpp/src/models/qwen3vl-moe.cpp +140 -0
  590. package/cpp/src/models/qwen3vl.cpp +132 -0
  591. package/cpp/src/models/refact.cpp +94 -0
  592. package/cpp/src/models/rnd1.cpp +126 -0
  593. package/cpp/src/models/rwkv6-base.cpp +164 -0
  594. package/cpp/src/models/rwkv6.cpp +94 -0
  595. package/cpp/src/models/rwkv6qwen2.cpp +86 -0
  596. package/cpp/src/models/rwkv7-base.cpp +137 -0
  597. package/cpp/src/models/rwkv7.cpp +90 -0
  598. package/cpp/src/models/seed-oss.cpp +124 -0
  599. package/cpp/src/models/smallthinker.cpp +126 -0
  600. package/cpp/src/models/smollm3.cpp +128 -0
  601. package/cpp/src/models/stablelm.cpp +146 -0
  602. package/cpp/src/models/starcoder.cpp +100 -0
  603. package/cpp/src/models/starcoder2.cpp +121 -0
  604. package/cpp/src/models/step35-iswa.cpp +168 -0
  605. package/cpp/src/models/t5-dec.cpp +166 -0
  606. package/cpp/src/models/t5-enc.cpp +96 -0
  607. package/cpp/src/models/wavtokenizer-dec.cpp +149 -0
  608. package/cpp/src/models/xverse.cpp +108 -0
  609. package/cpp/src/unicode-data.cpp +7034 -0
  610. package/cpp/src/unicode-data.h +20 -0
  611. package/cpp/src/unicode.cpp +1103 -0
  612. package/cpp/src/unicode.h +111 -0
  613. package/cpp/vendor/nlohmann/json.hpp +25526 -0
  614. package/cpp/vendor/nlohmann/json_fwd.hpp +187 -0
  615. package/cpp/vendor/stb/stb_image.h +7988 -0
  616. package/ios/LocalLLM-Bridging-Header.h +2 -0
  617. package/ios/LocalLLM.h +5 -0
  618. package/ios/LocalLLM.mm +1267 -0
  619. package/local-llm-rn.podspec +60 -0
  620. package/package.json +35 -0
  621. package/src/NativeLocalLLM.ts +73 -0
  622. package/src/device.ts +50 -0
  623. package/src/download-adapter.ts +17 -0
  624. package/src/index.ts +21 -0
  625. package/src/native-bridge.ts +142 -0
  626. package/src/rn-downloader.ts +37 -0
@@ -0,0 +1,576 @@
1
+ #pragma once
2
+
3
+ #include "llama.h"
4
+ #include "llama-arch.h"
5
+ #include "llama-graph.h"
6
+ #include "llama-hparams.h"
7
+ #include "llama-memory.h"
8
+ #include "llama-vocab.h"
9
+
10
+ #include <map>
11
+ #include <memory>
12
+ #include <string>
13
+ #include <unordered_map>
14
+ #include <unordered_set>
15
+ #include <vector>
16
+
17
+ struct llama_cparams;
18
+ struct llama_ubatch;
19
+ struct llama_model_loader;
20
+
21
+ // available models
22
+ enum llm_type {
23
+ LLM_TYPE_UNKNOWN,
24
+ LLM_TYPE_14M,
25
+ LLM_TYPE_17M,
26
+ LLM_TYPE_22M,
27
+ LLM_TYPE_33M,
28
+ LLM_TYPE_47M,
29
+ LLM_TYPE_60M,
30
+ LLM_TYPE_70M,
31
+ LLM_TYPE_80M,
32
+ LLM_TYPE_109M,
33
+ LLM_TYPE_137M,
34
+ LLM_TYPE_140M,
35
+ LLM_TYPE_149M,
36
+ LLM_TYPE_160M,
37
+ LLM_TYPE_190M,
38
+ LLM_TYPE_220M,
39
+ LLM_TYPE_250M,
40
+ LLM_TYPE_256M,
41
+ LLM_TYPE_270M,
42
+ LLM_TYPE_335M,
43
+ LLM_TYPE_350M,
44
+ LLM_TYPE_360M,
45
+ LLM_TYPE_395M,
46
+ LLM_TYPE_410M,
47
+ LLM_TYPE_450M,
48
+ LLM_TYPE_475M,
49
+ LLM_TYPE_558M,
50
+ LLM_TYPE_700M,
51
+ LLM_TYPE_770M,
52
+ LLM_TYPE_780M,
53
+ LLM_TYPE_950M,
54
+ LLM_TYPE_0_3B,
55
+ LLM_TYPE_0_5B,
56
+ LLM_TYPE_0_6B,
57
+ LLM_TYPE_1B,
58
+ LLM_TYPE_1_2B,
59
+ LLM_TYPE_1_3B,
60
+ LLM_TYPE_1_4B,
61
+ LLM_TYPE_1_5B,
62
+ LLM_TYPE_1_6B,
63
+ LLM_TYPE_1_7B,
64
+ LLM_TYPE_1_8B,
65
+ LLM_TYPE_2B,
66
+ LLM_TYPE_2_6B,
67
+ LLM_TYPE_2_8B,
68
+ LLM_TYPE_2_9B,
69
+ LLM_TYPE_3B,
70
+ LLM_TYPE_4B,
71
+ LLM_TYPE_6B,
72
+ LLM_TYPE_6_9B,
73
+ LLM_TYPE_7B,
74
+ LLM_TYPE_8B,
75
+ LLM_TYPE_9B,
76
+ LLM_TYPE_11B,
77
+ LLM_TYPE_12B,
78
+ LLM_TYPE_13B,
79
+ LLM_TYPE_14B,
80
+ LLM_TYPE_15B,
81
+ LLM_TYPE_16B,
82
+ LLM_TYPE_20B,
83
+ LLM_TYPE_26B,
84
+ LLM_TYPE_27B,
85
+ LLM_TYPE_30B,
86
+ LLM_TYPE_32B,
87
+ LLM_TYPE_34B,
88
+ LLM_TYPE_35B,
89
+ LLM_TYPE_36B,
90
+ LLM_TYPE_40B,
91
+ LLM_TYPE_65B,
92
+ LLM_TYPE_70B,
93
+ LLM_TYPE_120B,
94
+ LLM_TYPE_142B,
95
+ LLM_TYPE_236B,
96
+ LLM_TYPE_290B,
97
+ LLM_TYPE_314B,
98
+ LLM_TYPE_405B,
99
+ LLM_TYPE_671B,
100
+ LLM_TYPE_SMALL,
101
+ LLM_TYPE_MEDIUM,
102
+ LLM_TYPE_LARGE,
103
+ LLM_TYPE_XL,
104
+ LLM_TYPE_A1_7B,
105
+ LLM_TYPE_A2_7B,
106
+ LLM_TYPE_8x7B,
107
+ LLM_TYPE_8x22B,
108
+ LLM_TYPE_16x12B,
109
+ LLM_TYPE_16x3_8B,
110
+ LLM_TYPE_10B_128x3_66B,
111
+ LLM_TYPE_57B_A14B,
112
+ LLM_TYPE_17B_16E, // llama4 Scout
113
+ LLM_TYPE_17B_128E, // llama4 Maverick
114
+ LLM_TYPE_A13B,
115
+ LLM_TYPE_7B_A1B,
116
+ LLM_TYPE_8B_A1B, // lfm2moe
117
+ LLM_TYPE_16B_A1B,
118
+ LLM_TYPE_21B_A3B, // Ernie MoE small
119
+ LLM_TYPE_24B_A2B, // lfm2moe
120
+ LLM_TYPE_30B_A3B,
121
+ LLM_TYPE_31B_A3_5B,
122
+ LLM_TYPE_35B_A3B, // Qwen3.5
123
+ LLM_TYPE_48B_A3B, // Kimi Linear
124
+ LLM_TYPE_80B_A3B, // Qwen3 Next
125
+ LLM_TYPE_100B_A6B,
126
+ LLM_TYPE_102B_A12B, // Solar-Open
127
+ LLM_TYPE_106B_A12B, // GLM-4.5-Air
128
+ LLM_TYPE_196B_A11B, // Step3.5-Flash
129
+ LLM_TYPE_230B_A10B, // Minimax M2
130
+ LLM_TYPE_235B_A22B,
131
+ LLM_TYPE_300B_A47B, // Ernie MoE big
132
+ LLM_TYPE_310B_A15B, // /MiMo-V2-Flash
133
+ LLM_TYPE_355B_A32B, // GLM-4.5
134
+ LLM_TYPE_744B_A40B, // GLM-5
135
+ LLM_TYPE_E2B,
136
+ LLM_TYPE_E4B,
137
+ };
138
+
139
+ std::string llama_rope_scaling_type_name(llama_rope_scaling_type rope_scaling_type);
140
+
141
+ struct llama_layer_posnet {
142
+ // resnet
143
+ struct ggml_tensor * norm1 = nullptr;
144
+ struct ggml_tensor * norm1_b = nullptr;
145
+
146
+ struct ggml_tensor * conv1 = nullptr;
147
+ struct ggml_tensor * conv1_b = nullptr;
148
+
149
+ struct ggml_tensor * norm2 = nullptr;
150
+ struct ggml_tensor * norm2_b = nullptr;
151
+
152
+ struct ggml_tensor * conv2 = nullptr;
153
+ struct ggml_tensor * conv2_b = nullptr;
154
+
155
+ // attention
156
+ struct ggml_tensor * attn_norm = nullptr;
157
+ struct ggml_tensor * attn_norm_b = nullptr;
158
+
159
+ struct ggml_tensor * attn_q = nullptr;
160
+ struct ggml_tensor * attn_q_b = nullptr;
161
+
162
+ struct ggml_tensor * attn_k = nullptr;
163
+ struct ggml_tensor * attn_k_b = nullptr;
164
+
165
+ struct ggml_tensor * attn_v = nullptr;
166
+ struct ggml_tensor * attn_v_b = nullptr;
167
+
168
+ struct ggml_tensor * attn_o = nullptr;
169
+ struct ggml_tensor * attn_o_b = nullptr;
170
+
171
+ // normalize
172
+ struct ggml_tensor * norm = nullptr;
173
+ struct ggml_tensor * norm_b = nullptr;
174
+ };
175
+
176
+ struct llama_layer_convnext {
177
+ struct ggml_tensor * dw = nullptr;
178
+ struct ggml_tensor * dw_b = nullptr;
179
+
180
+ struct ggml_tensor * norm = nullptr;
181
+ struct ggml_tensor * norm_b = nullptr;
182
+
183
+ struct ggml_tensor * pw1 = nullptr;
184
+ struct ggml_tensor * pw1_b = nullptr;
185
+
186
+ struct ggml_tensor * pw2 = nullptr;
187
+ struct ggml_tensor * pw2_b = nullptr;
188
+
189
+ struct ggml_tensor * gamma = nullptr;
190
+ };
191
+
192
+ struct llama_layer_shortconv {
193
+ struct ggml_tensor * in_proj = nullptr;
194
+ struct ggml_tensor * conv = nullptr;
195
+ struct ggml_tensor * out_proj = nullptr;
196
+ };
197
+
198
+ struct llama_layer_nextn {
199
+ struct ggml_tensor * eh_proj = nullptr;
200
+ struct ggml_tensor * embed_tokens = nullptr;
201
+ struct ggml_tensor * enorm = nullptr;
202
+ struct ggml_tensor * hnorm = nullptr;
203
+ struct ggml_tensor * shared_head_head = nullptr;
204
+ struct ggml_tensor * shared_head_norm = nullptr;
205
+ };
206
+
207
+ struct llama_layer {
208
+ // normalization
209
+ struct ggml_tensor * attn_norm = nullptr;
210
+ struct ggml_tensor * attn_norm_b = nullptr;
211
+ struct ggml_tensor * attn_norm_2 = nullptr;
212
+ struct ggml_tensor * attn_norm_2_b = nullptr;
213
+ struct ggml_tensor * attn_q_norm = nullptr;
214
+ struct ggml_tensor * attn_q_norm_b = nullptr;
215
+ struct ggml_tensor * attn_k_norm = nullptr;
216
+ struct ggml_tensor * attn_k_norm_b = nullptr;
217
+ struct ggml_tensor * attn_out_norm = nullptr;
218
+ struct ggml_tensor * attn_out_norm_b = nullptr;
219
+ struct ggml_tensor * attn_q_a_norm = nullptr;
220
+ struct ggml_tensor * attn_kv_a_norm = nullptr;
221
+ struct ggml_tensor * attn_sub_norm = nullptr;
222
+ struct ggml_tensor * attn_post_norm = nullptr;
223
+ struct ggml_tensor * ffn_sub_norm = nullptr;
224
+ struct ggml_tensor * attn_norm_cross = nullptr;
225
+ struct ggml_tensor * attn_norm_enc = nullptr;
226
+ struct ggml_tensor * ssm_norm = nullptr;
227
+ struct ggml_tensor * ssm_dt_norm = nullptr;
228
+ struct ggml_tensor * ssm_b_norm = nullptr;
229
+ struct ggml_tensor * ssm_c_norm = nullptr;
230
+
231
+ // attention
232
+ struct ggml_tensor * wq = nullptr;
233
+ struct ggml_tensor * wk = nullptr;
234
+ struct ggml_tensor * wv = nullptr;
235
+ struct ggml_tensor * wo = nullptr;
236
+ struct ggml_tensor * wqkv = nullptr;
237
+ struct ggml_tensor * wq_a = nullptr;
238
+ struct ggml_tensor * wq_b = nullptr;
239
+ struct ggml_tensor * wkv_a_mqa = nullptr;
240
+ struct ggml_tensor * wkv_b = nullptr;
241
+ struct ggml_tensor * wk_b = nullptr;
242
+ struct ggml_tensor * wv_b = nullptr;
243
+ struct ggml_tensor * wq_cross = nullptr;
244
+ struct ggml_tensor * wk_cross = nullptr;
245
+ struct ggml_tensor * wv_cross = nullptr;
246
+ struct ggml_tensor * wo_cross = nullptr;
247
+ struct ggml_tensor * wq_enc = nullptr;
248
+ struct ggml_tensor * wk_enc = nullptr;
249
+ struct ggml_tensor * wv_enc = nullptr;
250
+ struct ggml_tensor * wo_enc = nullptr;
251
+ struct ggml_tensor * wqkv_gate = nullptr;
252
+
253
+ // attention bias
254
+ struct ggml_tensor * bq = nullptr;
255
+ struct ggml_tensor * bk = nullptr;
256
+ struct ggml_tensor * bv = nullptr;
257
+ struct ggml_tensor * bo = nullptr;
258
+ struct ggml_tensor * bqkv = nullptr;
259
+
260
+ // relative position bias
261
+ struct ggml_tensor * attn_rel_b = nullptr;
262
+ struct ggml_tensor * attn_rel_b_enc = nullptr;
263
+ struct ggml_tensor * attn_rel_b_cross = nullptr;
264
+
265
+ // normalization
266
+ struct ggml_tensor * ffn_norm = nullptr;
267
+ struct ggml_tensor * ffn_norm_b = nullptr;
268
+ struct ggml_tensor * ffn_post_norm = nullptr;
269
+ struct ggml_tensor * layer_out_norm = nullptr;
270
+ struct ggml_tensor * layer_out_norm_b = nullptr;
271
+ struct ggml_tensor * ffn_norm_exps = nullptr;
272
+ struct ggml_tensor * ffn_norm_enc = nullptr;
273
+
274
+ // ff
275
+ struct ggml_tensor * ffn_gate = nullptr; // w1
276
+ struct ggml_tensor * ffn_down = nullptr; // w2
277
+ struct ggml_tensor * ffn_up = nullptr; // w3
278
+ struct ggml_tensor * ffn_gate_enc = nullptr;
279
+ struct ggml_tensor * ffn_down_enc = nullptr;
280
+ struct ggml_tensor * ffn_up_enc = nullptr;
281
+
282
+ // ff MoE
283
+ struct ggml_tensor * ffn_gate_inp = nullptr;
284
+ struct ggml_tensor * ffn_gate_exps = nullptr;
285
+ struct ggml_tensor * ffn_down_exps = nullptr;
286
+ struct ggml_tensor * ffn_up_exps = nullptr;
287
+ struct ggml_tensor * ffn_gate_up_exps = nullptr;
288
+ struct ggml_tensor * ffn_gate_inp_b = nullptr;
289
+ struct ggml_tensor * ffn_gate_exps_b = nullptr;
290
+ struct ggml_tensor * ffn_down_exps_b = nullptr;
291
+ struct ggml_tensor * ffn_up_exps_b = nullptr;
292
+ struct ggml_tensor * ffn_gate_up_exps_b = nullptr;
293
+
294
+ // ff shared expert (shexp)
295
+ struct ggml_tensor * ffn_gate_inp_shexp = nullptr;
296
+ struct ggml_tensor * ffn_gate_shexp = nullptr;
297
+ struct ggml_tensor * ffn_down_shexp = nullptr;
298
+ struct ggml_tensor * ffn_up_shexp = nullptr;
299
+
300
+ // ff adjugate experts (chexps)
301
+ struct ggml_tensor * ffn_gate_chexps = nullptr;
302
+ struct ggml_tensor * ffn_down_chexps = nullptr;
303
+ struct ggml_tensor * ffn_up_chexps = nullptr;
304
+
305
+ // ff bias
306
+ struct ggml_tensor * ffn_gate_b = nullptr;
307
+ struct ggml_tensor * ffn_down_b = nullptr; // b2
308
+ struct ggml_tensor * ffn_up_b = nullptr; // b3
309
+ struct ggml_tensor * ffn_act = nullptr;
310
+ struct ggml_tensor * ffn_exp_probs_b = nullptr;
311
+
312
+ // mamba proj
313
+ struct ggml_tensor * ssm_in = nullptr;
314
+ struct ggml_tensor * ssm_x = nullptr;
315
+ struct ggml_tensor * ssm_dt = nullptr;
316
+ struct ggml_tensor * ssm_out = nullptr;
317
+
318
+ // mamba
319
+ struct ggml_tensor * ssm_conv1d = nullptr;
320
+ struct ggml_tensor * ssm_a = nullptr;
321
+ struct ggml_tensor * ssm_d = nullptr;
322
+
323
+ // mamba bias
324
+ struct ggml_tensor * ssm_conv1d_b = nullptr;
325
+ struct ggml_tensor * ssm_dt_b = nullptr;
326
+
327
+ // qwen3next
328
+ struct ggml_tensor * ssm_beta_alpha = nullptr;
329
+
330
+ // qwen3.5
331
+ struct ggml_tensor * ssm_alpha = nullptr;
332
+
333
+ // rwkv
334
+ struct ggml_tensor * time_mix_w1 = nullptr;
335
+ struct ggml_tensor * time_mix_w2 = nullptr;
336
+ struct ggml_tensor * time_mix_lerp_x = nullptr;
337
+ struct ggml_tensor * time_mix_lerp_w = nullptr;
338
+ struct ggml_tensor * time_mix_lerp_k = nullptr;
339
+ struct ggml_tensor * time_mix_lerp_v = nullptr;
340
+ struct ggml_tensor * time_mix_lerp_r = nullptr;
341
+ struct ggml_tensor * time_mix_lerp_g = nullptr;
342
+ struct ggml_tensor * time_mix_lerp_fused = nullptr;
343
+
344
+ struct ggml_tensor * time_mix_first = nullptr;
345
+ struct ggml_tensor * time_mix_decay = nullptr;
346
+ struct ggml_tensor * time_mix_decay_w1 = nullptr;
347
+ struct ggml_tensor * time_mix_decay_w2 = nullptr;
348
+ struct ggml_tensor * time_mix_key = nullptr;
349
+ struct ggml_tensor * time_mix_key_b = nullptr;
350
+ struct ggml_tensor * time_mix_value = nullptr;
351
+ struct ggml_tensor * time_mix_value_b = nullptr;
352
+ struct ggml_tensor * time_mix_receptance = nullptr;
353
+ struct ggml_tensor * time_mix_receptance_b = nullptr;
354
+ struct ggml_tensor * time_mix_gate = nullptr;
355
+
356
+ // rwkv7
357
+ struct ggml_tensor * time_mix_w0 = nullptr;
358
+ struct ggml_tensor * time_mix_a0 = nullptr;
359
+ struct ggml_tensor * time_mix_a1 = nullptr;
360
+ struct ggml_tensor * time_mix_a2 = nullptr;
361
+ struct ggml_tensor * time_mix_v0 = nullptr;
362
+ struct ggml_tensor * time_mix_v1 = nullptr;
363
+ struct ggml_tensor * time_mix_v2 = nullptr;
364
+ struct ggml_tensor * time_mix_g1 = nullptr;
365
+ struct ggml_tensor * time_mix_g2 = nullptr;
366
+ struct ggml_tensor * time_mix_k_k = nullptr;
367
+ struct ggml_tensor * time_mix_k_a = nullptr;
368
+ struct ggml_tensor * time_mix_r_k = nullptr;
369
+
370
+ struct ggml_tensor * time_mix_ln = nullptr;
371
+ struct ggml_tensor * time_mix_ln_b = nullptr;
372
+ struct ggml_tensor * time_mix_output = nullptr;
373
+
374
+ struct ggml_tensor * channel_mix_lerp_k = nullptr;
375
+ struct ggml_tensor * channel_mix_lerp_r = nullptr;
376
+
377
+ struct ggml_tensor * channel_mix_key = nullptr;
378
+ struct ggml_tensor * channel_mix_receptance = nullptr;
379
+ struct ggml_tensor * channel_mix_value = nullptr;
380
+
381
+ // long rope factors
382
+ struct ggml_tensor * rope_long = nullptr;
383
+ struct ggml_tensor * rope_short = nullptr;
384
+ struct ggml_tensor * rope_freqs = nullptr;
385
+
386
+ // bitnet scale
387
+ struct ggml_tensor * wq_scale = nullptr;
388
+ struct ggml_tensor * wk_scale = nullptr;
389
+ struct ggml_tensor * wv_scale = nullptr;
390
+ struct ggml_tensor * wo_scale = nullptr;
391
+ struct ggml_tensor * ffn_gate_scale = nullptr;
392
+ struct ggml_tensor * ffn_up_scale = nullptr;
393
+ struct ggml_tensor * ffn_down_scale = nullptr;
394
+
395
+ // altup & laurel
396
+ struct ggml_tensor * per_layer_inp_gate = nullptr;
397
+ struct ggml_tensor * per_layer_proj = nullptr;
398
+ struct ggml_tensor * per_layer_post_norm = nullptr;
399
+ struct ggml_tensor * altup_correct_coef = nullptr;
400
+ struct ggml_tensor * altup_correct_scale = nullptr;
401
+ struct ggml_tensor * altup_predict_coef = nullptr;
402
+ struct ggml_tensor * altup_router = nullptr;
403
+ struct ggml_tensor * altup_router_norm = nullptr;
404
+ struct ggml_tensor * laurel_l = nullptr;
405
+ struct ggml_tensor * laurel_r = nullptr;
406
+ struct ggml_tensor * laurel_post_norm = nullptr;
407
+
408
+ // openai-moe
409
+ struct ggml_tensor * attn_sinks = nullptr;
410
+
411
+ // cogvlm
412
+ struct ggml_tensor * visexp_attn_wqkv = nullptr;
413
+ struct ggml_tensor * visexp_attn_wo = nullptr;
414
+ struct ggml_tensor * visexp_ffn_gate = nullptr;
415
+ struct ggml_tensor * visexp_ffn_down = nullptr;
416
+ struct ggml_tensor * visexp_ffn_up = nullptr;
417
+
418
+ // xIELU activation parameters for Apertus
419
+ struct ggml_tensor * ffn_act_alpha_n = nullptr;
420
+ struct ggml_tensor * ffn_act_alpha_p = nullptr;
421
+ struct ggml_tensor * ffn_act_beta = nullptr;
422
+ struct ggml_tensor * ffn_act_eps = nullptr;
423
+
424
+ // Kimi Linear KDA (using ssm_ prefix for consistency)
425
+ // Note: ssm_dt_b already exists above (mamba bias), reused for Kimi dt_bias
426
+ struct ggml_tensor * ssm_q_conv = nullptr;
427
+ struct ggml_tensor * ssm_k_conv = nullptr;
428
+ struct ggml_tensor * ssm_v_conv = nullptr;
429
+ struct ggml_tensor * ssm_f_a = nullptr;
430
+ struct ggml_tensor * ssm_f_b = nullptr;
431
+ struct ggml_tensor * ssm_beta = nullptr;
432
+ struct ggml_tensor * ssm_g_a = nullptr;
433
+ struct ggml_tensor * ssm_g_b = nullptr;
434
+ struct ggml_tensor * ssm_o_norm = nullptr;
435
+
436
+ // DSA (deepseek sparse attention)
437
+ struct ggml_tensor * indexer_k_norm = nullptr;
438
+ struct ggml_tensor * indexer_k_norm_b = nullptr;
439
+ struct ggml_tensor * indexer_proj = nullptr;
440
+ struct ggml_tensor * indexer_attn_k = nullptr;
441
+ struct ggml_tensor * indexer_attn_q_b = nullptr; // note: for lora a/b, not bias
442
+
443
+ struct llama_layer_posnet posnet;
444
+
445
+ struct llama_layer_convnext convnext;
446
+
447
+ struct llama_layer_shortconv shortconv;
448
+
449
+ struct llama_layer_nextn nextn;
450
+ };
451
+
452
+ struct llama_model {
453
+ llm_type type = LLM_TYPE_UNKNOWN;
454
+ llm_arch arch = LLM_ARCH_UNKNOWN;
455
+
456
+ std::string name = "n/a";
457
+
458
+ llama_hparams hparams = {};
459
+ llama_vocab vocab;
460
+
461
+ // for classifier models
462
+ std::vector<std::string> classifier_labels;
463
+
464
+ struct ggml_tensor * tok_embd = nullptr;
465
+ struct ggml_tensor * type_embd = nullptr;
466
+ struct ggml_tensor * pos_embd = nullptr;
467
+ struct ggml_tensor * tok_norm = nullptr;
468
+ struct ggml_tensor * tok_norm_b = nullptr;
469
+
470
+ struct ggml_tensor * output_norm = nullptr;
471
+ struct ggml_tensor * output_norm_b = nullptr;
472
+ struct ggml_tensor * output = nullptr;
473
+ struct ggml_tensor * output_b = nullptr;
474
+ struct ggml_tensor * output_norm_enc = nullptr;
475
+
476
+ // classifier
477
+ struct ggml_tensor * cls = nullptr;
478
+ struct ggml_tensor * cls_b = nullptr;
479
+ struct ggml_tensor * cls_out = nullptr;
480
+ struct ggml_tensor * cls_out_b = nullptr;
481
+ struct ggml_tensor * cls_norm = nullptr;
482
+
483
+ struct ggml_tensor * conv1d = nullptr;
484
+ struct ggml_tensor * conv1d_b = nullptr;
485
+
486
+ // gemma3n altup
487
+ struct ggml_tensor * tok_embd_per_layer = nullptr;
488
+ struct ggml_tensor * altup_proj = nullptr;
489
+ struct ggml_tensor * altup_unembd_proj = nullptr;
490
+ struct ggml_tensor * per_layer_model_proj = nullptr;
491
+ struct ggml_tensor * per_layer_proj_norm = nullptr;
492
+
493
+ std::vector<llama_layer> layers;
494
+
495
+ //Dense linear projections for SentenceTransformers models like embeddinggemma
496
+ // For Sentence Transformers models structure see
497
+ // https://sbert.net/docs/sentence_transformer/usage/custom_models.html#structure-of-sentence-transformer-models
498
+ struct ggml_tensor * dense_2_out_layers = nullptr;
499
+ struct ggml_tensor * dense_2_out_layers_b = nullptr;
500
+ struct ggml_tensor * dense_3_out_layers = nullptr;
501
+
502
+ // gguf metadata
503
+ std::unordered_map<std::string, std::string> gguf_kv;
504
+
505
+ // list of devices used in this model
506
+ std::vector<ggml_backend_dev_t> devices;
507
+
508
+ // for quantize-stats only
509
+ std::vector<std::pair<std::string, struct ggml_tensor *>> tensors_by_name;
510
+
511
+ // for keeping track of associated LoRA adapters
512
+ std::unordered_set<llama_adapter_lora *> loras;
513
+
514
+ int64_t t_load_us = 0;
515
+ int64_t t_start_us = 0;
516
+
517
+ explicit llama_model(const struct llama_model_params & params);
518
+ ~llama_model();
519
+
520
+ void load_stats (llama_model_loader & ml);
521
+ void load_arch (llama_model_loader & ml);
522
+ void load_hparams(llama_model_loader & ml);
523
+ void load_vocab (llama_model_loader & ml);
524
+ bool load_tensors(llama_model_loader & ml); // returns false if cancelled by progress_callback
525
+
526
+ std::string arch_name() const;
527
+ std::string type_name() const;
528
+
529
+ std::string desc() const;
530
+
531
+ size_t size() const; // file size
532
+ size_t n_tensors() const;
533
+ size_t n_devices() const;
534
+
535
+ uint32_t n_gpu_layers() const;
536
+ llama_split_mode split_mode() const;
537
+
538
+ std::map<ggml_backend_buffer_type_t, size_t> memory_breakdown() const;
539
+
540
+ // total number of parameters in the model
541
+ uint64_t n_elements() const;
542
+
543
+ void print_info() const;
544
+
545
+ ggml_backend_dev_t dev_layer(int il) const;
546
+ ggml_backend_dev_t dev_output() const;
547
+
548
+ ggml_backend_buffer_type_t select_buft(int il) const;
549
+
550
+ bool has_tensor_overrides() const;
551
+
552
+ const struct ggml_tensor * get_tensor(const char * name) const;
553
+
554
+ float get_rope_freq_base (const llama_cparams & cparams, int il) const;
555
+ float get_rope_freq_scale(const llama_cparams & cparams, int il) const;
556
+
557
+ ggml_tensor * get_rope_factors(const llama_cparams & cparams, int il) const;
558
+
559
+ // TODO: move this to new llm_arch_model_i interface
560
+ llama_memory_i * create_memory(const llama_memory_params & params, const llama_cparams & cparams) const;
561
+
562
+ // TODO: move this to new llm_arch_model_i interface
563
+ ggml_cgraph * build_graph(const llm_graph_params & params) const;
564
+
565
+ private:
566
+ llama_model_params params;
567
+
568
+ struct impl;
569
+ std::unique_ptr<impl> pimpl;
570
+ };
571
+
572
+ const char * llm_type_name(llm_type type);
573
+
574
+ // For internal test use
575
+ // TODO: remove
576
+ const std::vector<std::pair<std::string, ggml_tensor *>> & llama_internal_get_tensor_map(const llama_model * model);