@fugood/llama.node 1.0.0-beta.5 → 1.0.0-beta.6

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 (110) hide show
  1. package/lib/binding.ts +1 -1
  2. package/package.json +14 -14
  3. package/scripts/llama.cpp.patch +27 -26
  4. package/src/LlamaCompletionWorker.cpp +21 -4
  5. package/src/LlamaCompletionWorker.h +2 -0
  6. package/src/LlamaContext.cpp +3 -12
  7. package/src/common.hpp +6 -5
  8. package/src/llama.cpp/CMakeLists.txt +15 -4
  9. package/src/llama.cpp/common/CMakeLists.txt +15 -24
  10. package/src/llama.cpp/common/arg.cpp +172 -110
  11. package/src/llama.cpp/common/chat-parser.cpp +385 -0
  12. package/src/llama.cpp/common/chat-parser.h +120 -0
  13. package/src/llama.cpp/common/chat.cpp +726 -596
  14. package/src/llama.cpp/common/chat.h +74 -8
  15. package/src/llama.cpp/common/common.cpp +56 -38
  16. package/src/llama.cpp/common/common.h +9 -3
  17. package/src/llama.cpp/common/json-partial.cpp +256 -0
  18. package/src/llama.cpp/common/json-partial.h +38 -0
  19. package/src/llama.cpp/common/json-schema-to-grammar.cpp +2 -1
  20. package/src/llama.cpp/common/json-schema-to-grammar.h +4 -4
  21. package/src/llama.cpp/common/sampling.cpp +7 -8
  22. package/src/llama.cpp/common/speculative.cpp +6 -4
  23. package/src/llama.cpp/ggml/CMakeLists.txt +48 -3
  24. package/src/llama.cpp/ggml/include/ggml.h +22 -3
  25. package/src/llama.cpp/ggml/src/CMakeLists.txt +81 -22
  26. package/src/llama.cpp/ggml/src/ggml-cpu/CMakeLists.txt +131 -49
  27. package/src/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp +1 -1
  28. package/src/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp +1 -1
  29. package/src/llama.cpp/ggml/src/ggml-cpu/arch/arm/cpu-feats.cpp +94 -0
  30. package/src/llama.cpp/ggml/src/ggml-cpu/arch/arm/quants.c +4113 -0
  31. package/src/llama.cpp/ggml/src/ggml-cpu/arch/arm/repack.cpp +2162 -0
  32. package/src/llama.cpp/ggml/src/ggml-cpu/arch/loongarch/quants.c +2638 -0
  33. package/src/llama.cpp/ggml/src/ggml-cpu/arch/powerpc/cpu-feats.cpp +82 -0
  34. package/src/llama.cpp/ggml/src/ggml-cpu/arch/powerpc/quants.c +2731 -0
  35. package/src/llama.cpp/ggml/src/ggml-cpu/arch/riscv/quants.c +2068 -0
  36. package/src/llama.cpp/ggml/src/ggml-cpu/arch/riscv/repack.cpp +396 -0
  37. package/src/llama.cpp/ggml/src/ggml-cpu/arch/s390/quants.c +1299 -0
  38. package/src/llama.cpp/ggml/src/ggml-cpu/arch/wasm/quants.c +1480 -0
  39. package/src/llama.cpp/ggml/src/ggml-cpu/arch/x86/quants.c +4310 -0
  40. package/src/llama.cpp/ggml/src/ggml-cpu/{ggml-cpu-aarch64.cpp → arch/x86/repack.cpp} +59 -3206
  41. package/src/llama.cpp/ggml/src/ggml-cpu/arch-fallback.h +184 -0
  42. package/src/llama.cpp/ggml/src/ggml-cpu/common.h +1 -1
  43. package/src/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h +12 -13
  44. package/src/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c +64 -88
  45. package/src/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp +8 -8
  46. package/src/llama.cpp/ggml/src/ggml-cpu/{ggml-cpu-hbm.cpp → hbm.cpp} +1 -1
  47. package/src/llama.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp +1 -1
  48. package/src/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp +56 -7
  49. package/src/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h +5 -0
  50. package/src/llama.cpp/ggml/src/ggml-cpu/ops.cpp +282 -100
  51. package/src/llama.cpp/ggml/src/ggml-cpu/ops.h +1 -0
  52. package/src/llama.cpp/ggml/src/ggml-cpu/quants.c +1157 -0
  53. package/src/llama.cpp/ggml/src/ggml-cpu/{ggml-cpu-quants.h → quants.h} +26 -0
  54. package/src/llama.cpp/ggml/src/ggml-cpu/repack.cpp +1570 -0
  55. package/src/llama.cpp/ggml/src/ggml-cpu/repack.h +98 -0
  56. package/src/llama.cpp/ggml/src/ggml-cpu/simd-mappings.h +119 -5
  57. package/src/llama.cpp/ggml/src/ggml-cpu/{ggml-cpu-traits.cpp → traits.cpp} +1 -1
  58. package/src/llama.cpp/ggml/src/ggml-cpu/vec.cpp +85 -16
  59. package/src/llama.cpp/ggml/src/ggml-cpu/vec.h +204 -49
  60. package/src/llama.cpp/include/llama.h +145 -40
  61. package/src/llama.cpp/src/CMakeLists.txt +5 -1
  62. package/src/llama.cpp/src/llama-arch.cpp +99 -3
  63. package/src/llama.cpp/src/llama-arch.h +10 -1
  64. package/src/llama.cpp/src/llama-batch.cpp +728 -272
  65. package/src/llama.cpp/src/llama-batch.h +112 -54
  66. package/src/llama.cpp/src/llama-chat.cpp +19 -2
  67. package/src/llama.cpp/src/llama-chat.h +1 -0
  68. package/src/llama.cpp/src/llama-context.cpp +525 -339
  69. package/src/llama.cpp/src/llama-context.h +38 -17
  70. package/src/llama.cpp/src/llama-cparams.cpp +4 -0
  71. package/src/llama.cpp/src/llama-cparams.h +2 -0
  72. package/src/llama.cpp/src/llama-grammar.cpp +12 -2
  73. package/src/llama.cpp/src/llama-graph.cpp +413 -353
  74. package/src/llama.cpp/src/llama-graph.h +112 -56
  75. package/src/llama.cpp/src/llama-hparams.cpp +10 -2
  76. package/src/llama.cpp/src/llama-hparams.h +13 -2
  77. package/src/llama.cpp/src/llama-kv-cache-unified-iswa.cpp +279 -0
  78. package/src/llama.cpp/src/llama-kv-cache-unified-iswa.h +128 -0
  79. package/src/llama.cpp/src/llama-kv-cache-unified.cpp +1815 -0
  80. package/src/llama.cpp/src/llama-kv-cache-unified.h +303 -0
  81. package/src/llama.cpp/src/llama-kv-cells.h +415 -0
  82. package/src/llama.cpp/src/llama-memory-hybrid.cpp +246 -0
  83. package/src/llama.cpp/src/llama-memory-hybrid.h +138 -0
  84. package/src/llama.cpp/src/llama-memory-recurrent.cpp +1112 -0
  85. package/src/llama.cpp/src/llama-memory-recurrent.h +183 -0
  86. package/src/llama.cpp/src/llama-memory.cpp +41 -0
  87. package/src/llama.cpp/src/llama-memory.h +86 -5
  88. package/src/llama.cpp/src/llama-mmap.cpp +1 -1
  89. package/src/llama.cpp/src/llama-model-loader.cpp +42 -17
  90. package/src/llama.cpp/src/llama-model-saver.cpp +1 -0
  91. package/src/llama.cpp/src/llama-model.cpp +1137 -528
  92. package/src/llama.cpp/src/llama-model.h +4 -0
  93. package/src/llama.cpp/src/llama-quant.cpp +2 -1
  94. package/src/llama.cpp/src/llama-sampling.cpp +2 -2
  95. package/src/llama.cpp/src/llama-vocab.cpp +69 -32
  96. package/src/llama.cpp/src/llama-vocab.h +1 -0
  97. package/src/llama.cpp/src/llama.cpp +11 -7
  98. package/src/llama.cpp/src/unicode.cpp +5 -0
  99. package/src/tts_utils.h +1 -1
  100. package/src/llama.cpp/common/json.hpp +0 -24766
  101. package/src/llama.cpp/common/minja/chat-template.hpp +0 -541
  102. package/src/llama.cpp/common/minja/minja.hpp +0 -2974
  103. package/src/llama.cpp/common/stb_image.h +0 -7988
  104. package/src/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h +0 -8
  105. package/src/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c +0 -13326
  106. package/src/llama.cpp/src/llama-kv-cache.cpp +0 -2827
  107. package/src/llama.cpp/src/llama-kv-cache.h +0 -515
  108. /package/src/llama.cpp/ggml/src/ggml-cpu/{cpu-feats-x86.cpp → arch/x86/cpu-feats.cpp} +0 -0
  109. /package/src/llama.cpp/ggml/src/ggml-cpu/{ggml-cpu-hbm.h → hbm.h} +0 -0
  110. /package/src/llama.cpp/ggml/src/ggml-cpu/{ggml-cpu-traits.h → traits.h} +0 -0
