Skip to content

Commit f2707eb

Browse files
cosminccclaude
andcommitted
llama-cpp: support every Linux prebuilt backend
var_backend now covers all Linux builds llama.cpp publishes, each with the runtime its release workflow builds against: - cuda: CUDA 12 or 13 build chosen from the host driver (<580 -> 12), plus the matching cudart tarball deployed into /opt/llama-cpp - rocm: ubuntu-rocm-<ver>-x64 with the same ROCm release of AMD's TheRock wheels (rocm[libraries]) in a uv venv, added to LD_LIBRARY_PATH; updates follow upstream when the build moves to a newer ROCm - sycl-fp16 / sycl-fp32: oneAPI runtime libraries from Intel's apt repo, registered with ld.so; Level Zero loader from oneapi-src/level-zero and libze-intel-gpu1 from intel/compute-runtime - openvino: libtbb12, OpenCL ICD loader and Level Zero; GGML_OPENVINO_DEVICE is set to GPU when a render node is present auto stays the default (Vulkan with a GPU, otherwise CPU). The rocm->vulkan remap and the "no Linux ROCm/CUDA build" comments are gone, since upstream now ships both. Release lookups use the b tag prefix, the only tags carrying binaries, and updates keep the recorded backend. The install-time variables are now exported from the CT script so app_vars actually reach the container. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 1ed3543 commit f2707eb

3 files changed

Lines changed: 200 additions & 39 deletions

File tree

‎ct/llama-cpp.sh‎

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ var_gpu="${var_gpu:-yes}"
1919
var_unprivileged="${var_unprivileged:-1}"
2020
var_testurl="${var_testurl:-https://github.com/community-scripts/DevScripts/issues/2124}"
2121

22+
export var_backend="${var_backend:-}"
23+
export var_model_repo="${var_model_repo:-}"
24+
export var_ctx_size="${var_ctx_size:-}"
25+
export var_offload_layers="${var_offload_layers:-}"
26+
export var_api_key="${var_api_key:-}"
27+
export var_port="${var_port:-}"
28+
2229
header_info "$APP"
2330
variables
2431
color
@@ -34,26 +41,61 @@ function update_script() {
3441
exit
3542
fi
3643

37-
if check_for_gh_release "llama-cpp" "ggml-org/llama.cpp"; then
44+
# Only the bNNNN tags carry the prebuilt binaries; other tags have no assets.
45+
if check_for_gh_release "llama-cpp" "ggml-org/llama.cpp" "" "" "b"; then
3846
msg_info "Stopping Service"
3947
systemctl stop llama-cpp
4048
msg_ok "Stopped Service"
4149

4250
# Keep the build variant the install picked; the CPU tarball would otherwise
43-
# overwrite a Vulkan install and quietly end GPU offload.
44-
#
45-
# rocm reads as vulkan: upstream publishes no Linux ROCm build, so anything
46-
# recorded as rocm predates that being noticed and would otherwise fail
47-
# every update on an asset that does not exist.
51+
# overwrite a GPU build and quietly end offload.
4852
LLAMA_BACKEND="$(cat /opt/llama-cpp_data/.backend 2>/dev/null || echo cpu)"
53+
LLAMA_ARCH="$(arch_resolve x64 arm64)"
54+
# Installs from before the ROCm build existed recorded rocm while actually
55+
# running the Vulkan build.
56+
[[ "$LLAMA_BACKEND" == "rocm" && ! -d /opt/llama-cpp_data/rocm ]] && LLAMA_BACKEND="vulkan"
57+
58+
LLAMA_CUDART_ASSET=""
4959
case "$LLAMA_BACKEND" in
50-
vulkan | rocm) LLAMA_ASSET="llama-*-bin-ubuntu-vulkan-$(arch_resolve x64 arm64).tar.gz" ;;
51-
*) LLAMA_ASSET="llama-*-bin-ubuntu-$(arch_resolve x64 arm64).tar.gz" ;;
60+
vulkan) LLAMA_ASSET="llama-*-bin-ubuntu-vulkan-${LLAMA_ARCH}.tar.gz" ;;
61+
cuda-12 | cuda-13)
62+
LLAMA_ASSET="llama-*-bin-ubuntu-cuda-${LLAMA_BACKEND#cuda-}.*-${LLAMA_ARCH}.tar.gz"
63+
LLAMA_CUDART_ASSET="cudart-${LLAMA_ASSET}"
64+
;;
65+
rocm) LLAMA_ASSET="llama-*-bin-ubuntu-rocm-*-x64.tar.gz" ;;
66+
sycl-fp16 | sycl-fp32) LLAMA_ASSET="llama-*-bin-ubuntu-${LLAMA_BACKEND}-x64.tar.gz" ;;
67+
openvino) LLAMA_ASSET="llama-*-bin-ubuntu-openvino-*x64.tar.gz" ;;
68+
*) LLAMA_ASSET="llama-*-bin-ubuntu-${LLAMA_ARCH}.tar.gz" ;;
5269
esac
5370

