chore: shared cuda dependencies
This commit is contained in:
parent
3643c8866e
commit
2c11caf87e
@ -1 +1 @@
|
|||||||
oxlint --fix || npm run lint --fix
|
npx oxlint@latest --fix
|
||||||
@ -18,7 +18,8 @@
|
|||||||
"docs/**/*",
|
"docs/**/*",
|
||||||
"scripts/**/*",
|
"scripts/**/*",
|
||||||
"icons/**/*",
|
"icons/**/*",
|
||||||
"themes"
|
"themes",
|
||||||
|
"shared"
|
||||||
],
|
],
|
||||||
"asarUnpack": [
|
"asarUnpack": [
|
||||||
"pre-install",
|
"pre-install",
|
||||||
@ -26,7 +27,8 @@
|
|||||||
"docs",
|
"docs",
|
||||||
"scripts",
|
"scripts",
|
||||||
"icons",
|
"icons",
|
||||||
"themes"
|
"themes",
|
||||||
|
"shared"
|
||||||
],
|
],
|
||||||
"publish": [
|
"publish": [
|
||||||
{
|
{
|
||||||
|
|||||||
0
electron/shared/.gitkeep
Normal file
0
electron/shared/.gitkeep
Normal file
@ -1,5 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
set BIN_PATH=./bin
|
set BIN_PATH=./bin
|
||||||
|
set SHARED_PATH=./../../electron/shared
|
||||||
set /p CORTEX_VERSION=<./bin/version.txt
|
set /p CORTEX_VERSION=<./bin/version.txt
|
||||||
|
|
||||||
@REM Download cortex.llamacpp binaries
|
@REM Download cortex.llamacpp binaries
|
||||||
@ -18,8 +19,8 @@ call .\node_modules\.bin\download %DOWNLOAD_URL%-avx.tar.gz -e --strip 1 -o %BIN
|
|||||||
call .\node_modules\.bin\download %DOWNLOAD_URL%-avx2.tar.gz -e --strip 1 -o %BIN_PATH%/avx2/engines/cortex.llamacpp
|
call .\node_modules\.bin\download %DOWNLOAD_URL%-avx2.tar.gz -e --strip 1 -o %BIN_PATH%/avx2/engines/cortex.llamacpp
|
||||||
call .\node_modules\.bin\download %DOWNLOAD_URL%-avx512.tar.gz -e --strip 1 -o %BIN_PATH%/avx512/engines/cortex.llamacpp
|
call .\node_modules\.bin\download %DOWNLOAD_URL%-avx512.tar.gz -e --strip 1 -o %BIN_PATH%/avx512/engines/cortex.llamacpp
|
||||||
call .\node_modules\.bin\download %DOWNLOAD_URL%-vulkan.tar.gz -e --strip 1 -o %BIN_PATH%/vulkan/engines/cortex.llamacpp
|
call .\node_modules\.bin\download %DOWNLOAD_URL%-vulkan.tar.gz -e --strip 1 -o %BIN_PATH%/vulkan/engines/cortex.llamacpp
|
||||||
call .\node_modules\.bin\download %CUDA_DOWNLOAD_URL%/cuda-12-0-windows-amd64.tar.gz -e --strip 1 -o %BIN_PATH%
|
call .\node_modules\.bin\download %CUDA_DOWNLOAD_URL%/cuda-12-0-windows-amd64.tar.gz -e --strip 1 -o %SHARED_PATH%
|
||||||
call .\node_modules\.bin\download %CUDA_DOWNLOAD_URL%/cuda-11-7-windows-amd64.tar.gz -e --strip 1 -o %BIN_PATH%
|
call .\node_modules\.bin\download %CUDA_DOWNLOAD_URL%/cuda-11-7-windows-amd64.tar.gz -e --strip 1 -o %SHARED_PATH%
|
||||||
|
|
||||||
|
|
||||||
@REM Loop through each folder and move DLLs (excluding engine.dll)
|
@REM Loop through each folder and move DLLs (excluding engine.dll)
|
||||||
|
|||||||
@ -23,8 +23,8 @@ if [ "$OS_TYPE" == "Linux" ]; then
|
|||||||
download "${ENGINE_DOWNLOAD_URL}-linux-amd64-noavx-cuda-12-0.tar.gz" -e --strip 1 -o "./bin/noavx-cuda-12-0/engines/cortex.llamacpp" 1
|
download "${ENGINE_DOWNLOAD_URL}-linux-amd64-noavx-cuda-12-0.tar.gz" -e --strip 1 -o "./bin/noavx-cuda-12-0/engines/cortex.llamacpp" 1
|
||||||
download "${ENGINE_DOWNLOAD_URL}-linux-amd64-noavx-cuda-11-7.tar.gz" -e --strip 1 -o "./bin/noavx-cuda-11-7/engines/cortex.llamacpp" 1
|
download "${ENGINE_DOWNLOAD_URL}-linux-amd64-noavx-cuda-11-7.tar.gz" -e --strip 1 -o "./bin/noavx-cuda-11-7/engines/cortex.llamacpp" 1
|
||||||
download "${ENGINE_DOWNLOAD_URL}-linux-amd64-vulkan.tar.gz" -e --strip 1 -o "./bin/vulkan/engines/cortex.llamacpp" 1
|
download "${ENGINE_DOWNLOAD_URL}-linux-amd64-vulkan.tar.gz" -e --strip 1 -o "./bin/vulkan/engines/cortex.llamacpp" 1
|
||||||
download "${CUDA_DOWNLOAD_URL}/cuda-12-0-linux-amd64.tar.gz" -e --strip 1 -o "./bin" 1
|
download "${CUDA_DOWNLOAD_URL}/cuda-12-0-linux-amd64.tar.gz" -e --strip 1 -o "../../electron/shared" 1
|
||||||
download "${CUDA_DOWNLOAD_URL}/cuda-11-7-linux-amd64.tar.gz" -e --strip 1 -o "./bin" 1
|
download "${CUDA_DOWNLOAD_URL}/cuda-11-7-linux-amd64.tar.gz" -e --strip 1 -o "../../electron/shared" 1
|
||||||
|
|
||||||
elif [ "$OS_TYPE" == "Darwin" ]; then
|
elif [ "$OS_TYPE" == "Darwin" ]; then
|
||||||
# macOS downloads
|
# macOS downloads
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import path from 'path'
|
|||||||
import { getJanDataFolderPath, log, SystemInformation } from '@janhq/core/node'
|
import { getJanDataFolderPath, log, SystemInformation } from '@janhq/core/node'
|
||||||
import { executableCortexFile } from './execute'
|
import { executableCortexFile } from './execute'
|
||||||
import { ProcessWatchdog } from './watchdog'
|
import { ProcessWatchdog } from './watchdog'
|
||||||
|
import { appResourcePath } from '@janhq/core/node'
|
||||||
|
|
||||||
// The HOST address to use for the Nitro subprocess
|
// The HOST address to use for the Nitro subprocess
|
||||||
const LOCAL_PORT = '39291'
|
const LOCAL_PORT = '39291'
|
||||||
@ -19,9 +20,9 @@ function run(systemInfo?: SystemInformation): Promise<any> {
|
|||||||
// If ngl is not set or equal to 0, run on CPU with correct instructions
|
// If ngl is not set or equal to 0, run on CPU with correct instructions
|
||||||
systemInfo?.gpuSetting
|
systemInfo?.gpuSetting
|
||||||
? {
|
? {
|
||||||
...systemInfo.gpuSetting,
|
...systemInfo.gpuSetting,
|
||||||
run_mode: systemInfo.gpuSetting.run_mode,
|
run_mode: systemInfo.gpuSetting.run_mode,
|
||||||
}
|
}
|
||||||
: undefined
|
: undefined
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -29,20 +30,9 @@ function run(systemInfo?: SystemInformation): Promise<any> {
|
|||||||
log(`[CORTEX]:: Spawn cortex at path: ${executableOptions.executablePath}`)
|
log(`[CORTEX]:: Spawn cortex at path: ${executableOptions.executablePath}`)
|
||||||
log(`[CORTEX]:: Cortex engine path: ${executableOptions.enginePath}`)
|
log(`[CORTEX]:: Cortex engine path: ${executableOptions.enginePath}`)
|
||||||
|
|
||||||
// Add engine path to the PATH and LD_LIBRARY_PATH
|
addEnvPaths(path.join(appResourcePath(), 'shared'))
|
||||||
process.env.PATH = (process.env.PATH || '').concat(
|
addEnvPaths(executableOptions.binPath)
|
||||||
path.delimiter,
|
addEnvPaths(executableOptions.enginePath)
|
||||||
executableOptions.enginePath,
|
|
||||||
path.delimiter,
|
|
||||||
executableOptions.binPath
|
|
||||||
)
|
|
||||||
log(`[CORTEX] PATH: ${process.env.PATH}`)
|
|
||||||
process.env.LD_LIBRARY_PATH = (process.env.LD_LIBRARY_PATH || '').concat(
|
|
||||||
path.delimiter,
|
|
||||||
executableOptions.enginePath,
|
|
||||||
path.delimiter,
|
|
||||||
executableOptions.binPath
|
|
||||||
)
|
|
||||||
|
|
||||||
const dataFolderPath = getJanDataFolderPath()
|
const dataFolderPath = getJanDataFolderPath()
|
||||||
watchdog = new ProcessWatchdog(
|
watchdog = new ProcessWatchdog(
|
||||||
@ -83,6 +73,23 @@ function dispose() {
|
|||||||
watchdog?.terminate()
|
watchdog?.terminate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addEnvPaths(dest: string) {
|
||||||
|
// Add engine path to the PATH and LD_LIBRARY_PATH
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
process.env.PATH = (process.env.PATH || '').concat(
|
||||||
|
path.delimiter,
|
||||||
|
dest,
|
||||||
|
)
|
||||||
|
log(`[CORTEX] PATH: ${process.env.PATH}`)
|
||||||
|
} else {
|
||||||
|
process.env.LD_LIBRARY_PATH = (process.env.LD_LIBRARY_PATH || '').concat(
|
||||||
|
path.delimiter,
|
||||||
|
dest,
|
||||||
|
)
|
||||||
|
log(`[CORTEX] LD_LIBRARY_PATH: ${process.env.LD_LIBRARY_PATH}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cortex process info
|
* Cortex process info
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import {
|
|||||||
import { CortexAPI } from './cortex'
|
import { CortexAPI } from './cortex'
|
||||||
import { scanModelsFolder } from './legacy/model-json'
|
import { scanModelsFolder } from './legacy/model-json'
|
||||||
import { downloadModel } from './legacy/download'
|
import { downloadModel } from './legacy/download'
|
||||||
|
import { systemInformation } from '@janhq/core'
|
||||||
|
|
||||||
declare const SETTINGS: Array<any>
|
declare const SETTINGS: Array<any>
|
||||||
|
|
||||||
@ -65,7 +66,7 @@ export default class JanModelExtension extends ModelExtension {
|
|||||||
model.engine === InferenceEngine.nitro_tensorrt_llm ||
|
model.engine === InferenceEngine.nitro_tensorrt_llm ||
|
||||||
model.settings.vision_model
|
model.settings.vision_model
|
||||||
) {
|
) {
|
||||||
return downloadModel(model)
|
return downloadModel(model, (await systemInformation()).gpuSetting)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user