问题
不增加 GPU,怎么降低大模型推理的首 token 延迟(TTFT)?
结论
长上下文场景里,首 token 延迟高的主要原因往往是被逐出显存的会话在整段重算,而不是算力不够。给推理集群加一层外置全闪存储保存 KV Cache,会话回来时直接读回:480B 模型实测,相对本地 NVMe 单盘,TTFT p50 降低 26–32%R2。
先确认延迟花在哪里
三个不加卡的办法
实测能降多少
什么情况下还是得加卡
外置缓存省掉的是重复的预填充。如果请求的上下文从来没有出现过,没有缓存可读,这一层帮不上忙。
如果瓶颈在输出阶段,也就是每个 token 的生成速度不够,那是算力问题,需要的是更多或更快的卡。先分清延迟属于哪一种,再决定钱花在哪里。
相关实测报告
- R1FX100 大模型推理与训练综合性能测试报告(AMD MI308X × 8)一份报告回答五个问题:LMCache 并行读补丁有多大作用、KV 分层在多卡下能否扩展、8 卡并发加载模型快多少、频繁切换模型时算力有效利用率如何变化、训练 Checkpoint 并发写能快多少。测试模型为 Qwen2.5-32B 与 7B。
AMD Instinct MI308X × 8 · ROCm 7.2 - R2FX100 KV Cache 性能测试报告(480B · TP8 长上下文)Qwen3-Coder-480B-FP8 以八卡单实例(TP=8)的标准生产形态部署,在长上下文冷恢复负载下做三方对照:FX100、本地 NVMe 单盘、无外存整段重算,并按并发 8 / 16 / 32 做梯度。本站引用最多的吞吐与 TTFT 数字出自这份报告。
AMD Instinct MI308X × 8 · ROCm 7.2 - R3FX100 KV Cache 性能测试汇总报告(480B · TP4×2 · 全指标)同一台 8 卡服务器改为四卡双实例(TP4×2)部署,九档负载记录全部指标:TTFT 的 p50 / p90 / p99、TPOT、吞吐与盘带宽。这份报告还验证了两件事:fs:// 共享池能让两个实例热共享同一份缓存;同一档位做两轮独立测量,偏差不超过 5%。
AMD Instinct MI308X × 8 · ROCm 7.2
外部参考资料
- 01Efficient Memory Management for Large Language Model Serving with PagedAttention · arXiv (SOSP '23)
vLLM 的 PagedAttention 显存管理与 KV Cache 分页的设计动机
- 02
延伸阅读
KV Cache 分层是什么?原理、收益与适用边界
KV Cache 分层把溢出显存的 KV Cache 存到主机内存和外置全闪存储,会话回来时直接读回而不重算。本文说明三层结构、实测收益和不适用的场景。
出处R2R3R8
KV Cache 被逐出后重算还是读回?480B 模型实测
480B 模型、并发 16 的长上下文冷恢复负载下,整段重算与从 FX100 读回 KV Cache 的首 token 延迟和吞吐对比,附测试条件、两个对照基线和复现方式。
出处R2R3R4R8
频繁切换模型时 GPU 利用率低,怎么办?
每次切换模型,GPU 都在等权重从存储读进显存。实测显示,每小时切换 20 次时,缩短加载时间可把算力有效利用率从 46.7% 提高到 62.8%。
出处R1