54-
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "llama-cpp" "ggml-org/llama.cpp" "prebuild" "latest" "/opt/llama-cpp" "$LLAMA_ASSET"
71+
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "llama-cpp" "ggml-org/llama.cpp" "prebuild" "${CHECK_UPDATE_RELEASE}" "/opt/llama-cpp" "$LLAMA_ASSET" "b"
72+
# The wipe above also removed the CUDA runtime, so it always goes back in.
73+
if [[ -n "$LLAMA_CUDART_ASSET" ]]; then
74+
rm -f ~/.llama-cpp-cudart
75+
fetch_and_deploy_gh_release "llama-cpp-cudart" "ggml-org/llama.cpp" "prebuild" "${CHECK_UPDATE_RELEASE}" "/opt/llama-cpp" "$LLAMA_CUDART_ASSET" "b"
76+
fi
5577
chmod +x /opt/llama-cpp/llama-*
5678

79+
case "$LLAMA_BACKEND" in
80+
sycl-* | openvino)
81+
fetch_and_deploy_gh_release "level-zero" "oneapi-src/level-zero" "binary" "latest" "" "libze1_*+u24.04_amd64.deb" || true
82+
if [[ -d /dev/dri ]]; then
83+
fetch_and_deploy_gh_release "intel-level-zero-gpu" "intel/compute-runtime" "binary" "latest" "" "libze-intel-gpu1_*_amd64.deb" || true
84+
fi
85+
;;
86+
rocm)
87+
# The ROCm build links against the ROCm release it was built with, so
88+
# follow it when upstream moves to a newer one.
89+
ROCM_VERSION="$(jq -r 'if type == "array" then .[0] else . end | .assets[].name' "$TOOLS_GH_REL_JSON" 2>/dev/null | grep -oP 'bin-ubuntu-rocm-\K[0-9.]+(?=-x64)' | head -1)"
90+
if [[ -n "$ROCM_VERSION" && "$ROCM_VERSION" != "$(cat /opt/llama-cpp_data/rocm/.version 2>/dev/null)" ]]; then
91+
msg_info "Updating ROCm Runtime to ${ROCM_VERSION}"
92+
$STD uv pip install --python /opt/llama-cpp_data/rocm --index-url https://stable.repo.amd.com/rocm/whl-next/ "rocm[libraries]==${ROCM_VERSION}.*"
93+
echo "$ROCM_VERSION" >/opt/llama-cpp_data/rocm/.version
94+
msg_ok "Updated ROCm Runtime to ${ROCM_VERSION}"
95+
fi
96+
;;
97+
esac
98+
5799
msg_info "Starting Service"
58100
systemctl start llama-cpp
59101
msg_ok "Started Service"

‎install/llama-cpp-install.sh‎

Lines changed: 141 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,61 +13,150 @@ setting_up_container
1313
network_check
1414
update_os
1515

16-
var_backend="${var_backend:-auto}"
1716
var_model_repo="${var_model_repo:-ggml-org/gemma-3-1b-it-GGUF}"
1817
var_port="${var_port:-8080}"
1918
var_ctx_size="${var_ctx_size:-4096}"
2019
var_offload_layers="${var_offload_layers:-}"
2120
var_api_key="${var_api_key:-}"
2221