@@ -0,0 +1,82 @@
1
+ # include "ggml-backend-impl.h"
2
+
3
+ #if defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__)
4
+
5
+ #if defined(__linux__)
6
+ #include <sys/auxv.h>
7
+ #endif
8
+
9
+ #include <string>
10
+
11
+ struct powerpc_features {
12
+ std::string platform = "";
13
+ int power_version = -1;
14
+
15
+ bool has_vsx = false;
16
+
17
+ powerpc_features() {
18
+ #if defined(__linux__)
19
+ unsigned long auxval = getauxval(AT_PLATFORM);
20
+ if (auxval) {
21
+ platform = std::string(reinterpret_cast<const char*>(auxval));
22
+ // TBD: Do systems exist that return this in uppercase?
23
+ if (platform.substr(0, 5) == "power") {
24
+ // Extractt a numeric suffix, if one exists
25
+ int vpos = -1;
26
+ for (int i = platform.length() - 1; i >= 0; i--) {
27
+ if (std::isdigit(platform[i])) {
28
+ vpos = i;
29
+ } else {
30
+ break;
31
+ }
32
+ }
33
+ if (vpos > -1) {
34
+ power_version = std::stoi(platform.substr(vpos));
35
+ }
36
+ }
37
+ }
38
+ #endif
39
+ if (power_version >= 9) {
40
+ has_vsx = true;
41
+ }
42
+ }
43
+ };
44
+
45
+ static int ggml_backend_cpu_powerpc_score() {
46
+ int score = 1;
47
+ powerpc_features pf;
48
+
49
+ // Platform scores
50
+ #if defined(GGML_USE_POWER7)
51
+ if (pf.power_version < 7) { return 0; }
52
+ score += 1<<1;
53
+ #endif
54
+ #if defined(GGML_USE_POWER8)
55
+ if (pf.power_version < 8) { return 0; }
56
+ score += 1<<2;
57
+ #endif
58
+ #if defined(GGML_USE_POWER9)
59
+ if (pf.power_version < 9) { return 0; }
60
+ score += 1<<3;
61
+ #endif
62
+ #if defined(GGML_USE_POWER10)
63
+ if (pf.power_version < 10) { return 0; }
64
+ score += 1<<4;
65
+ #endif
66
+ #if defined(GGML_USE_POWER11)
67
+ if (pf.power_version < 11) { return 0; }
68
+ score += 1<<5;
69
+ #endif
70
+
71
+ // Feature scores
72
+ #if defined(GGML_USE_VSX)
73
+ if (!pf.has_vsx) { return 0; }
74
+ score += 1<<6;
75
+ #endif
76
+
77
+ return score;
78
+ }
79
+
80
+ GGML_BACKEND_DL_SCORE_IMPL(ggml_backend_cpu_powerpc_score)
81
+
82
+ #endif // defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__)