node-llama-cpp 3.0.0-beta.12 → 3.0.0-beta.13

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 (181) hide show
  1. package/dist/ChatWrapper.d.ts +1 -0
  2. package/dist/ChatWrapper.js +2 -1
  3. package/dist/ChatWrapper.js.map +1 -1
  4. package/dist/TemplateChatWrapper.d.ts +67 -0
  5. package/dist/TemplateChatWrapper.js +239 -0
  6. package/dist/TemplateChatWrapper.js.map +1 -0
  7. package/dist/bindings/AddonTypes.d.ts +2 -0
  8. package/dist/bindings/Llama.d.ts +1 -3
  9. package/dist/bindings/Llama.js +10 -20
  10. package/dist/bindings/Llama.js.map +1 -1
  11. package/dist/bindings/consts.d.ts +2 -0
  12. package/dist/bindings/consts.js +11 -0
  13. package/dist/bindings/consts.js.map +1 -0
  14. package/dist/bindings/getLlama.d.ts +14 -18
  15. package/dist/bindings/getLlama.js +210 -78
  16. package/dist/bindings/getLlama.js.map +1 -1
  17. package/dist/bindings/types.d.ts +8 -5
  18. package/dist/bindings/types.js +18 -0
  19. package/dist/bindings/types.js.map +1 -1
  20. package/dist/bindings/utils/asyncEvery.d.ts +5 -0
  21. package/dist/bindings/utils/asyncEvery.js +15 -0
  22. package/dist/bindings/utils/asyncEvery.js.map +1 -0
  23. package/dist/bindings/utils/asyncSome.d.ts +5 -0
  24. package/dist/bindings/utils/asyncSome.js +27 -0
  25. package/dist/bindings/utils/asyncSome.js.map +1 -0
  26. package/dist/bindings/utils/cloneLlamaCppRepo.js +13 -3
  27. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
  28. package/dist/bindings/utils/compileLLamaCpp.js +30 -4
  29. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  30. package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +11 -0
  31. package/dist/bindings/utils/detectAvailableComputeLayers.js +158 -0
  32. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -0
  33. package/dist/bindings/utils/detectGlibc.d.ts +4 -0
  34. package/dist/bindings/utils/detectGlibc.js +36 -0
  35. package/dist/bindings/utils/detectGlibc.js.map +1 -0
  36. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +9 -0
  37. package/dist/bindings/utils/getBestComputeLayersAvailable.js +29 -0
  38. package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -0
  39. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +12 -6
  40. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -1
  41. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +11 -0
  42. package/dist/bindings/utils/getGpuTypesToUseForOption.js +30 -0
  43. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -0
  44. package/dist/bindings/utils/getLinuxDistroInfo.d.ts +9 -0
  45. package/dist/bindings/utils/getLinuxDistroInfo.js +46 -0
  46. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -0
  47. package/dist/bindings/utils/getPlatformInfo.d.ts +5 -0
  48. package/dist/bindings/utils/getPlatformInfo.js +28 -0
  49. package/dist/bindings/utils/getPlatformInfo.js.map +1 -0
  50. package/dist/bindings/utils/hasFileInPath.d.ts +2 -0
  51. package/dist/bindings/utils/hasFileInPath.js +34 -0
  52. package/dist/bindings/utils/hasFileInPath.js.map +1 -0
  53. package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +1 -1
  54. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +3 -9
  55. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -1
  56. package/dist/bindings/utils/logDistroInstallInstruction.d.ts +13 -0
  57. package/dist/bindings/utils/logDistroInstallInstruction.js +38 -0
  58. package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -0
  59. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +9 -2
  60. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +10 -4
  61. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +1 -1
  62. package/dist/bindings/utils/testBindingBinary.d.ts +1 -0
  63. package/dist/bindings/utils/testBindingBinary.js +98 -0
  64. package/dist/bindings/utils/testBindingBinary.js.map +1 -0
  65. package/dist/chatWrappers/ChatMLChatWrapper.js +1 -1
  66. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
  67. package/dist/chatWrappers/GemmaChatWrapper.d.ts +18 -0
  68. package/dist/chatWrappers/GemmaChatWrapper.js +86 -0
  69. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
  70. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +3 -0
  71. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
  72. package/dist/cli/cli.js +2 -0
  73. package/dist/cli/cli.js.map +1 -1
  74. package/dist/cli/commands/BuildCommand.d.ts +5 -5
  75. package/dist/cli/commands/BuildCommand.js +78 -60
  76. package/dist/cli/commands/BuildCommand.js.map +1 -1
  77. package/dist/cli/commands/DebugCommand.js +3 -9
  78. package/dist/cli/commands/DebugCommand.js.map +1 -1
  79. package/dist/cli/commands/DownloadCommand.d.ts +5 -5
  80. package/dist/cli/commands/DownloadCommand.js +97 -56
  81. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  82. package/dist/cli/commands/InspectCommand.d.ts +7 -0
  83. package/dist/cli/commands/InspectCommand.js +113 -0
  84. package/dist/cli/commands/InspectCommand.js.map +1 -0
  85. package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
  86. package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
  87. package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
  88. package/dist/config.d.ts +3 -3
  89. package/dist/config.js +10 -11
  90. package/dist/config.js.map +1 -1
  91. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +3 -0
  92. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +3 -0
  93. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
  94. package/dist/gguf/GGUFInsights.d.ts +28 -0
  95. package/dist/gguf/GGUFInsights.js +58 -0
  96. package/dist/gguf/GGUFInsights.js.map +1 -0
  97. package/dist/gguf/GGUFMetadata.d.ts +19 -0
  98. package/dist/gguf/GGUFMetadata.js +38 -0
  99. package/dist/gguf/GGUFMetadata.js.map +1 -0
  100. package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +3 -0
  101. package/dist/gguf/errors/InvalidGGUFMagicError.js +6 -0
  102. package/dist/gguf/errors/InvalidGGUFMagicError.js.map +1 -0
  103. package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +3 -0
  104. package/dist/gguf/errors/MetadataNotParsedYetError.js +6 -0
  105. package/dist/gguf/errors/MetadataNotParsedYetError.js.map +1 -0
  106. package/dist/gguf/errors/MissingNodeLlamaError.d.ts +3 -0
  107. package/dist/gguf/errors/MissingNodeLlamaError.js +6 -0
  108. package/dist/gguf/errors/MissingNodeLlamaError.js.map +1 -0
  109. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +5 -0
  110. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +12 -0
  111. package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +1 -0
  112. package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +4 -0
  113. package/dist/gguf/errors/UnsupportedMetadataTypeError.js +8 -0
  114. package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +1 -0
  115. package/dist/gguf/ggufParser/GGUFParser.d.ts +18 -0
  116. package/dist/gguf/ggufParser/GGUFParser.js +123 -0
  117. package/dist/gguf/ggufParser/GGUFParser.js.map +1 -0
  118. package/dist/gguf/ggufParser/GGUFTypes.d.ts +257 -0
  119. package/dist/gguf/ggufParser/GGUFTypes.js +2 -0
  120. package/dist/gguf/ggufParser/GGUFTypes.js.map +1 -0
  121. package/dist/gguf/ggufParser/checkArchitecture.d.ts +14 -0
  122. package/dist/gguf/ggufParser/checkArchitecture.js +74 -0
  123. package/dist/gguf/ggufParser/checkArchitecture.js.map +1 -0
  124. package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +38 -0
  125. package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +83 -0
  126. package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +1 -0
  127. package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +14 -0
  128. package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +35 -0
  129. package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +1 -0
  130. package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +15 -0
  131. package/dist/gguf/ggufParser/stream/GGUFReadStream.js +40 -0
  132. package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +1 -0
  133. package/dist/index.d.ts +3 -1
  134. package/dist/index.js +3 -1
  135. package/dist/index.js.map +1 -1
  136. package/dist/utils/LlamaText.js +2 -2
  137. package/dist/utils/LlamaText.js.map +1 -1
  138. package/dist/utils/cmake.js +23 -10
  139. package/dist/utils/cmake.js.map +1 -1
  140. package/dist/utils/getBuildDefaults.d.ts +1 -3
  141. package/dist/utils/getBuildDefaults.js +2 -4
  142. package/dist/utils/getBuildDefaults.js.map +1 -1
  143. package/dist/utils/getConsoleLogPrefix.d.ts +1 -1
  144. package/dist/utils/getConsoleLogPrefix.js +2 -2
  145. package/dist/utils/getConsoleLogPrefix.js.map +1 -1
  146. package/dist/utils/mergeUnionTypes.d.ts +6 -0
  147. package/dist/utils/mergeUnionTypes.js +2 -0
  148. package/dist/utils/mergeUnionTypes.js.map +1 -0
  149. package/dist/utils/parseTextTemplate.d.ts +66 -0
  150. package/dist/utils/parseTextTemplate.js +116 -0
  151. package/dist/utils/parseTextTemplate.js.map +1 -0
  152. package/llama/CMakeLists.txt +11 -5
  153. package/llama/addon.cpp +31 -7
  154. package/llama/binariesGithubRelease.json +1 -1
  155. package/llama/gitRelease.bundle +0 -0
  156. package/llama/llama.cpp.info.json +1 -1
  157. package/llamaBins/linux-arm64/.buildMetadata.json +1 -1
  158. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  159. package/llamaBins/linux-armv7l/.buildMetadata.json +1 -1
  160. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  161. package/llamaBins/linux-x64/.buildMetadata.json +1 -1
  162. package/llamaBins/linux-x64/llama-addon.node +0 -0
  163. package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -1
  164. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  165. package/llamaBins/linux-x64-vulkan/.buildMetadata.json +1 -1
  166. package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
  167. package/llamaBins/mac-arm64-metal/.buildMetadata.json +1 -1
  168. package/llamaBins/mac-arm64-metal/ggml-metal.metal +815 -106
  169. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  170. package/llamaBins/mac-x64/.buildMetadata.json +1 -1
  171. package/llamaBins/mac-x64/llama-addon.node +0 -0
  172. package/llamaBins/win-x64/.buildMetadata.json +1 -1
  173. package/llamaBins/win-x64/llama-addon.node +0 -0
  174. package/llamaBins/win-x64-cuda/.buildMetadata.json +1 -1
  175. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  176. package/llamaBins/win-x64-vulkan/.buildMetadata.json +1 -1
  177. package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
  178. package/package.json +6 -4
  179. package/dist/cli/utils/logEnabledComputeLayers.d.ts +0 -8
  180. package/dist/cli/utils/logEnabledComputeLayers.js +0 -11
  181. package/dist/cli/utils/logEnabledComputeLayers.js.map +0 -1
