Which KoboldCpp backend should you use?
Use CUDA if you have an NVIDIA GPU, KoboldCpp Vulkan for AMD and Intel GPUs (it also works on NVIDIA), and Metal on Apple Silicon Macs, where it is the default. Use CPU only when there is no usable GPU; the Old CPU and Failsafe options are for processors without AVX2 or AVX and are much slower. After launching, the log should show CUDA0, Vulkan0 or MTL0 buffers.
Checked against KoboldCpp 1.124.2 · updated 13 Nov 2026
- lab-lnx: Linux test VM · 4 vCPU · 15 GB · no GPU
- gha-w25: Windows Server 2025 test machine · 4 vCPU · 16 GB · no GPU
- gha-w22: Windows Server 2022 test machine · 4 vCPU · 16 GB · no GPU
- sw-vulkan: Software Vulkan (Mesa lavapipe) · reports exact VRAM allocations, speeds meaningless
On this page
Pick a backend in 30 seconds
Which graphics card do you have?
Every option in the Backend menu
The launcher lists only the options whose library is inside your file F84. On the Linux nocuda build that is:
koboldcpp_default.so | Use CPU | 2.9 MB | 2.9 MB |
koboldcpp_noavx2.so | Use CPU (Old CPU) | 2.9 MB | 2.9 MB |
koboldcpp_failsafe.so | Failsafe Mode (Older CPU) | 2.7 MB | 2.7 MB |
koboldcpp_vulkan.so | Use Vulkan | 4.7 MB | 4.7 MB |
koboldcpp_vulkan_noavx2.so | Use Vulkan (Old CPU) | 4.5 MB | 4.5 MB |
koboldcpp_vulkan_failsafe.so | Use Vulkan (Older CPU) | not included | 4.2 MB |
koboldcpp_hipblas.so | Use hipBLAS (ROCm) | not included | 806 MB |
CUDA is a separate library that the CUDA builds carry; we have no CUDA build for Linux here, so it is not in the table. The flags are Forces CPU-only inference with no GPU backend. Replaces the old --noblas.Default falseLauncher Quick Launch tab: Backend (dropdown: Use CPU / Use CUDA / Use hipBLAS (ROCm) / Use Vulkan / Use CPU (Old CPU) / Use Vulkan (Old CPU) / Use Vulkan (Older CPU) / Failsafe Mode (Older CPU); only options whose library ships in the binary are listed)Since v1.75All details, Selects the NVIDIA CUDA backend (or hipBLAS/ROCm in ROCm builds). Optionally give a GPU index or 'all'; legacy sub-options (mmq/nommq/lowvram/rowsplit) are still parsed and translated into the newer flags.Default noneLauncher Quick Launch tab: Backend (dropdown: Use CPU / Use CUDA / Use hipBLAS (ROCm) / Use Vulkan / Use CPU (Old CPU) / Use Vulkan (Old CPU) / Use Vulkan (Older CPU) / Failsafe Mode (Older CPU); only options whose library ships in the binary are listed)Since v1.33All details, Selects the Vulkan backend, which works on NVIDIA, AMD and Intel GPUs. Optionally list device indices; leave empty to auto-detect.Default noneLauncher Quick Launch tab: Backend (dropdown: Use CPU / Use CUDA / Use hipBLAS (ROCm) / Use Vulkan / Use CPU (Old CPU) / Use Vulkan (Old CPU) / Use Vulkan (Older CPU) / Failsafe Mode (Older CPU); only options whose library ships in the binary are listed)Since v1.56All details, Uses the slower non-AVX2 library for older CPUs (with Vulkan if requested).Default falseLauncher Quick Launch tab: Backend (dropdown: Use CPU / Use CUDA / Use hipBLAS (ROCm) / Use Vulkan / Use CPU (Old CPU) / Use Vulkan (Old CPU) / Use Vulkan (Older CPU) / Failsafe Mode (Older CPU); only options whose library ships in the binary are listed)Since v1.5All details and Maximum-compatibility mode for very old CPUs (no AVX); implies --noavx2. Very slow.Default falseLauncher Quick Launch tab: Backend (dropdown: Use CPU / Use CUDA / Use hipBLAS (ROCm) / Use Vulkan / Use CPU (Old CPU) / Use Vulkan (Old CPU) / Use Vulkan (Older CPU) / Failsafe Mode (Older CPU); only options whose library ships in the binary are listed)Since v1.80All details.
CUDA
NVIDIA only. The main builds use CUDA 12.1 and the -oldpc build 11.4 (upstream). --usecublas was renamed --usecuda in 1.96 and the old name still works (flags). The CUDA file on a PC with no NVIDIA card still starts and runs on the CPU, 2 to 4 times slower to start F02. More in NVIDIA.
KoboldCpp Vulkan: AMD, Intel and NVIDIA
Vulkan has been in KoboldCpp since 1.56 (multi-GPU since 1.57) and is in every Windows and Linux build, including nocuda, so there is no separate Vulkan download F84. It is the upstream recommendation for AMD (AMD). We could not measure CUDA against Vulkan on one card: we have no GPU here. We did test the selection logic with a software Vulkan device: KoboldCpp skips it unless you select it explicitly, and when selected it offloads layers like a real GPU F35. Users report garbled output on some versions and slowdowns after games; if output is garbled on one backend, try the other first (reported, not tested).
CPU, Old CPU and Failsafe
CPU is what runs when no GPU is found; the log says so in three lines F18. Old CPU is the library without AVX2, and Failsafe the one without AVX; it implies no AVX2.
Data
| Item | Value (tok/s) |
|---|---|
| Use CPU | 47.4 |
| oldpc build | 28.2 |
| --noavx2 | 31.7 |
| --failsafe | 5.8 |
Download CSV · Results: R-ci1-w22-nocuda-base-q4_k_m, R-ci1-w22-oldpc-base-q4_k_m, R-ci1-w22-nocuda-fail-noavx2, R-ci1-w22-nocuda-fail-failsafe
Metal (Apple Silicon)
Metal is built into koboldcpp-mac-arm64 and has been the default with full offload since 1.74 (upstream). On GitHub’s macOS VM Metal was slower than the CPU (4.3 to 5.7 against 7.5 to 10.1 tokens per second), which is a VM artefact and says nothing about a real Mac F29. Intel Macs have no binary: build from source for CPU only. See Mac.
ROCm (hipBLAS)
AMD only. It is official as the Linux rocm-rolling build, which carries an 806 MB hipBLAS library F84; on a machine with no AMD GPU it starts on its CPU path and --usecuda aborts with exit code 134 F74. Windows ROCm is a third-party fork. See AMD.
Intel Arc and integrated GPUs
Vulkan is the only prebuilt path; there is no SYCL build (upstream; users have asked for one). We have no Intel card, so speeds and driver problems here are users’ reports. Built-in graphics may report little memory: see GPU layers.
NPUs
No NPU backend appears in 1.124.2’s backend list. A model can be split between a GPU and the CPU through partial offload (GPU layers), but that is not an NPU.
Removed backends: CLBlast and OpenBLAS
removed --useclblast existed from 1.5 to 1.106.2, had a compatibility mode in 1.78 and was removed in 1.107. Old guides that say “use CLBlast for AMD” are out of date: use Vulkan. OpenBLAS became part of CPU in 1.75.
Check which backend is active
Asking for a GPU that is not there does not fail: it runs on the CPU, and the log can still say offloaded 25/25 layers to GPU F17. Look for the buffer lines instead:
CUDA0 model buffer size | On an NVIDIA GPU |
Vulkan0 model buffer size | On a Vulkan GPU |
MTL0 model buffer size | On Apple Metal |
CPU KV buffer size and no GPU buffer | Everything runs on the CPU, whatever "offloaded" says |
Unable to detect VRAM. | No GPU was found <EvidenceBadge id="F18" /> |
If that is your case, see GPU not used.
Frequently asked questions
CUDA or Vulkan for NVIDIA?
CUDA is the usual choice on NVIDIA and is what the main builds are made for. Vulkan also works on NVIDIA cards. We could not measure the two against each other on one card, so we make no speed claim.
Does KoboldCpp work on Intel Arc?
Vulkan is the only prebuilt path for Intel GPUs; there is no SYCL build. We have no Intel card, so what we know is upstream's and users' reports.
Is CLBlast still available?
No. --useclblast existed from 1.5 until its removal in 1.107. Use Vulkan on AMD and Intel.
What does Failsafe mode do?
It loads a library for CPUs without AVX and implies no AVX2. On our test machines it generated 5.75 tokens per second against 47.4 for the normal CPU path.
Can KoboldCpp use my NPU?
No NPU backend is listed in 1.124.2. A GPU and the CPU can share a model through partial offload, but that is not an NPU.
Where is the Vulkan exe?
There is none: Vulkan is inside every Windows and Linux build. We unpacked the Linux nocuda build and found the Vulkan library in it.