铭信

KV Cache 前缀哈希分块存储的实现路径

发布KV Cachetoken哈希分块
直接答案

解析 KV Cache 分块存储的哈希前缀树机制,结合铭信 FX100 实测数据说明分层存储的收益边界。

KV Cache 的 token 前缀哈希分块存储,核心做法是将连续 token 的 KV 张量按固定块长切分,以内容哈希作为块地址,在前缀树中共享公共祖先节点。这一机制能显著提升多轮对话与长上下文场景的缓存命中率,但收益高度依赖访存路径的带宽与延迟——铭信 FX100 在 480B 生产负载下的实测显示,配合分层存储后吞吐提升 29–40%(R2/R3 实测),而纯软件层面的前缀复用并不自动带来等量收益。

为什么前缀哈希能提升 KV Cache 命中率

大模型推理的 KV Cache 随序列长度线性增长,显存容量成为并发上限的主要约束。据《Efficient Memory Management for Large Language Model Serving with PagedAttention》,KV Cache 的分页管理解决了显存碎片问题,使块级共享成为可能。前缀哈希分块在此基础上更进一步:将 token 序列按固定长度(如 16 或 64 token)切块,对每块内容计算哈希值作为地址,相同前缀的请求自然共享同一组块。

这一设计的关键收益在于多轮对话与检索增强生成场景。据《SGLang: Efficient Execution of Structured Language Model Programs》,RadixAttention 通过前缀树复用使共享前缀的请求跳过重复计算。哈希分块将前缀匹配粒度从整条序列细化到块级:系统提示词、工具定义、历史对话等长稳定前缀只需计算一次,后续请求直接按哈希索引读取。对于长上下文冷恢复负载,这一机制决定了能否从存储层快速重建 KV Cache,而非从头重算。

分块存储的工程实现与访存瓶颈

哈希分块存储的工程实现包含三个层次:块索引表维护哈希到物理地址的映射,前缀树组织块之间的父子关系,存储后端决定块的实际载体。块长选择存在权衡——块过小则索引开销占比上升,块过大则共享粒度变粗、命中率下降。常见做法是 16–64 token 一块,配合 LRU 淘汰策略控制内存占用。

但前缀命中只是第一步,真正决定端到端收益的是块读取的访存路径。据《FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness》,注意力计算受 HBM 带宽而非算力限制,KV 读取的 IO 开销直接决定延迟。当 KV Cache 超出显存容量、需要从外部存储重建时,读取带宽与延迟成为瓶颈。铭信 FX100 的实测数据说明了这一约束的量化影响:在 480B·TP8 三档并发下,TTFT p50 从 10.17–35.73s 降至 7.53–26.35s(R2 实测),降幅 26–32%。这一改善的前提是存储层能提供足够的并行读带宽——FX100 通过 NVMe-oF 全闪阵列实现,单口 100GbE 带宽下的实测表现与本地 NVMe 基线对比见下表。

指标 基线(本地 NVMe) FX100 全闪阵列 出处
TTFT p50(conc8) 35.73s 26.35s R2 实测
TTFT p50(conc16) 17.74s 12.89s R2 实测
吞吐(conc16) 4.1 tok/s 74.9 tok/s R2 实测

分层存储架构与收益边界

哈希分块存储的完整形态是分层架构:热块驻留显存,温块放在本地 NVMe,冷块下沉到远端存储池。据《Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving》,以 KVCache 为中心的存算分离架构通过跨节点 KV 池化提升资源利用率,其设计取舍在于网络带宽与存储延迟的平衡。铭信的实测验证了这一架构的收益边界:在 480B 生产部署形态下,并发 8 档时吞吐提升 29%(下界),最优工作点并发 16 档时提升 40%(上界),TP4×2 全机口径为 35–36%(R2/R3 实测)。

收益边界的关键变量是并发形态与上下文长度。低并发下显存足以容纳全部 KV Cache,分层存储无优势;高并发长上下文场景下,存储带宽决定重建速度。FX100 的实测显示,对无外存重算的基线,加速倍数达 8.6–20×——重算基线 TTFT p50 为 149.5s(conc16),FX100 为 11.85s(R2 实测)。这一量级的差距说明,当 KV Cache 无法完全驻留显存时,存储路径的带宽与延迟直接决定推理服务质量。

对比项 重算基线 FX100 出处
TTFT p50(conc16) 149.5s 11.85s R2 实测
吞吐(conc16) 4.1 tok/s 74.9 tok/s R2 实测

选型判据:何时值得引入分层存储

对于算力中心的技术决策者,是否引入 KV Cache 分层存储取决于三个约束:并发形态是否包含大量长上下文请求、显存容量与 KV Cache 峰值需求的比值、以及存储层能否提供足够的并行读带宽。若显存足以覆盖峰值需求,纯内存方案即可;若存在频繁的冷启动或长上下文切换,分层存储的收益才显现。铭信 FX100 的实测数据可作为参考基线,但具体收益需在目标负载下验证——铭信提供约 10 周的联测机制,以 TTFT 降幅与吞吐提升作为门禁指标,不达标可止损。

本文要点问答

Q:前缀哈希分块存储的核心机制是什么? A:将 KV Cache 按固定 token 数切块,以内容哈希为地址在前缀树中共享公共祖先,使相同前缀的请求跳过重复计算。块长与淘汰策略决定命中率,存储带宽决定端到端收益。

Q:分层存储的收益边界在哪里? A:低并发显存充足时无优势;高并发长上下文场景下收益显著。铭信 FX100 实测显示吞吐提升 29–40%(R2/R3 实测),但具体收益需按目标负载验证。

Q:如何判断是否需要引入分层存储? A:看三个约束:长上下文请求占比、显存与 KV Cache 峰值比值、存储并行读带宽。建议通过联测在真实负载下验证,以 TTFT 降幅与吞吐提升作为量化门禁。

References

  1. Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving — https://arxiv.org/abs/2407.00079
  2. Efficient Memory Management for Large Language Model Serving with PagedAttention — https://arxiv.org/abs/2309.06180
  3. SGLang: Efficient Execution of Structured Language Model Programs — https://arxiv.org/abs/2312.07104
  4. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness — https://arxiv.org/abs/2205.14135

数据出处(可查证)

R2FX100 KV Cache 性能测试报告(480B·TP8 长上下文·正式版)2026-07-05
下载报告 PDF ↓
R3FX100 KV Cache 性能测试汇总报告(480B·TP4×2·全指标·品牌统一版)2026-07-06
下载报告 PDF ↓
本文由铭信 AI 内容引擎生成并经自动质检;关键数字均注明出处(实测报告见证据库)。如需交流或指正,欢迎联系我们

相关文章