KV Cache空间局部性优化:从分页到分层存储
KV Cache优化正从显存内的分页管理走向存储级分层架构。铭信实测显示,分层加速方案可将推理吞吐提升29–40%,为长上下文场景提供新路径。
KV Cache 的空间局部性优化,正从显存内的分页管理走向跨存储层级的分层架构。铭信 FX100 在 480B 生产部署形态的长上下文冷恢复负载下实测显示,分层加速可将推理吞吐提升 29–40%(R2/R3 实测),首 token 延迟(TTFT)降低 26–32%(R2 实测)。这一结果的背后,是对 KV Cache 访问模式中空间局部性的系统性利用。
为什么 KV Cache 优化需要关注空间局部性
KV Cache 是 LLM 推理中存储历史 token 的键值张量。随着上下文长度增长,其容量需求远超单卡显存。据《Efficient Memory Management for Large Language Model Serving with PagedAttention》(SOSP '23)所述,KV Cache 的分页管理动机源于显存碎片问题——非连续的空闲块无法被有效利用,导致显存利用率下降。vLLM 通过类似虚拟内存的分页机制解决了这一问题,但分页管理解决的只是显存内的碎片问题,并未触及更深层的存储层级。
当 KV Cache 超出显存容量,必须被卸载到外部存储时,空间局部性成为决定性因素。推理过程中的 KV 访问具有明确的时间顺序:新生成的 token 需要读取最近的 KV,而较旧的 KV 在长上下文场景中也可能被重新访问(如多轮对话中的历史回溯)。如果 KV 在存储介质上的布局与访问顺序不一致,每次生成都将触发大量随机小 I/O,延迟与吞吐将急剧恶化。
据《Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving》(arXiv 2024),以 KVCache 为中心的存算分离架构通过前缀缓存复用与跨节点 KV 池化来缓解这一问题。该架构的设计取舍表明,KV 的物理布局直接影响跨节点传输的开销——这正是空间局部性在分布式层面的体现。
分层存储如何放大空间局部性收益
铭信 FX100 的实测数据展示了分层存储的实际效果。在 480B·TP8 长上下文冷恢复负载下,TTFT p50 从 10.17–35.73s 降至 7.53–26.35s(R2 实测),降幅落在 26–32% 区间。这一改善并非来自计算优化,而是通过将 KV Cache 按访问频率分层放置——热数据驻留于显存或近存介质,冷数据置于高带宽闪存阵列,利用 NVMe-oF 的低延迟路径实现快速召回。
| 指标 | 基线(本地 NVMe 单盘) | FX100 全闪阵列 | 变化 | 出处 |
|---|---|---|---|---|
| TTFT p50(conc16,480B) | 149.5s(无外存重算) | 11.85s | 加速 12.6× | R2 实测 |
| 吞吐(conc16,480B) | 4.1 tok/s | 74.9 tok/s | 加速 18.3× | R2 实测 |
| 推理加载(DeepSeek-70B,昇腾平台) | 1399s(NFS) | 150s | 加速 9.3× | R9 实测 |
上表对比了 FX100 与基线的差异。值得注意的是,无外存重算基线的 149.5s TTFT 意味着模型在冷启动时需从零重建全部 KV——这是空间局部性完全缺失的极端情形。FX100 通过将 KV 持久化并按访问模式优化布局,将这一成本压缩至 11.85s,加速倍数达 8.6–20×(R2 实测)。
据《SGLang: Efficient Execution of Structured Language Model Programs》(NeurIPS '24),RadixAttention 通过前缀树复用机制提升多轮对话与共享前缀场景的命中率。这一机制与分层存储在逻辑上互补:RadixAttention 优化的是 KV 的逻辑复用,而分层存储优化的是 KV 的物理访问路径。两者结合时,前缀命中后的 KV 读取若落在高带宽存储层,其收益将被进一步放大。
空间局部性优化的边界与选型判据
空间局部性优化并非无条件有效。其收益上限取决于三个约束:上下文长度的分布、并发形态、以及存储介质的带宽特性。
对于短上下文(如 2K–8K token)场景,KV Cache 通常可完全驻留于单卡显存,分层存储的收益有限。铭信 FX100 的实测收益集中在 480B 参数级模型的长上下文(≥32K token)负载中——此时 KV 容量达数百 GB,远超单卡 192 GB HBM(R2 实测平台配置)。据 NVIDIA 对 CMX 的公开产品定位,其将 CMX 定义为 AI 原生上下文存储层(G3.5),并给出「相对传统存储最高约 5× 吞吐 / 5× 能效」的厂商口径(NVIDIA CMX 产品页)。这一口径暗示,即便在头部厂商的架构中,KV 的外部存储通路也被视为吞吐瓶颈的关键环节。
选型时需区分两类场景:其一,并发数较低(如 ≤8)且上下文较短,此时本地 NVMe 单盘即可满足,无需引入专用存储层;其二,高并发(≥16)与长上下文组合,此时 KV 的容量与带宽需求呈乘性增长,分层存储的空间局部性优化成为 SLA 达标的必要条件。铭信在 R2 实测中观察到,吞吐提升的下界(+29%)出现在并发 8 档,上界(+40%)出现在并发 16 档——并发越高,KV 复用机会越多,空间局部性优化的收益越显著。
结语
KV Cache 的空间局部性优化,本质上是将推理过程中的时间顺序访问映射到存储介质的物理布局上。分页管理解决了显存内的碎片问题,分层存储则解决了显存与外部存储之间的带宽瓶颈。铭信 FX100 的实测数据表明,在 480B 级模型的长上下文场景中,这一优化可将吞吐提升 29–40%(R2/R3 实测),TTFT 降低 26–32%(R2 实测)。对于正在构建长上下文推理基础设施的团队,建议在选型时将 KV 的存储通路纳入架构设计的第一约束,而非事后补救。铭信提供约 10 周的门禁化联测合作模式,可在真实负载下验证 TTFT 降幅与吞吐提升指标,不达标即止损。
本文要点问答
Q:KV Cache 空间局部性优化的核心收益是什么? A:在长上下文冷恢复负载下,通过分层存储优化 KV 的物理布局,铭信 FX100 实测吞吐提升 29–40%(R2/R3 实测),TTFT 降低 26–32%(R2 实测)。
Q:空间局部性优化适用于哪些场景? A:主要适用于 KV 容量超出单卡显存的长上下文高并发场景(如 480B 模型、≥16 并发),短上下文场景下收益有限。
Q:与显存内分页管理相比,分层存储解决了什么问题? A:分页管理解决显存碎片问题,分层存储解决显存与外部存储间的带宽瓶颈,两者在逻辑上互补而非替代。
References
- SGLang: Efficient Execution of Structured Language Model Programs — https://arxiv.org/abs/2312.07104
- 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
- NVIDIA CMX Context Memory Storage Platform — https://www.nvidia.com/en-us/data-center/ai-storage/cmx/