23-
# Which prebuilt upstream ships decides what the container can offload to, and
24-
# for Linux that list is short: ubuntu-x64, ubuntu-arm64, ubuntu-vulkan-x64,
25-
# ubuntu-vulkan-arm64, plus the Intel sycl and openvino builds. There is no
26-
# Linux CUDA build and no Linux ROCm build either -- the only ROCm asset
27-
# upstream publishes is win-rocm-*-x64.zip. Vulkan is therefore the GPU path for
28-
# every vendor here, AMD included, and it reaches an AMD card through RADV.
29-
#
30-
# Asking for a ubuntu-rocm asset failed the install outright with "No asset
31-
# matching 'llama--bin-ubuntu-rocm--x64.tar.gz' found" on any host where the
32-
# engine had set up /dev/kfd.
22+
# The Linux prebuilts upstream publishes (see .github/workflows/release.yml):
23+
# cpu ubuntu-{x64,arm64}
24+
# vulkan ubuntu-vulkan-{x64,arm64} any GPU vendor (AMD through RADV)
25+
# cuda ubuntu-cuda-{12.x,13.x}-x64, ubuntu-cuda-13.x-arm64, plus a cudart tarball
26+
# rocm ubuntu-rocm-<ver>-x64 needs the matching ROCm (TheRock) runtime
27+
# sycl ubuntu-sycl-{fp16,fp32}-x64 Intel GPUs, needs oneAPI + Level Zero
28+
# openvino ubuntu-openvino-<ver>-x64 Intel CPU/GPU, OpenVINO runtime is bundled
29+
if [[ -z "${var_backend:-}" ]]; then
30+
LLAMA_CHOICE=$(prompt_select "Select the llama.cpp build:" 1 60 \
31+
"auto - Vulkan when a GPU is passed through, otherwise CPU" \
32+
"cpu - CPU only" \
33+
"vulkan - Vulkan (Intel, AMD and NVIDIA GPUs)" \
34+
"cuda - NVIDIA CUDA" \
35+
"rocm - AMD ROCm" \
36+
"sycl-fp16 - Intel GPU via oneAPI SYCL (FP16)" \
37+
"sycl-fp32 - Intel GPU via oneAPI SYCL (FP32)" \
38+
"openvino - Intel CPU/GPU via OpenVINO")
39+
var_backend="${LLAMA_CHOICE%% *}"
40+
fi
41+
var_backend="${var_backend:-auto}"
42+
3343
if [[ "$var_backend" == "auto" ]]; then
3444
if [[ -e /dev/kfd || -e /dev/nvidia0 || -d /dev/dri ]]; then
3545
var_backend="vulkan"
3646
else
3747
var_backend="cpu"
3848
fi
3949
fi
40-
41-
# rocm was a documented value, so keep accepting it rather than failing anyone
42-
# who pinned it -- but say where they are actually being sent.
43-
if [[ "$var_backend" == "rocm" ]]; then
44-
msg_warn "llama.cpp publishes no Linux ROCm build - using the Vulkan build, which drives an AMD card through RADV"
45-
var_backend="vulkan"
46-
fi
50+
[[ "$var_backend" == "sycl" ]] && var_backend="sycl-fp16"
4751

4852
LLAMA_ARCH="$(arch_resolve x64 arm64)"
49-
5053
case "$var_backend" in
51-
vulkan) LLAMA_ASSET="llama-*-bin-ubuntu-vulkan-${LLAMA_ARCH}.tar.gz" ;;
54+
rocm | sycl-fp16 | sycl-fp32 | openvino)
55+
if [[ "$LLAMA_ARCH" != "x64" ]]; then
56+
msg_error "llama.cpp publishes the ${var_backend} build for x64 only"
57+
exit 1
58+
fi
59+
;;
60+
cpu | vulkan | cuda) ;;
5261
*)
53-
var_backend="cpu"
54-
LLAMA_ASSET="llama-*-bin-ubuntu-${LLAMA_ARCH}.tar.gz"
62+
msg_error "Unknown var_backend '${var_backend}' (expected auto, cpu, vulkan, cuda, rocm, sycl-fp16, sycl-fp32 or openvino)"
63+
exit 1
5564
;;
5665
esac
5766

5867
msg_info "Installing Dependencies"
5968
LLAMA_DEPS=(libgomp1)
60-
[[ "$var_backend" == "vulkan" ]] && LLAMA_DEPS+=(libvulkan1 mesa-vulkan-drivers vulkan-tools)
69+
case "$var_backend" in
70+
vulkan) LLAMA_DEPS+=(libvulkan1 mesa-vulkan-drivers vulkan-tools) ;;
71+
openvino) LLAMA_DEPS+=(libtbb12 ocl-icd-libopencl1) ;;
72+
sycl-*) LLAMA_DEPS+=(ocl-icd-libopencl1) ;;
73+
esac
6174
$STD apt install -y "${LLAMA_DEPS[@]}"
6275
msg_ok "Installed Dependencies"
6376

