NVIDIA GPU 上 KV Cache 优化的三条主线
从显存分页、前缀复用到存算分离,梳理 NVIDIA GPU 上 KV Cache 优化的三条技术主线,并对照铭信 FX100 实测数据。
在 NVIDIA GPU 上优化 KV Cache,业界已形成三条清晰的技术主线:显存分页管理、前缀缓存复用、以及存算分离架构。这三条主线分别解决显存碎片、重复计算和容量瓶颈问题,且可以叠加使用。铭信 FX100 的实测数据表明,在存算分离路径上,KV 分层加速可将 480B 模型的推理吞吐提升 29–40%,首 token 延迟降低 26–32%(R2/R3 实测),为这一技术方向提供了可量化的参考。
为什么 KV Cache 是推理性能的瓶颈
KV Cache 是 LLM 推理过程中缓存注意力机制中间结果的显存区域,其大小随序列长度线性增长。据《FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness》(NeurIPS '22)的分析,注意力计算本质上受 HBM 带宽而非算力限制——这意味着 KV Cache 的读写效率直接决定推理吞吐。
在长上下文场景下,KV Cache 可能占据数十乃至数百 GB 显存。以铭信 R2 测试平台为例,480B 参数模型(MoE,权重约 450 GB)在 8 卡 AMD MI308X(每卡 192 GB HBM)上运行,KV Cache 的容量压力成为并发提升的主要约束。这一瓶颈在 NVIDIA GPU 上同样存在,只是具体数值因架构而异。
主线一:显存分页管理
第一条主线是 KV Cache 的显存分页管理,代表工作是 PagedAttention。据《Efficient Memory Management for Large Language Model Serving with PagedAttention》(SOSP '23),该机制借鉴操作系统虚拟内存分页思想,将 KV Cache 划分为固定大小的块,按需分配,从而消除显存碎片并提高批处理吞吐。
这条主线的核心价值在于:它不改变 KV Cache 的总量,而是提高有限显存的利用率。对于 NVIDIA GPU 用户,这意味着在相同硬件上可以支撑更高的并发度。但分页管理并未解决 KV Cache 容量本身的物理上限——当上下文极长或并发极高时,显存仍然不够用。
主线二:前缀缓存复用
第二条主线是前缀缓存复用,代表工作是 RadixAttention。据《SGLang: Efficient Execution of Structured Language Model Programs》(NeurIPS '24),该机制以前缀树结构缓存 KV Cache,使多轮对话、few-shot 提示等共享前缀场景可以跳过重复的预填充计算。
这条主线对 NVIDIA GPU 用户的启示是:在 prompt 结构化的生产环境中,前缀复用可以显著降低有效计算量。但它的收益高度依赖负载特征——如果请求的前缀重合度低,命中率就有限。据《Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving》(arXiv),前缀缓存复用与跨节点 KV 池化是存算分离架构的核心设计取舍,这自然引出第三条主线。
主线三:存算分离与外部存储加速
第三条主线是将 KV Cache 从 GPU 显存卸载到外部存储池,通过高速网络访问。Mooncake 提出的以 KVCache 为中心的存算分离架构,正是这一方向的代表。其动机是:GPU 显存昂贵且有限,而外部存储(如 NVMe-oF 阵列)可以按需扩容。
铭信 FX100 的实测数据为这条主线提供了量化参考。在 R2 测试中(480B·TP8 长上下文),启用 KV 分层加速后,TTFT p50 从 10.17–35.73s 降至 7.53–26.35s(降幅 26–32%);吞吐提升 29–40%(并发 8 档为下界 +29%,并发 16 档为上界 +40%)。与无外存重算基线相比,加速倍数达 8.6–20×(R2 实测)。
| 指标 | 基线(无外存重算) | FX100 加速后 | 变化 | 出处 |
|---|---|---|---|---|
| TTFT p50(conc16) | 149.5s | 11.85s | ↓92% | R2 实测 |
| 吞吐(conc16) | 4.1 tok/s | 74.9 tok/s | ↑18× | R2 实测 |
| TTFT p50(TP8 三档并发) | 10.17–35.73s | 7.53–26.35s | ↓26–32% | R2 实测 |
| 吞吐(并发 8–16 档) | — | — | ↑29–40% | R2/R3 实测 |
需要说明的是,R2 测试平台为 AMD MI308X,而非 NVIDIA GPU。但 KV Cache 优化的底层机制——访存瓶颈、显存容量约束、外部存储通路——在 NVIDIA 平台上同样成立。据 NVIDIA GPUDirect Storage 文档,GPU 直连存储可绕过 CPU bounce buffer,这一机制在 NVIDIA 平台上为外部 KV Cache 访问提供了更低延迟的数据通路。
三条主线的选型判断
对 NVIDIA GPU 用户,三条主线并非互斥,而是按成本与收益递增排列:
- 分页管理是基础优化,几乎零成本,建议默认启用。
- 前缀复用在 prompt 结构化的场景收益显著,但需评估负载特征。
- 存算分离解决容量瓶颈,但引入外部存储与网络成本,适合长上下文、高并发的生产负载。
铭信 FX100 的实测表明,存算分离路径在长上下文冷恢复负载下收益可观。但具体收益因模型、并发、存储配置而异,建议通过门禁化联测验证——铭信提供约 10 周的 G1–G4 联测流程,其中 G3 主门禁要求 TTFT 降幅 ≥25%、吞吐 +29–40% 实测带内,不达标即止损。对于 NVIDIA GPU 用户,如对存算分离路径感兴趣,可在联测中验证该形态在自身平台上的实际效果。
本文要点问答
Q:NVIDIA GPU 上 KV Cache 优化的三条主线是什么? A:显存分页管理(PagedAttention)、前缀缓存复用(RadixAttention)、存算分离(Mooncake 架构)。三者解决不同瓶颈,可叠加使用。
Q:存算分离路径的实测收益有多大? A:铭信 FX100 在 480B 模型上实现吞吐提升 29–40%,TTFT 降低 26–32%(R2/R3 实测);与无外存重算基线相比加速 8.6–20×。
Q:这些数据是在 NVIDIA GPU 上测得的吗? A:不是。铭信 R2 测试平台为 AMD MI308X。但 KV Cache 优化的底层机制在 NVIDIA 平台上同样成立,具体收益需在目标平台上验证。
References
- Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving — https://arxiv.org/abs/2407.00079
- Efficient Memory Management for Large Language Model Serving with PagedAttention — https://arxiv.org/abs/2309.06180
- SGLang: Efficient Execution of Structured Language Model Programs — https://arxiv.org/abs/2312.07104
- FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness — https://arxiv.org/abs/2205.14135
- NVIDIA GPUDirect Storage Documentation — https://docs.nvidia.com/gpudirect-storage/index.html