build server success but execute `ggml_cuda_init: failed to initialize CUDA: unknown error`

用户在一台搭载 NVIDIA GeForce RTX 3090 的机器上使用 make server LLAMA_CUDA=1 CUDA_DOCKER_ARCH=all 成功编译了 llama.cpp server,但执行时出现该报错且模型未加载到 GPU。在另一台 1080 Ti 机器上用相同编译

build server success but execute `ggml_cuda_init: failed to initialize CUDA: unknown error`

build server success but execute `ggml_cuda_init: failed to initialize CUDA: unknown error`

快速结论:此报错通常发生在编译 llama.cpp server 时启用了 CUDA(LLAMA_CUDA=1),但在执行时 CUDA 驱动或运行时环境未正确初始化。优先排查 nvidia_uvm 内核模块是否加载。

问题场景

用户在一台搭载 NVIDIA GeForce RTX 3090 的机器上使用 make server LLAMA_CUDA=1 CUDA_DOCKER_ARCH=all 成功编译了 llama.cpp server,但执行时出现该报错且模型未加载到 GPU。在另一台 1080 Ti 机器上用相同编译参数可正常运行。

报错原文

ggml_cuda_init: failed to initialize CUDA: unknown error

原因分析

可能原因:

  • nvidia_uvm 内核模块未加载,导致 CUDA 无法与 GPU 通信。
  • CUDA 驱动版本(545.29.02)与编译时的 CUDA Toolkit 版本(CUDA 12.3)不匹配,或运行环境缺少必要的 CUDA 运行时库。
  • GPU 被其他进程占用(如已运行的模型、训练任务),导致 CUDA 初始化失败。
  • 权限不足,导致用户进程无法访问 GPU 设备文件。

环境排查

  • 确认 NVIDIA 驱动版本:nvidia-smi 输出中的 Driver Version 和 CUDA Version。
  • 检查 nvidia_uvm 模块是否加载:lsmod | grep nvidia_uvm
  • 确认编译时使用的 CUDA Toolkit 路径是否正确:make LLAMA_CUDA=1 CUDA_PATH=/path/to/cuda-12.3
  • 查看运行时 CUDA 可用设备:python -c "import torch; print(torch.cuda.is_available())"nvidia-smi topo -m
  • 检查是否有其他进程占用 GPU:nvidia-smi 查看 GPU 使用情况。

解决步骤

  1. 加载 nvidia_uvm 模块:在终端执行 sudo modprobe nvidia_uvm,然后再次运行 llama.cpp server。这是 Issue 评论中提到的可优先尝试的解决方案。
  2. 如果步骤 1 无效,重新编译并指定 CUDA 路径:确保编译时使用的 CUDA Toolkit 版本与运行时驱动兼容。例如,如果驱动支持 CUDA 12.3,则编译时使用 make LLAMA_CUDA=1 CUDA_PATH=/usr/local/cuda-12.3
  3. 检查 CUDA 库权限:运行 ls -l /dev/nvidia* 检查设备文件权限,确保用户有读写权限。必要时添加 udev 规则或使用 sudo 执行。
  4. 关闭其他 GPU 进程:使用 kill -9 [PID] 终止占用 GPU 的进程,或重启系统后立即测试。
  5. 更新 NVIDIA 驱动:如果上述步骤均无效,考虑更新驱动到最新稳定版(如 550 系列),并重启系统。

验证方法

重新执行 llama.cpp server,观察启动日志中是否包含 ggml_cuda_init: calling cuInit 且无错误输出,同时 nvidia-smi 显示 GPU 内存被模型占用。

参考来源

ggml-org/llama.cpp #7218

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 11188

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注