6477
setup_hwaccel
6578

66-
fetch_and_deploy_gh_release "llama-cpp" "ggml-org/llama.cpp" "prebuild" "latest" "/opt/llama-cpp" "$LLAMA_ASSET"
79+
# SYCL and OpenVINO reach an Intel GPU through Level Zero. release.yml builds
80+
# SYCL against the loader from oneapi-src/level-zero, so use the same package.
81+
if [[ "$var_backend" == sycl-* || "$var_backend" == "openvino" ]]; then
82+
fetch_and_deploy_gh_release "level-zero" "oneapi-src/level-zero" "binary" "latest" "" "libze1_*+u24.04_amd64.deb"
83+
if [[ -d /dev/dri ]]; then
84+
fetch_and_deploy_gh_release "intel-level-zero-gpu" "intel/compute-runtime" "binary" "latest" "" "libze-intel-gpu1_*_amd64.deb" || true
85+
fi
86+
fi
87+
88+
# The SYCL tarball ships only llama.cpp itself; the DPC++/oneMKL/oneDNN/TBB
89+
# libraries it links against come from oneAPI. release.yml builds with the full
90+
# toolkit, but running needs only the runtime libraries.
91+
if [[ "$var_backend" == sycl-* ]]; then
92+
setup_deb822_repo \
93+
"oneapi" \
94+
"https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB" \
95+
"https://apt.repos.intel.com/oneapi" \
96+
"all" \
97+
"main"
98+
msg_info "Installing Intel oneAPI Runtime"
99+
$STD apt install -y intel-oneapi-runtime-libs
100+
# The runtime packages unpack under /opt/intel/oneapi without telling the
101+
# dynamic linker, so register every directory that holds one of them.
102+
find /opt/intel/oneapi -type f \( -name 'libsycl.so*' -o -name 'libur_loader.so*' -o -name 'libmkl_core.so*' \
103+
-o -name 'libdnnl.so*' -o -name 'libtbb.so*' -o -name 'libsvml.so' -o -name 'libiomp5.so' -o -name 'libumf.so*' \) \
104+
-printf '%h\n' 2>/dev/null | sort -u >/etc/ld.so.conf.d/oneapi-llama-cpp.conf
105+
ldconfig
106+
msg_ok "Installed Intel oneAPI Runtime"
107+
fi
108+
109+
LLAMA_CUDART_ASSET=""
110+
case "$var_backend" in
111+
vulkan) LLAMA_ASSET="llama-*-bin-ubuntu-vulkan-${LLAMA_ARCH}.tar.gz" ;;
112+
cuda)
113+
# CUDA 13 needs a 580+ host driver; anything older gets the CUDA 12 build,
114+
# which upstream publishes for x64 only.
115+
NVIDIA_DRIVER_MAJOR="$(grep -oP '\d{3,}(?=\.\d+)' /proc/driver/nvidia/version 2>/dev/null | head -1)"
116+
if [[ "$LLAMA_ARCH" == "x64" && -n "$NVIDIA_DRIVER_MAJOR" && "$NVIDIA_DRIVER_MAJOR" -lt 580 ]]; then
117+
var_backend="cuda-12"
118+
else
119+
var_backend="cuda-13"
120+
fi
121+
[[ -z "$NVIDIA_DRIVER_MAJOR" ]] && msg_warn "No NVIDIA host driver visible - installing the CUDA 13 build, which needs driver 580 or newer"
122+
LLAMA_ASSET="llama-*-bin-ubuntu-cuda-${var_backend#cuda-}.*-${LLAMA_ARCH}.tar.gz"
123+
LLAMA_CUDART_ASSET="cudart-${LLAMA_ASSET}"
124+
;;
125+
rocm) LLAMA_ASSET="llama-*-bin-ubuntu-rocm-*-x64.tar.gz" ;;
126+
sycl-fp16 | sycl-fp32) LLAMA_ASSET="llama-*-bin-ubuntu-${var_backend}-x64.tar.gz" ;;
127+
openvino) LLAMA_ASSET="llama-*-bin-ubuntu-openvino-*x64.tar.gz" ;;
128+
*) LLAMA_ASSET="llama-*-bin-ubuntu-${LLAMA_ARCH}.tar.gz" ;;
129+
esac
130+
131+
# Only the bNNNN tags carry the prebuilt binaries; other tags have no assets.
132+
fetch_and_deploy_gh_release "llama-cpp" "ggml-org/llama.cpp" "prebuild" "latest" "/opt/llama-cpp" "$LLAMA_ASSET" "b"
133+
LLAMA_RELEASE="$(cat ~/.llama-cpp)"
134+
if [[ -n "$LLAMA_CUDART_ASSET" ]]; then
135+
fetch_and_deploy_gh_release "llama-cpp-cudart" "ggml-org/llama.cpp" "prebuild" "$LLAMA_RELEASE" "/opt/llama-cpp" "$LLAMA_CUDART_ASSET" "b"
136+
fi
137+
138+
mkdir -p /opt/llama-cpp_data/models
139+
LLAMA_LIBPATH="/opt/llama-cpp"
140+
141+
# The ROCm build carries no ROCm libraries. release.yml builds it against AMD's
142+
# TheRock wheels, so install the same ROCm release of those as the runtime.
143+
if [[ "$var_backend" == "rocm" ]]; then
144+
ROCM_VERSION="$(jq -r --arg t "$LLAMA_RELEASE" 'if type == "array" then .[] else . end | select(.tag_name == $t) | .assets[].name' "$TOOLS_GH_REL_JSON" 2>/dev/null | grep -oP 'bin-ubuntu-rocm-\K[0-9.]+(?=-x64)' | head -1)"
145+
if [[ -z "$ROCM_VERSION" ]]; then
146+
msg_error "Could not read the ROCm release the llama.cpp ${LLAMA_RELEASE} build targets"
147+
exit 1
148+
fi
149+
PYTHON_VERSION="3.12" setup_uv
150+
msg_info "Installing ROCm ${ROCM_VERSION} Runtime"
151+
$STD uv venv --python 3.12 /opt/llama-cpp_data/rocm
152+
$STD uv pip install --python /opt/llama-cpp_data/rocm --index-url https://stable.repo.amd.com/rocm/whl-next/ "rocm[libraries]==${ROCM_VERSION}.*"
153+
echo "$ROCM_VERSION" >/opt/llama-cpp_data/rocm/.version
154+
LLAMA_LIBPATH="${LLAMA_LIBPATH}:$(/opt/llama-cpp_data/rocm/bin/rocm-sdk path --root)/lib"
155+
msg_ok "Installed ROCm ${ROCM_VERSION} Runtime"
156+
fi
67157

