llama.cpp 的预填充阶段竟然没吃满 CPU 和带宽
Dependent_Ad948 · reddit · 2026-07-30
llama.cpp 的 prompt processing 看起来没吃满 CPU 和内存带宽
作者在主线 llama.cpp 上做 CPU-only 实验时发现,prompt processing(prefill)和 token 生成的表现差异很大。
观察到的现象
在一台 Xeon Ice Lake 机器上,配有 24 个物理核心和 8 通道内存:
- 推理 / token generation 会把分配的 CPU 核心基本打满,也会明显吃满内存带宽。
- prompt processing / prefill 却几乎只压到一个核心,整体 CPU 和 DRAM 带宽利用率都低很多。
作者给出的数据大致是:
- 推理阶段:2302% CPU,31.1% MEM,DRAM 读带宽约 81,723 MB/s
- Prompt processing:625.2% CPU,31.1% MEM,DRAM 读带宽约 15,917 MB/s
想弄明白什么
作者并不是在抱怨速度慢,而是想理解为什么 prefill 会明显没有吃满可用的 CPU 与内存带宽,尤其是在部分层从 GPU offload 到 CPU 的情况下。他希望知道自己忽略了哪些关键机制,或者还可以从哪些参数和架构理解这种差异。
「Infra」频道最新
- 26B 参数 Gemma 4 模型在 2GB RAM Mac 上运行:SSD 流式传输 — petrusenko_max · 2026-07-30
- Cloudflare Containers 推出 .exec():流式传输请求体到容器进程 — craigsdennis · 2026-07-30
- 台积电披露先进制程路线图:N3 量产定于 2027 年 — Beth_Kindig · 2026-07-30
- 纽约时报:海量 AI 算力即将上线,势将引发技术能力大跃迁 — coolbern · 2026-07-30
- 美光前瞻市盈率仅约5倍,分析师押注AI算力需求 — JOBhakdi · 2026-07-30
- Gavin Baker:AI 需求火热,算力租金可能继续上涨 — GavinSBaker · 2026-07-30