@@ -3,24 +3,28 @@ import chalk from "chalk";
3
3
  import { compileLlamaCpp } from "../../bindings/utils/compileLLamaCpp.js";
4
4
  import withOra from "../../utils/withOra.js";
5
5
  import { clearTempFolder } from "../../utils/clearTempFolder.js";
6
- import { builtinLlamaCppGitHubRepo, builtinLlamaCppRelease, defaultLlamaCppMetalSupport, defaultLlamaCppCudaSupport, defaultLlamaCppVulkanSupport, isCI } from "../../config.js";
6
+ import { builtinLlamaCppGitHubRepo, builtinLlamaCppRelease, isCI, defaultLlamaCppGpuSupport } from "../../config.js";
7
7
  import { downloadCmakeIfNeeded } from "../../utils/cmake.js";
8
8
  import withStatusLogs from "../../utils/withStatusLogs.js";
9
- import { getIsInDocumentationMode } from "../../state.js";
10
9
  import { logBinaryUsageExampleToConsole } from "../../bindings/utils/logBinaryUsageExampleToConsole.js";
11
10
  import { getPlatform } from "../../bindings/utils/getPlatform.js";
12
11
  import { resolveCustomCmakeOptions } from "../../bindings/utils/resolveCustomCmakeOptions.js";
13
12
  import { getClonedLlamaCppRepoReleaseInfo, isLlamaCppRepoCloned } from "../../bindings/utils/cloneLlamaCppRepo.js";