68158
msg_info "Configuring llama.cpp"
69159
chmod +x /opt/llama-cpp/llama-*
70-
mkdir -p /opt/llama-cpp_data/models
71160
echo "$var_backend" >/opt/llama-cpp_data/.backend
72161
if [[ -z "$var_offload_layers" ]]; then
73162
[[ "$var_backend" == "cpu" ]] && var_offload_layers=0 || var_offload_layers=999
@@ -85,6 +174,27 @@ LLAMA_CACHE=/opt/llama-cpp_data/models
85174
LLAMA_ARG_CTX_SIZE=${var_ctx_size}
86175
LLAMA_ARG_N_GPU_LAYERS=${var_offload_layers}
87176
EOF
177+
case "$var_backend" in
178+
sycl-*)
179+
cat <<EOF >>/opt/llama-cpp.env
180+
181+
# SYCL: cache JIT-compiled kernels across restarts; pick GPUs with the selector
182+
SYCL_CACHE_PERSISTENT=1
183+
SYCL_CACHE_DIR=/opt/llama-cpp_data/sycl-cache
184+
#ONEAPI_DEVICE_SELECTOR=level_zero:0
185+
EOF
186+
;;
187+
openvino)
188+
OV_DEVICE="CPU"
189+
compgen -G "/dev/dri/renderD*" >/dev/null && OV_DEVICE="GPU"
190+
cat <<EOF >>/opt/llama-cpp.env
191+
192+
# OpenVINO device: CPU, GPU (GPU.0, GPU.1, ...) or NPU
193+
GGML_OPENVINO_DEVICE=${OV_DEVICE}
194+
GGML_OPENVINO_CACHE_DIR=/opt/llama-cpp_data/openvino-cache
195+
EOF
196+
;;
197+
esac
88198
# An empty LLAMA_ARG_API_KEY makes llama-server demand an empty bearer token.
89199
if [[ -n "$var_api_key" ]]; then
90200
echo "LLAMA_ARG_API_KEY=${var_api_key}" >>/opt/llama-cpp.env
@@ -95,10 +205,14 @@ chmod 600 /opt/llama-cpp.env
95205
msg_ok "Configured llama.cpp (${var_backend} build)"
96206

