快速结论:报错“llama.cpp is slow on GPU”通常发生在用户误将 -t 参数设置为 GPU 核心数而非 CPU 线程数,或未通过 --n-gpu-layers 将模型层正确卸载到 GPU。优先排查 -t 和 --n-gpu-layers 参数是否合理。
适用环境:操作系统 Linux;GPU NVIDIA A100 80GB;llama.cpp build 3902(c81f3bbb);编译器 GCC 11.4.1 (Red Hat 11.4.1-3);架构 aarch64-redhat-linux。另一测试环境:NVIDIA GeForce RTX 4070,x86_64-linux-gnu。
最快修复方案:暂无确认的一步修复方案。可优先尝试:
① 将 -t(线程数)设置为 CPU 物理核心数(例如 -t 4),而不是 GPU 核心数;
② 添加 --n-gpu-layers(简写 -ngl)参数,对于 8B 模型建议 -ngl 33 卸载全部层。
注意事项:上述方案基于社区经验,未在用户环境(A100)中验证。用户尝试 --n-gpu-layers 40000 后 eval time 仅 0.69 tok/s,仍明显偏慢,说明可能存在其他瓶颈(如 CUDA 驱动版本、模型量化类型、PCIe 带宽等)。
问题场景
用户在一台搭载 NVIDIA A100 80GB GPU 的 Linux 服务器上使用 llama.cpp(版本 3902)运行 Meta-Llama-3-8B 的 GGUF 模型。编译时开启了 GGML_CUDA=ON。运行命令将 -t 设置为 6912(对应 A100 的 CUDA 核心数),并尝试使用 --n-gpu-layers 参数,但 GPU 推理速度仅 0.07~0.69 token/s,远低于 CPU 推理速度。
报错原文
llama.cpp is running slow on NVIDIA A100 80GB GPU
...
On gpu eval time is around 0.07 tokens per second.
... (with --n-gpu-layers) eval time ~ 0.69 tokens per second
原因分析
可能原因:
① -t 参数指定的是 CPU 线程数,而非 GPU 核心数。设置为 6912 会导致 CPU 线程过度竞争或系统调度混乱,反而降低整体效率。
② 尽管用户尝试了 --n-gpu-layers 40000,但可能由于模型量化类型(如 Q4_0)或 CUDA 驱动版本不兼容,导致卸载后 GPU 仍未能充分利用。
③ 对于 A100 80GB,模型及上下文较小(ctx-size 50),GPU 可能未充分启动并行计算,核函数启动开销占主导。
环境排查
- 确认 llama.cpp 构建选项是否包含 CUDA:检查编译日志中是否有
GGML_CUDA=ON且无错误。 - 确认 CUDA 驱动版本及 CUDA 工具包版本:建议 CUDA >= 12.0,驱动 >= 525。
- 确认 GPU 是否被 llama.cpp 识别:运行命令时观察 <code
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug]: LM Studio not working with LiteLLM Proxy](https://www.chat-gpts.plus/wp-content/uploads/2026/07/11733-211b5be4-768x403.jpg)
