故障排查 / 起不来
no CUDA devices / unrecognized error code / hipErrorNotFound
本站未复现 改写 影响:llama.cpp / Ollama / LM Studio 取决于构建 · Windows / Linux
报错原文
unrecognized error code | ggml_backend_cuda_registrar: no devices found | hipErrorNotFound | HSA runtime error
这段字符串可以直接粘到 站内搜索 或外部搜索引擎里找。
现象
二进制直接不认显卡,日志里一句 no devices 或者满屏 unrecognized error code;CPU 后端能跑但速度是个位数。
原因
驱动与预编译包的 GPU 后端版本对不上。llama.cpp 的 CUDA 构建会绑定某个 CUDA 主版本;NVIDIA 驱动低于该版本所需最低驱动时,GPU 枚举直接失败。AMD 侧 ROCm 版本与显卡支持列表的匹配更严格。
按这个顺序处理
- 先确认驱动本身没问题:命令行执行 nvidia-smi,能列出卡和显存才算装了驱动。
- 把驱动升到当前分支的最新版(不要只信 Windows 自动推送的那一版)。
- 重下与你驱动匹配的后端构建;拿不准就先用 Vulkan 版(跨厂商、对驱动要求宽松,但速度通常低于 CUDA 版)。
- AMD 用户先核对你的卡是否在 ROCm 官方支持列表里,不在的话用 Vulkan 版而不是硬凑。
- 以上都对还失败,检查是否插了多张卡或有核显输出:某些机器上需要显式指定设备序号。
怎么确认解决了
重新起服务,日志开头应出现设备名与显存总量,并且能看到层被分配到 CUDA(不是全 CPU)。
来源与可信度
条目性质依据公开事实与社区普遍报告,用本站自己的话重写(未搬运任何他人文章段落)
是否已在本站机器复现否——请把这条当线索而不是结论
- https://github.com/ggml-org/llama.cpp/issues/25145 — issue:启用 CUDA 后设备显存满时崩溃,对应驱动/版本匹配处置
- https://github.com/ggml-org/llama.cpp/discussions/11640 — 讨论:重编后只识别一张卡,对应'检查多卡/设备选择'处置
- https://docs.ollama.com/troubleshooting — Ollama 官方排查:驱动过旧导致 discovery 找不到 GPU,建议更新驱动