llama.cpp没用上显卡

failed to initialize CUDA:没识别到显卡

报错原文

ggml_cuda_init: failed to initialize CUDA: <reason>

尖括号 <…> 里的内容每次运行都会不同。

是什么意思

CUDA 版本的 llama.cpp 启动了,但连接不上任何 NVIDIA 显卡,于是退回 CPU 运行。冒号后面是 CUDA 自己给出的原因。

为什么会出现

  • 在 Docker 里:容器启动时没给 GPU 权限(--gpus all),或没装 NVIDIA Container Toolkit。
  • 已安装的驱动比编译这个程序所用的 CUDA 版本旧。
  • 在 WSL2 里:在 WSL 内部装了 Linux 版 NVIDIA 驱动,覆盖了 Windows 的直通驱动。

怎么解决

  1. 在 llama.cpp 运行的环境里(宿主机、容器或 WSL)执行 nvidia-smi。如果它也失败,先修好驱动。
  2. 更新 NVIDIA 驱动;预编译的 CUDA 版本会标明它需要的 CUDA 版本。
  3. 在 WSL2 里,Linux 内只装 CUDA toolkit(cuda-toolkit-12-x),不要装 cuda 或 cuda-drivers 包。

相关指南

相关报错

核对来源

报错原文于 2026-10-26 从源码中读取核对。