快速结论:在 WSL2(Ubuntu)中编译并运行启用了 CUDA 后端的 llama.cpp 时,即使只是执行 llama-cli --version 或 llama-server --version,也会触发 Eval bug: Segmentation fault (core dumped)。该问题发生在模型加载之前,所以优先排查的方向是 WSL2 下的 CUDA 运行时与驱动之间的动态库链接是否匹配,而不是模型或推理逻辑本身。
适用环境:Issue 中已确认的环境包括:Linux,具体为 WSL2 内的 Ubuntu 24.04.3 LTS(noble);GGML 后端为 CUDA;GPU 为 RTX 5090;CUDA Toolkit 为 13.2(nvcc release 13.2, V13.2.51);NVIDIA 驱动版本为 595.45.03 / 595.71,nvidia-smi 显示 CUDA Version 13.2;llama.cpp 为从 GitHub 最新源码自行编译。
最快修复方案:暂无确认的一步修复方案。Issue 讨论里给出的排查方向是先用 ldd 检查 llama-cli 的动态库依赖、并核对 /usr/lib/wsl/lib/ 下的 WSL CUDA 库,但用户反馈这些输出中看不出明显缺库,因此该问题最终没有被定位到具体根因。
注意事项:用户已确认:不开启 -DGGML_CUDA=ON、改用 CPU 编译时程序可以运行,这说明问题集中在 CUDA 相关路径。RTX 5090 搭配 CUDA 13.2 属于很新的组合,WSL2 的 CUDA 互操作库可能尚未完全适配,这是讨论中的推测,未经证实。Issue 标签为 bug-unconfirmed,关闭时没有给出经过验证的修复版本或降级建议,因此不要把任何具体版本号或降级步骤当作已验证结论。
问题场景
用户从 GitHub 克隆最新 llama.cpp 源码,在 WSL2 的 Ubuntu 24.04 中编译,并按 CUDA 后端方式运行。只要执行带 CUDA 支持的 llama-cli --version 或 llama-server --version,也就是还未加载任何模型的版本查询命令,就会立即崩溃,既没有输出帮助信息,也没有输出版本号。
报错原文
Eval bug: Segmentation fault (core dumped)
实际命令输出示例:
$ ./llama.cpp/llama-cli --version
Segmentation fault (core dumped)
$ ./llama.cpp/llama-server --version
Segmentation fault (core dumped)
原因分析
由于崩溃发生在 --version 阶段、模型加载之前,讨论中判断它更可能是运行时库问题,而不是 llama.cpp 的推理或计算逻辑 bug。可能原因包括:
- WSL2 下的 CUDA 运行时(
libcudart、libcublas等,指向/usr/local/cuda-13.2/lib64)与 WSL 提供的/usr/lib/wsl/lib/libcuda.so.1之间版本或互操作层不匹配; - RTX 5090 与 CUDA 13.2 组合较新,WSL2 CUDA 互操作库可能尚未跟上,导致动态链接阶段出现异常;
- 用户
ldd输出中没有出现not found,说明缺少库并不是直接原因,问题更可能出在库版本兼容性或加载顺序上。
以上均为 Issue 中的推断;Issue 关闭时未确认根因。
环境排查
- 确认 llama.cpp 的构建参数是否启用了
-DGGML_CUDA=ON;用户已验证关闭 CUDA 后会走 CPU,可以正常运行。 - 用
ldd检查编译产物依赖,确认是否存在not found:ldd /home/user/repos/llama.cpp/build/bin/llama-cli。 - 核对 WSL CUDA 库目录
/usr/lib/wsl/lib/中libcuda.so.1等文件的版本与驱动是否一致。 - 对照 CUDA Toolkit(13.2)、
nvcc、nvidia-smi中显示的驱动与 CUDA Version 是否匹配。 - 确认运行环境是 WSL2 而非原生 Linux,因为驱动由 Windows 侧提供。
解决步骤
- 先复现并记录崩溃命令:
./llama.cpp/llama-cli --version,确认是 CUDA 构建才触发。 - 执行
ldd检查编译出的llama-cli,重点看是否有not found的条目;Issue 中用户的输出没有缺库。 - 查看
ls -lh /usr/lib/wsl/lib/,确认 WSL 注入的libcuda.so.1等库存在且版本与驱动相符。 - 作为对照:用不启用
-DGGML_CUDA=ON的方式重新编译,确认 CPU 路径可以运行(用户已确认可行)。 - 如果确实需要 GPU 且上述检查无法定位,可优先尝试(尚未在 Issue 中验证):更换 CUDA Toolkit 版本后重新编译,或等待 WSL2 CUDA 互操作库与驱动更新后再试。Issue 关闭时未给出经过验证的降级版本。
验证方法
重新构建后执行 ./llama.cpp/llama-cli --version 与 ./llama.cpp/llama-server --version,若能正常打印版本信息、不再出现 Segmentation fault (core dumped),即说明问题已解决。进一步可加载模型做一次简单推理确认 CUDA 后端实际可用。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[Refactor/Chore] Reuse Node runtime downloads in web CI with least-privilege cache access](https://www.chat-gpts.plus/wp-content/uploads/2026/10/44954-5cc7e449-768x403.jpg)