97207
if [[ "$var_backend" != "cpu" ]]; then
98-
if LD_LIBRARY_PATH=/opt/llama-cpp ldd /opt/llama-cpp/llama-server 2>/dev/null | grep -q "not found"; then
208+
if LD_LIBRARY_PATH="$LLAMA_LIBPATH" ldd /opt/llama-cpp/llama-server /opt/llama-cpp/libggml-*.so 2>/dev/null | grep -q "not found"; then
99209
msg_warn "The ${var_backend} build is missing shared libraries in this container - it will fall back to the CPU"
100210
elif [[ "$var_backend" == "vulkan" ]] && ! vulkaninfo --summary >/dev/null 2>&1; then
101211
msg_warn "Vulkan build installed but no Vulkan device is visible - check GPU passthrough and the driver libraries in the container"
212+
elif [[ "$var_backend" == cuda-* ]] && ! ldconfig -p | grep -q 'libcuda[.]so'; then
213+
msg_warn "CUDA build installed but the NVIDIA driver library (libcuda) is missing - check GPU passthrough"
214+
elif [[ "$var_backend" == sycl-* || "$var_backend" == "rocm" ]] && [[ ! -d /dev/dri && ! -e /dev/kfd ]]; then
215+
msg_warn "${var_backend} build installed but no GPU is passed through - it will fall back to the CPU"
102216
fi
103217
fi
104218

@@ -114,7 +228,7 @@ Type=simple
114228
User=root
115229
WorkingDirectory=/opt/llama-cpp
116230
EnvironmentFile=/opt/llama-cpp.env
117-
Environment=LD_LIBRARY_PATH=/opt/llama-cpp
231+
Environment=LD_LIBRARY_PATH=${LLAMA_LIBPATH}
118232
ExecStart=/opt/llama-cpp/llama-server
119233
Restart=on-failure
120234
RestartSec=10

‎json/llama-cpp.json‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,15 @@
4343
"options": [
4444
"auto",
4545
"cpu",
46-
"vulkan"
46+
"vulkan",
47+
"cuda",
48+
"rocm",
49+
"sycl-fp16",
50+
"sycl-fp32",
51+
"openvino"
4752
],
4853
"default": "auto",
49-
"help": "auto takes vulkan for any passed-through GPU (AMD via RADV, NVIDIA and Intel too), cpu otherwise. Upstream ships no Linux ROCm or CUDA build."
54+
"help": "auto takes vulkan for any passed-through GPU, cpu otherwise. cuda picks the CUDA 12 or 13 build from the host driver; rocm, sycl-fp16/fp32 and openvino are x64 only."
5055
},
5156
{
5257
"name": "var_model_repo",
@@ -100,7 +105,7 @@
100105
"type": "warning"
101106
},
102107
{
103-
"text": "The build variant is chosen at install time: cpu or vulkan, or auto to follow the passed-through GPU. Upstream publishes no Linux CUDA or ROCm build, so every GPU is served by the vulkan build - AMD through RADV, NVIDIA through the driver's Vulkan ICD, which has to be present in the container. The choice is remembered in /opt/llama-cpp_data/.backend so updates keep it.",
108+
"text": "The build variant is chosen at install time: cpu, vulkan (any GPU vendor), cuda (NVIDIA; CUDA 13 with a 580+ host driver, CUDA 12 otherwise), rocm (AMD, with the matching ROCm runtime from AMD's TheRock wheels), sycl-fp16/sycl-fp32 (Intel GPU, with the oneAPI runtime and Level Zero) or openvino (Intel CPU/GPU), or auto to take vulkan when a GPU is passed through. The choice is remembered in /opt/llama-cpp_data/.backend so updates keep it.",
104109
"type": "info"
105110
},
106111
{

0 commit comments

Comments
 (0)