14
- import { logEnabledComputeLayers } from "../utils/logEnabledComputeLayers.js";
13
+ import { nodeLlamaCppGpuOptions, parseNodeLlamaCppGpuOption } from "../../bindings/types.js";
14
+ import { logUsedGpuTypeOption } from "../utils/logUsedGpuTypeOption.js";
15
+ import { getGpuTypesToUseForOption } from "../../bindings/utils/getGpuTypesToUseForOption.js";
16
+ import { getConsoleLogPrefix } from "../../utils/getConsoleLogPrefix.js";
17
+ import { getPrettyBuildGpuName } from "../../bindings/consts.js";
18
+ import { getPlatformInfo } from "../../bindings/utils/getPlatformInfo.js";
15
19
  export const BuildCommand = {
16
20
  command: "build",
17
21
  describe: "Compile the currently downloaded llama.cpp",
18
22
  builder(yargs) {
19
- const isInDocumentationMode = getIsInDocumentationMode();
20
23
  return yargs
21
24
  .option("arch", {
22
25
  alias: "a",
23
26
  type: "string",
27
+ coerce: (value) => value,
24
28
  description: "The architecture to compile llama.cpp for"
25
29
  })
26
30
  .option("nodeTarget", {
@@ -28,20 +32,13 @@ export const BuildCommand = {
28
32
  type: "string",
29
33
  description: "The Node.js version to compile llama.cpp for. Example: v18.0.0"
30
34
  })
31
- .option("metal", {
32
- type: "boolean",
33
- default: defaultLlamaCppMetalSupport || isInDocumentationMode,
34
- description: "Compile llama.cpp with Metal support. Enabled by default on macOS. Can be disabled with \"--no-metal\". Can also be set via the NODE_LLAMA_CPP_METAL environment variable"
35
- })
36
- .option("cuda", {
37
- type: "boolean",
38
- default: defaultLlamaCppCudaSupport,
39
- description: "Compile llama.cpp with CUDA support. Can also be set via the NODE_LLAMA_CPP_CUDA environment variable"
40
- })
41
- .option("vulkan", {
42
- type: "boolean",
43
- default: defaultLlamaCppVulkanSupport,
44
- description: "Compile llama.cpp with Vulkan support. Can also be set via the NODE_LLAMA_CPP_VULKAN environment variable"
35
+ .option("gpu", {
36
+ type: "string",
37
+ default: defaultLlamaCppGpuSupport,
38
+ // yargs types don't support passing `false` as a choice, although it is supported by yargs
39
+ choices: nodeLlamaCppGpuOptions,
40
+ coerce: parseNodeLlamaCppGpuOption,
41
+ description: "Compute layer implementation type to use for llama.cpp"
45
42
  })
46
43
  .option("noUsageExample", {
47
44
  alias: "nu",
@@ -58,7 +55,7 @@ export const BuildCommand = {
58
55
  },
59
56
  handler: BuildLlamaCppCommand
60
57
  };
61
- export async function BuildLlamaCppCommand({ arch = undefined, nodeTarget = undefined, metal = defaultLlamaCppMetalSupport, cuda = defaultLlamaCppCudaSupport, vulkan = defaultLlamaCppVulkanSupport, noUsageExample = false, noCustomCmakeBuildOptionsInBinaryFolderName = false }) {
58
+ export async function BuildLlamaCppCommand({ arch = undefined, nodeTarget = undefined, gpu = defaultLlamaCppGpuSupport, noUsageExample = false, noCustomCmakeBuildOptionsInBinaryFolderName = false }) {
62
59
  if (!(await isLlamaCppRepoCloned())) {
63
60
  console.log(chalk.red('llama.cpp is not downloaded. Please run "node-llama-cpp download" first'));
64
61
  process.exit(1);
@@ -66,50 +63,71 @@ export async function BuildLlamaCppCommand({ arch = undefined, nodeTarget = unde
66
63
  const includeBuildOptionsInBinaryFolderName = !noCustomCmakeBuildOptionsInBinaryFolderName || !isCI;
67
64
  const clonedLlamaCppRepoReleaseInfo = await getClonedLlamaCppRepoReleaseInfo();
68
65
  const platform = getPlatform();
66
+ const platformInfo = await getPlatformInfo();
69
67
  const customCmakeOptions = resolveCustomCmakeOptions();
70
- logEnabledComputeLayers({ metal, cuda, vulkan }, { platform });
71
- await downloadCmakeIfNeeded(true);
72
- const buildOptions = {
73
- customCmakeOptions,
74
- progressLogs: true,
75
- platform,
76
- arch: arch
77
- ? arch
78
- : process.arch,
79
- computeLayers: {
80
- metal,
81
- cuda,
82
- vulkan
83
- },
84
- llamaCpp: {
85
- repo: clonedLlamaCppRepoReleaseInfo?.llamaCppGithubRepo ?? builtinLlamaCppGitHubRepo,
86
- release: clonedLlamaCppRepoReleaseInfo?.tag ?? builtinLlamaCppRelease
68
+ const buildGpusToTry = await getGpuTypesToUseForOption(gpu, { platform, arch });
69
+ let downloadedCmake = false;
70
+ for (let i = 0; i < buildGpusToTry.length; i++) {
71
+ const gpuToTry = buildGpusToTry[i];
72
+ const isLastItem = i === buildGpusToTry.length - 1;
73
+ logUsedGpuTypeOption(gpuToTry);
74
+ if (!downloadedCmake) {
75
+ await downloadCmakeIfNeeded(true);
76
+ downloadedCmake = true;
77
+ }
78
+ const buildOptions = {
79
+ customCmakeOptions,
80
+ progressLogs: true,
81
+ platform,
82
+ platformInfo,
83
+ arch: arch
84
+ ? arch
85
+ : process.arch,
86
+ gpu: gpuToTry,
87
+ llamaCpp: {
88
+ repo: clonedLlamaCppRepoReleaseInfo?.llamaCppGithubRepo ?? builtinLlamaCppGitHubRepo,
89
+ release: clonedLlamaCppRepoReleaseInfo?.tag ?? builtinLlamaCppRelease
90
+ }
91
+ };
92
+ try {
93
+ await withStatusLogs({
94
+ loading: chalk.blue("Compiling llama.cpp"),
95
+ success: chalk.blue("Compiled llama.cpp"),
96
+ fail: chalk.blue("Failed to compile llama.cpp")
97
+ }, async () => {
98
+ await compileLlamaCpp(buildOptions, {
99
+ nodeTarget: nodeTarget ? nodeTarget : undefined,
100
+ updateLastBuildInfo: true,
101
+ downloadCmakeIfNeeded: false,
102
+ ensureLlamaCppRepoIsCloned: false,
103
+ includeBuildOptionsInBinaryFolderName
104
+ });
105
+ });
87
106
  }
88
- };
89
- await withStatusLogs({
90
- loading: chalk.blue("Compiling llama.cpp"),
91
- success: chalk.blue("Compiled llama.cpp"),
92
- fail: chalk.blue("Failed to compile llama.cpp")
93
- }, async () => {
94
- await compileLlamaCpp(buildOptions, {
95
- nodeTarget: nodeTarget ? nodeTarget : undefined,
96
- updateLastBuildInfo: true,
97
- downloadCmakeIfNeeded: false,
98
- ensureLlamaCppRepoIsCloned: false,
99
- includeBuildOptionsInBinaryFolderName
107
+ catch (err) {
108
+ console.error(getConsoleLogPrefix() +
109
+ `Failed to build llama.cpp with ${getPrettyBuildGpuName(gpuToTry)} support. ` +
110
+ (!isLastItem
111
+ ? `falling back to building llama.cpp with ${getPrettyBuildGpuName(buildGpusToTry[i + 1])} support. `
112
+ : "") +
113
+ "Error:", err);
114
+ if (isLastItem)
115
+ throw err;
116
+ continue;
117
+ }
118
+ await withOra({
119
+ loading: chalk.blue("Removing temporary files"),
120
+ success: chalk.blue("Removed temporary files"),
121
+ fail: chalk.blue("Failed to remove temporary files")
122
+ }, async () => {
123
+ await clearTempFolder();
100
124
  });
101
- });
102
- await withOra({
103
- loading: chalk.blue("Removing temporary files"),
104
- success: chalk.blue("Removed temporary files"),
105
- fail: chalk.blue("Failed to remove temporary files")
106
- }, async () => {
107
- await clearTempFolder();
108
- });
109
- if (!noUsageExample) {
110
- console.log();
111
- logBinaryUsageExampleToConsole(buildOptions, true);
112
- console.log();
125
+ if (!noUsageExample) {
126
+ console.log();
127
+ logBinaryUsageExampleToConsole(buildOptions, gpu !== "auto", true);
128
+ console.log();
129
+ }
130
+ break;
113
131
  }
114
132
  }
115
133
  //# sourceMappingURL=BuildCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AACxE,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACH,yBAAyB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,0BAA0B,EAC1G,4BAA4B,EAAE,IAAI,EACrC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,8BAA8B,EAAC,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAC,gCAAgC,EAAE,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAEjH,OAAO,EAAC,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AAc5E,MAAM,CAAC,MAAM,YAAY,GAAwC;IAC7D,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,4CAA4C;IACtD,OAAO,CAAC,KAAK;QACT,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAC;QAEzD,OAAO,KAAK;aACP,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2CAA2C;SAC3D,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gEAAgE;SAChF,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,2BAA2B,IAAI,qBAAqB;YAC7D,WAAW,EAAE,2KAA2K;SAC3L,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B;YACnC,WAAW,EAAE,uGAAuG;SACvH,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YACd,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,4BAA4B;YACrC,WAAW,EAAE,2GAA2G;SAC3H,CAAC;aACD,MAAM,CAAC,gBAAgB,EAAE;YACtB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+CAA+C;SAC/D,CAAC;aACD,MAAM,CAAC,6CAA6C,EAAE;YACnD,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+DAA+D;SAC/E,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,oBAAoB;CAChC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACvC,IAAI,GAAG,SAAS,EAChB,UAAU,GAAG,SAAS,EACtB,KAAK,GAAG,2BAA2B,EACnC,IAAI,GAAG,0BAA0B,EACjC,MAAM,GAAG,4BAA4B,EACrC,cAAc,GAAG,KAAK,EACtB,2CAA2C,GAAG,KAAK,EACxC;IACX,IAAI,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAC,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,MAAM,qCAAqC,GAAG,CAAC,2CAA2C,IAAI,CAAC,IAAI,CAAC;IAEpG,MAAM,6BAA6B,GAAG,MAAM,gCAAgC,EAAE,CAAC;IAE/E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,kBAAkB,GAAG,yBAAyB,EAAE,CAAC;IAEvD,uBAAuB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;IAE3D,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,YAAY,GAAiB;QAC/B,kBAAkB;QAClB,YAAY,EAAE,IAAI;QAClB,QAAQ;QACR,IAAI,EAAE,IAAI;YACN,CAAC,CAAC,IAA2B;YAC7B,CAAC,CAAC,OAAO,CAAC,IAAI;QAClB,aAAa,EAAE;YACX,KAAK;YACL,IAAI;YACJ,MAAM;SACT;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,6BAA6B,EAAE,kBAAkB,IAAI,yBAAyB;YACpF,OAAO,EAAE,6BAA6B,EAAE,GAAG,IAAI,sBAAsB;SACxE;KACJ,CAAC;IAEF,MAAM,cAAc,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAC1C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC;KAClD,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,eAAe,CAAC,YAAY,EAAE;YAChC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC/C,mBAAmB,EAAE,IAAI;YACzB,qBAAqB,EAAE,KAAK;YAC5B,0BAA0B,EAAE,KAAK;YACjC,qCAAqC;SACxC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC;KACvD,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,eAAe,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE;QACjB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,8BAA8B,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE,CAAC;KACjB;AACL,CAAC"}
1
+ {"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import bytes from "bytes";
3
3
  import chalk from "chalk";
4
4
  import { getLlama } from "../../bindings/getLlama.js";
5
5
  import { prettyPrintObject } from "../../utils/prettyPrintObject.js";
6
- import { logEnabledComputeLayers } from "../utils/logEnabledComputeLayers.js";
6
+ import { logUsedGpuTypeOption } from "../utils/logUsedGpuTypeOption.js";
7
7
  const debugFunctions = ["vram", "cmakeOptions"];
8
8
  export const DebugCommand = {
9
9
  command: "debug [function]",
@@ -50,13 +50,7 @@ async function DebugCmakeOptionsFunction() {
50
50
  console.info(`${chalk.yellow("CMake options:")} ${prettyPrintObject(llama.cmakeOptions)}`);
51
51
  }
52
52
  function logComputeLayers(llama) {
53
- logEnabledComputeLayers({
54
- metal: llama.metal,
55
- cuda: llama.cuda,
56
- vulkan: llama.vulkan
57
- });
58
- const hasEnabledLayers = llama.metal || llama.cuda || llama.vulkan;
59
- if (hasEnabledLayers)
60
- console.info();
53
+ logUsedGpuTypeOption(llama.gpu);
54
+ console.info();
61
55
  }
62
56
  //# sourceMappingURL=DebugCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DebugCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DebugCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DebugCommand.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
+ import process from "process";
1
2
  import { CommandModule } from "yargs";
3
+ import { BuildGpu } from "../../bindings/types.js";
2
4
  type DownloadCommandArgs = {
3
5
  repo?: string;
4
6
  release?: "latest" | string;
5
- arch?: string;
7
+ arch?: typeof process.arch;
6
8
  nodeTarget?: string;
7
- metal?: boolean;
8
- cuda?: boolean;
9
- vulkan?: boolean;
9
+ gpu?: BuildGpu | "auto";
10
10
  skipBuild?: boolean;
11
11
  noBundle?: boolean;
12
12
  noUsageExample?: boolean;
13
13
  };
14
14
  export declare const DownloadCommand: CommandModule<object, DownloadCommandArgs>;
15
- export declare function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget, metal, cuda, vulkan, skipBuild, noBundle, noUsageExample, updateBinariesReleaseMetadataAndSaveGitBundle }: DownloadCommandArgs): Promise<void>;
15
+ export declare function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget, gpu, skipBuild, noBundle, noUsageExample, updateBinariesReleaseMetadataAndSaveGitBundle }: DownloadCommandArgs): Promise<void>;
16
16
  export {};
@@ -1,7 +1,7 @@
1
1
  import process from "process";
2
2
  import fs from "fs-extra";
3
3
  import chalk from "chalk";
4
- import { defaultLlamaCppCudaSupport, defaultLlamaCppVulkanSupport, defaultLlamaCppGitHubRepo, defaultLlamaCppMetalSupport, defaultLlamaCppRelease, isCI, llamaCppDirectory, llamaCppDirectoryInfoFilePath } from "../../config.js";
4
+ import { defaultLlamaCppGitHubRepo, defaultLlamaCppRelease, isCI, llamaCppDirectory, llamaCppDirectoryInfoFilePath, defaultLlamaCppGpuSupport } from "../../config.js";
5
5
  import { compileLlamaCpp } from "../../bindings/utils/compileLLamaCpp.js";
6
6
  import withOra from "../../utils/withOra.js";
7
7
  import { clearTempFolder } from "../../utils/clearTempFolder.js";
@@ -15,7 +15,12 @@ import { getPlatform } from "../../bindings/utils/getPlatform.js";
15
15
  import { resolveCustomCmakeOptions } from "../../bindings/utils/resolveCustomCmakeOptions.js";
16
16
  import { logBinaryUsageExampleToConsole } from "../../bindings/utils/logBinaryUsageExampleToConsole.js";
17
17
  import { resolveGithubRelease } from "../../utils/resolveGithubRelease.js";
18
- import { logEnabledComputeLayers } from "../utils/logEnabledComputeLayers.js";
18
+ import { nodeLlamaCppGpuOptions, parseNodeLlamaCppGpuOption } from "../../bindings/types.js";
19
+ import { logUsedGpuTypeOption } from "../utils/logUsedGpuTypeOption.js";
20
+ import { getGpuTypesToUseForOption } from "../../bindings/utils/getGpuTypesToUseForOption.js";
21
+ import { getConsoleLogPrefix } from "../../utils/getConsoleLogPrefix.js";
22
+ import { getPrettyBuildGpuName } from "../../bindings/consts.js";
23
+ import { getPlatformInfo } from "../../bindings/utils/getPlatformInfo.js";
19
24
  export const DownloadCommand = {
20
25
  command: "download",
21
26
  describe: "Download a release of llama.cpp and compile it",
@@ -35,6 +40,7 @@ export const DownloadCommand = {
35
40
  .option("arch", {
36
41
  alias: "a",
37
42
  type: "string",
43
+ coerce: (value) => value,
38
44
  description: "The architecture to compile llama.cpp for"
39
45
  })
40
46
  .option("nodeTarget", {
@@ -42,21 +48,13 @@ export const DownloadCommand = {
42
48
  type: "string",
43
49
  description: "The Node.js version to compile llama.cpp for. Example: v18.0.0"
44
50
  })
45
- .option("metal", {
46
- type: "boolean",
47
- default: defaultLlamaCppMetalSupport || isInDocumentationMode,
48
- hidden: process.platform !== "darwin" && !isInDocumentationMode,
49
- description: "Compile llama.cpp with Metal support. Enabled by default on macOS. Can be disabled with \"--no-metal\". Can also be set via the NODE_LLAMA_CPP_METAL environment variable"
50
- })
51
- .option("cuda", {
52
- type: "boolean",
53
- default: defaultLlamaCppCudaSupport,
54
- description: "Compile llama.cpp with CUDA support. Can also be set via the NODE_LLAMA_CPP_CUDA environment variable"
55
- })
56
- .option("vulkan", {
57
- type: "boolean",
58
- default: defaultLlamaCppVulkanSupport,
59
- description: "Compile llama.cpp with Vulkan support. Can also be set via the NODE_LLAMA_CPP_VULKAN environment variable"
51
+ .option("gpu", {
52
+ type: "string",
53
+ default: defaultLlamaCppGpuSupport,
54
+ // yargs types don't support passing `false` as a choice, although it is supported by yargs
55
+ choices: nodeLlamaCppGpuOptions,
56
+ coerce: parseNodeLlamaCppGpuOption,
57
+ description: "Compute layer implementation type to use for llama.cpp"
60
58
  })
61
59
  .option("skipBuild", {
62
60
  alias: "sb",
@@ -85,16 +83,20 @@ export const DownloadCommand = {
85
83
  },
86
84
  handler: DownloadLlamaCppCommand
87
85
  };
88
- // TODO: clear the builds folder
89
- export async function DownloadLlamaCppCommand({ repo = defaultLlamaCppGitHubRepo, release = defaultLlamaCppRelease, arch = undefined, nodeTarget = undefined, metal = defaultLlamaCppMetalSupport, cuda = defaultLlamaCppCudaSupport, vulkan = defaultLlamaCppVulkanSupport, skipBuild = false, noBundle = false, noUsageExample = false, updateBinariesReleaseMetadataAndSaveGitBundle = false }) {
86
+ export async function DownloadLlamaCppCommand({ repo = defaultLlamaCppGitHubRepo, release = defaultLlamaCppRelease, arch = undefined, nodeTarget = undefined, gpu = defaultLlamaCppGpuSupport, skipBuild = false, noBundle = false, noUsageExample = false, updateBinariesReleaseMetadataAndSaveGitBundle = false }) {
90
87
  const useBundle = noBundle != true;
91
88
  const platform = getPlatform();
89
+ const platformInfo = await getPlatformInfo();
92
90
  const customCmakeOptions = resolveCustomCmakeOptions();
91
+ const buildGpusToTry = skipBuild
92
+ ? []
93
+ : await getGpuTypesToUseForOption(gpu, { platform, arch });
93
94
  const [githubOwner, githubRepo] = repo.split("/");
95
+ let downloadedCmake = false;
94
96
  console.log(`${chalk.yellow("Repo:")} ${repo}`);
95
97
  console.log(`${chalk.yellow("Release:")} ${release}`);
96
98
  if (!skipBuild) {
97
- logEnabledComputeLayers({ metal, cuda, vulkan }, { platform });
99
+ logUsedGpuTypeOption(buildGpusToTry[0]);
98
100
  }
99
101
  console.log();
100
102
  let githubReleaseTag = (useBundle && (await getGitBundlePathForRelease(githubOwner, githubRepo, release)) != null)
@@ -119,48 +121,87 @@ export async function DownloadLlamaCppCommand({ repo = defaultLlamaCppGitHubRepo
119
121
  });
120
122
  console.log(chalk.blue("Cloning llama.cpp"));
121
123
  await cloneLlamaCppRepo(githubOwner, githubRepo, githubReleaseTag, useBundle);
122
- const buildOptions = {
123
- customCmakeOptions,
124
- progressLogs: true,
125
- platform,
126
- arch: arch
127
- ? arch
128
- : process.arch,
129
- computeLayers: {
130
- metal,
131
- cuda,
132
- vulkan
133
- },
134
- llamaCpp: {
135
- repo,
136
- release: githubReleaseTag
137
- }
138
- };
139
124
  if (!skipBuild) {
140
- await downloadCmakeIfNeeded(true);
141
- await withStatusLogs({
142
- loading: chalk.blue("Compiling llama.cpp"),
143
- success: chalk.blue("Compiled llama.cpp"),
144
- fail: chalk.blue("Failed to compile llama.cpp")
145
- }, async () => {
146
- await compileLlamaCpp(buildOptions, {
147
- nodeTarget: nodeTarget ? nodeTarget : undefined,
148
- updateLastBuildInfo: true,
149
- downloadCmakeIfNeeded: false,
150
- ensureLlamaCppRepoIsCloned: false,
151
- includeBuildOptionsInBinaryFolderName: true
152
- });
153
- });
125
+ for (let i = 0; i < buildGpusToTry.length; i++) {
126
+ const gpuToTry = buildGpusToTry[i];
127
+ const isLastItem = i === buildGpusToTry.length - 1;
128
+ if (i > 0) // we already logged the first gpu before
129
+ logUsedGpuTypeOption(gpuToTry);
130
+ if (!downloadedCmake) {
131
+ await downloadCmakeIfNeeded(true);
132
+ downloadedCmake = true;
133
+ }
134
+ const buildOptions = {
135
+ customCmakeOptions,
136
+ progressLogs: true,
137
+ platform,
138
+ platformInfo,
139
+ arch: arch
140
+ ? arch
141
+ : process.arch,
142
+ gpu: gpuToTry,
143
+ llamaCpp: {
144
+ repo,
145
+ release: githubReleaseTag
146
+ }
147
+ };
148
+ try {
149
+ await withStatusLogs({
150
+ loading: chalk.blue("Compiling llama.cpp"),
151
+ success: chalk.blue("Compiled llama.cpp"),
152
+ fail: chalk.blue("Failed to compile llama.cpp")
153
+ }, async () => {
154
+ await compileLlamaCpp(buildOptions, {
155
+ nodeTarget: nodeTarget ? nodeTarget : undefined,
156
+ updateLastBuildInfo: true,
157
+ downloadCmakeIfNeeded: false,
158
+ ensureLlamaCppRepoIsCloned: false,
159
+ includeBuildOptionsInBinaryFolderName: true
160
+ });
161
+ });
162
+ }
163
+ catch (err) {
164
+ console.error(getConsoleLogPrefix() +
165
+ `Failed to build llama.cpp with ${getPrettyBuildGpuName(gpuToTry)} support. ` +
166
+ (!isLastItem
167
+ ? `falling back to building llama.cpp with ${getPrettyBuildGpuName(buildGpusToTry[i + 1])} support. `
168
+ : "") +
169
+ "Error:", err);
170
+ if (isLastItem)
171
+ throw err;
172
+ continue;
173
+ }
174
+ if (!noUsageExample) {
175
+ console.log();
176
+ console.log();
177
+ logBinaryUsageExampleToConsole(buildOptions, gpu !== "auto", true);
178
+ }
179
+ break;
180
+ }
181
+ }
182
+ else if (!noUsageExample) {
183
+ const buildOptions = {
184
+ customCmakeOptions,
185
+ progressLogs: true,
186
+ platform,
187
+ platformInfo,
188
+ arch: arch
189
+ ? arch
190
+ : process.arch,
191
+ gpu: buildGpusToTry[0],
192
+ llamaCpp: {
193
+ repo,
194
+ release: githubReleaseTag
195
+ }
196
+ };
197
+ console.log();
198
+ console.log();
199
+ logBinaryUsageExampleToConsole(buildOptions, gpu !== "auto", true);
154
200
  }
155
201
  if (isCI && updateBinariesReleaseMetadataAndSaveGitBundle) {
156
202
  await setBinariesGithubRelease(githubReleaseTag);
157
203
  await unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle();
158
204
  }
159
- if (!noUsageExample) {
160
- console.log();
161
- console.log();
162
- logBinaryUsageExampleToConsole(buildOptions, true);
163
- }
164
205
  console.log();
165
206
  console.log();
166
207
  console.log(`${chalk.yellow("Repo:")} ${repo}`);
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DownloadCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DownloadCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DownloadCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,yBAAyB,EAAE,sBAAsB,EAAE,IAAI,EAAE,iBAAiB,EAAE,6BAA6B,EACzG,yBAAyB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AACxE,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,0BAA0B,EAAE,qDAAqD,EAAC,MAAM,kCAAkC,CAAC;AACnI,OAAO,EAAC,iBAAiB,EAAC,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAC,8BAA8B,EAAC,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAyB,sBAAsB,EAAE,0BAA0B,EAAC,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AAgBxE,MAAM,CAAC,MAAM,eAAe,GAA+C;IACvE,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,gDAAgD;IAC1D,OAAO,CAAC,KAAK;QACT,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAC;QAEzD,OAAO,KAAK;aACP,MAAM,CAAC,MAAM,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yBAAyB;YAClC,WAAW,EAAE,iIAAiI;SACjJ,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB;YAC3E,WAAW,EAAE,0KAA0K;SAC1L,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,WAAW,EAAE,2CAA2C;SAC3D,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gEAAgE;SAChF,CAAC;aACD,MAAM,CAAC,KAAK,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yBAAyB;YAElC,2FAA2F;YAC3F,OAAO,EAAE,sBAAwF;YACjG,MAAM,EAAE,0BAA0B;YAClC,WAAW,EAAE,wDAAwD;SACxE,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACjB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,8CAA8C;SAC9D,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAChB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,kGAAkG;SAClH,CAAC;aACD,MAAM,CAAC,gBAAgB,EAAE;YACtB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+CAA+C;SAC/D,CAAC;aACD,MAAM,CAAC,+CAA+C,EAAE;YACrD,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,8FAA8F;SAC9G,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,uBAAuB;CACnC,CAAC;AAGF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC1C,IAAI,GAAG,yBAAyB,EAChC,OAAO,GAAG,sBAAsB,EAChC,IAAI,GAAG,SAAS,EAChB,UAAU,GAAG,SAAS,EACtB,GAAG,GAAG,yBAAyB,EAC/B,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK,EACtB,6CAA6C,GAAG,KAAK,EACnC;IAClB,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,yBAAyB,EAAE,CAAC;IACvD,MAAM,cAAc,GAAe,SAAS;QACxC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,MAAM,yBAAyB,CAAC,GAAG,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElD,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,EAAE;QACZ,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,gBAAgB,GAAkB,CAAC,SAAS,IAAI,CAAC,MAAM,0BAA0B,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7H,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,gBAAgB,IAAI,IAAI;QACxB,MAAM,OAAO,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;YAC9C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;YAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC;SACrD,EAAE,KAAK,IAAI,EAAE;YACV,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IAEP,MAAM,eAAe,EAAE,CAAC;IAExB,MAAM,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC;QAC5D,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC;QAC3D,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC;KACpE,EAAE,KAAK,IAAI,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,MAAM,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,gBAAiB,EAAE,SAAS,CAAC,CAAC;IAE/E,IAAI,CAAC,SAAS,EAAE;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,CAAC,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnD,IAAI,CAAC,GAAG,CAAC,EAAE,yCAAyC;gBAChD,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,CAAC,eAAe,EAAE;gBAClB,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAClC,eAAe,GAAG,IAAI,CAAC;aAC1B;YAED,MAAM,YAAY,GAAiB;gBAC/B,kBAAkB;gBAClB,YAAY,EAAE,IAAI;gBAClB,QAAQ;gBACR,YAAY;gBACZ,IAAI,EAAE,IAAI;oBACN,CAAC,CAAC,IAA2B;oBAC7B,CAAC,CAAC,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE;oBACN,IAAI;oBACJ,OAAO,EAAE,gBAAiB;iBAC7B;aACJ,CAAC;YAEF,IAAI;gBACA,MAAM,cAAc,CAAC;oBACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;oBAC1C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;oBACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC;iBAClD,EAAE,KAAK,IAAI,EAAE;oBACV,MAAM,eAAe,CAAC,YAAY,EAAE;wBAChC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;wBAC/C,mBAAmB,EAAE,IAAI;wBACzB,qBAAqB,EAAE,KAAK;wBAC5B,0BAA0B,EAAE,KAAK;wBACjC,qCAAqC,EAAE,IAAI;qBAC9C,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,KAAK,CACT,mBAAmB,EAAE;oBACrB,kCAAkC,qBAAqB,CAAC,QAAQ,CAAC,YAAY;oBAC7E,CACI,CAAC,UAAU;wBACP,CAAC,CAAC,2CAA2C,qBAAqB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;wBACrG,CAAC,CAAC,EAAE,CACX;oBACD,QAAQ,EACR,GAAG,CACN,CAAC;gBAEF,IAAI,UAAU;oBACV,MAAM,GAAG,CAAC;gBAEd,SAAS;aACZ;YAED,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,8BAA8B,CAAC,YAAY,EAAE,GAAG,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC;aACtE;YAED,MAAM;SACT;KACJ;SAAM,IAAI,CAAC,cAAc,EAAE;QACxB,MAAM,YAAY,GAAiB;YAC/B,kBAAkB;YAClB,YAAY,EAAE,IAAI;YAClB,QAAQ;YACR,YAAY;YACZ,IAAI,EAAE,IAAI;gBACN,CAAC,CAAC,IAA2B;gBAC7B,CAAC,CAAC,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;YACtB,QAAQ,EAAE;gBACN,IAAI;gBACJ,OAAO,EAAE,gBAAiB;aAC7B;SACJ,CAAC;QAEF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,8BAA8B,CAAC,YAAY,EAAE,GAAG,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC;KACtE;IAED,IAAI,IAAI,IAAI,6CAA6C,EAAE;QACvD,MAAM,wBAAwB,CAAC,gBAAiB,CAAC,CAAC;QAClD,MAAM,qDAAqD,EAAE,CAAC;KACjE;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CommandModule } from "yargs";
2
+ declare const inspectFunctions: readonly ["gpu"];
3
+ type InspectCommand = {
4
+ function: (typeof inspectFunctions)[number];
5
+ };
6
+ export declare const InspectCommand: CommandModule<object, InspectCommand>;
7
+ export {};
@@ -0,0 +1,113 @@
1
+ import os from "os";
2
+ import bytes from "bytes";
3
+ import chalk from "chalk";
4
+ import { getLlamaForOptions } from "../../bindings/getLlama.js";
5
+ import { detectAvailableComputeLayers } from "../../bindings/utils/detectAvailableComputeLayers.js";
6
+ import { getPlatform } from "../../bindings/utils/getPlatform.js";
7
+ import { LlamaLogLevel } from "../../bindings/types.js";
8
+ import { getPrettyBuildGpuName } from "../../bindings/consts.js";
9
+ const inspectFunctions = ["gpu"];
10
+ export const InspectCommand = {
11
+ command: "inspect [function]",
12
+ describe: "Inspect the inner workings of node-llama-cpp",
13
+ builder(yargs) {
14
+ return yargs
15
+ .option("function", {
16
+ type: "string",
17
+ choices: inspectFunctions,
18
+ demandOption: true,
19
+ description: "inspect function to run"
20
+ });
21
+ },
22
+ async handler({ function: func }) {
23
+ if (func === "gpu")
24
+ await InspectGpuFunction();
25
+ else
26
+ void (func);
27
+ }
28
+ };
29
+ async function InspectGpuFunction() {
30
+ const platform = getPlatform();
31
+ const arch = process.arch;
32
+ const availableComputeLayers = await detectAvailableComputeLayers({ platform });
33
+ const gpusToLogVramUsageOf = [];
34
+ if (platform === "mac" && arch === "arm64") {
35
+ console.info(`${chalk.yellow("Metal:")} ${chalk.green("available")}`);
36
+ gpusToLogVramUsageOf.push("metal");
37
+ }
38
+ else {
39
+ console.info(`${chalk.yellow("Metal:")} ${chalk.red("not supported by llama.cpp on Intel Macs")}`);
40
+ }
41
+ if (availableComputeLayers.cuda.hasNvidiaDriver && !availableComputeLayers.cuda.hasCudaRuntime) {
42
+ console.info(`${chalk.yellow("CUDA:")} ${chalk.red("NVIDIA driver is installed, but CUDA runtime is not")}`);
43
+ }
44
+ else if (availableComputeLayers.cuda.hasCudaRuntime && !availableComputeLayers.cuda.hasNvidiaDriver) {
45
+ console.info(`${chalk.yellow("CUDA:")} ${chalk.red("CUDA runtime is installed, but NVIDIA driver is not")}`);
46
+ }
47
+ else if (availableComputeLayers.cuda.hasCudaRuntime && availableComputeLayers.cuda.hasNvidiaDriver) {
48
+ console.info(`${chalk.yellow("CUDA:")} ${chalk.green("available")}`);
49
+ gpusToLogVramUsageOf.push("cuda");
50
+ }
51
+ if (availableComputeLayers.vulkan) {
52
+ console.info(`${chalk.yellow("Vulkan:")} ${chalk.green("available")}`);
53
+ gpusToLogVramUsageOf.push("vulkan");
54
+ }
55
+ for (const gpu of gpusToLogVramUsageOf) {
56
+ console.info();
57
+ await logGpuVramUsage(gpu);
58
+ }
59
+ console.info();
60
+ await logRamUsage();
61
+ }
62
+ async function logGpuVramUsage(gpu) {
63
+ try {
64
+ const llama = await getLlamaForOptions({
65
+ gpu: gpu,
66
+ build: "never",
67
+ progressLogs: false,
68
+ logLevel: LlamaLogLevel.warn
69
+ }, {
70
+ skipLlamaInit: true
71
+ });
72
+ const gpuName = getPrettyBuildGpuName(gpu);
73
+ const vramStatus = llama.getVramState();
74
+ console.info(`${chalk.yellow(`${gpuName} used VRAM:`)} ${getPercentageString(vramStatus.used, vramStatus.total)}% ${chalk.grey("(" + bytes(vramStatus.used) + "/" + bytes(vramStatus.total) + ")")}`);
75
+ console.info(`${chalk.yellow(`${gpuName} free VRAM:`)} ${getPercentageString(vramStatus.free, vramStatus.total)}% ${chalk.grey("(" + bytes(vramStatus.free) + "/" + bytes(vramStatus.total) + ")")}`);
76
+ }
77
+ catch (err) { }
78
+ }
79
+ async function logRamUsage() {
80
+ const totalMemory = os.totalmem();
81
+ const freeMemory = os.freemem();
82
+ const usedMemory = totalMemory - freeMemory;
83
+ console.info(`${chalk.yellow("Used RAM:")} ${getPercentageString(usedMemory, totalMemory)}% ${chalk.grey("(" + bytes(usedMemory) + "/" + bytes(totalMemory) + ")")}`);
84
+ console.info(`${chalk.yellow("Free RAM:")} ${getPercentageString(freeMemory, totalMemory)}% ${chalk.grey("(" + bytes(freeMemory) + "/" + bytes(totalMemory) + ")")}`);
85
+ }
86
+ function getPercentageString(amount, total) {
87
+ if (total === 0)
88
+ return "0";
89
+ return String(Math.floor((amount / total) * 100 * 100) / 100);
90
+ }
91
+ // // simple script to copy console logs as ansi to clipboard. Used to update the documentation
92
+ // import {spawn} from "child_process";
93
+ // const pendingLog: string[] = [];
94
+ // const originalConsoleInfo = console.info;
95
+ // console.info = function info(...args: any[]) {
96
+ // originalConsoleInfo.call(console, ...args);
97
+ // pendingLog.push(args.join(" "));
98
+ // };
99
+ //
100
+ // function copyLogs() {
101
+ // const res = pendingLog.join("\n");
102
+ //
103
+ // pbcopy(res);
104
+ // originalConsoleInfo.call(console, "Copied logs to clipboard");
105
+ // }
106
+ // function pbcopy(text: string) {
107
+ // const pbcopyProcess = spawn("pbcopy");
108
+ // pbcopyProcess.stdin.write(text);
109
+ // pbcopyProcess.stdin.end();
110
+ // }
111
+ //
112
+ // process.on("exit", copyLogs);
113
+ //# sourceMappingURL=InspectCommand.js.map