# kvcache-sim：面向大模型推理的多层级KV缓存仿真系统

> 一个支持HBM/DRAM/SSD三层存储架构的KV缓存仿真器，提供单节点、万卡集群和PD分离三种模拟模式，内置LRU、ARC、Learned等六种驱逐策略，可用于评估LLM推理系统的缓存效率和扩展性。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-29T04:45:10.000Z
- 最近活动: 2026-04-29T04:49:25.680Z
- 热度: 150.9
- 关键词: KV缓存, LLM推理, 缓存仿真, Prefill-Decode分离, 多级存储, 驱逐策略, GPU集群, CXL内存
- 页面链接: https://www.zingnex.cn/forum/thread/kvcache-sim-kv
- Canonical: https://www.zingnex.cn/forum/thread/kvcache-sim-kv
- Markdown 来源: ingested_event

---

# kvcache-sim：面向大模型推理的多层级KV缓存仿真系统

## 项目背景与核心挑战

在大语言模型(LLM)推理服务中，KV缓存(Key-Value Cache)是提升生成效率的关键技术。随着模型规模扩大和上下文长度增长，KV缓存的存储需求急剧膨胀——一个70B参数的模型处理8K上下文时，单个请求的KV缓存可能占用数GB甚至数十GB显存。如何在有限的硬件资源下高效管理这些缓存，成为推理系统设计的核心难题。

kvcache-sim项目应运而生，它是一个专门面向LLM推理场景的多层级KV缓存仿真系统。该项目不仅支持单机多层级存储仿真，还能模拟万卡级集群架构，以及最新的Prefill-Decode分离部署模式，为研究者和工程师提供了全面的缓存策略评估工具。

## 系统架构与三种仿真模式

kvcache-sim提供了三种互补的仿真模式，覆盖从边缘设备到超大规模数据中心的完整部署场景。

### 单节点模式：四层存储层级仿真

单节点模式模拟典型的GPU服务器架构，支持4个worker并行处理请求。存储层级采用HBM(高带宽显存)→DRAM(系统内存)→SSD(本地存储)的三级架构，这种设计与现代GPU服务器的实际硬件布局高度吻合。

系统内置六种可插拔的缓存策略组合：

- **Baseline LRU**：经典的最久未使用淘汰策略，作为基准对照
- **+ARC**：自适应替换缓存，同时维护最近使用和频繁使用两个列表，通过幽灵列表动态调整权重
- **+SessionPrefetch**：基于会话感知的预取策略，利用多轮对话中系统提示词重复出现的特点提前加载缓存
- **+SelectiveWrite**：选择性写入策略，仅缓存浅层前缀块(深度≤3)，避免深层个性化内容浪费缓存空间
- **+Learned**：基于LightGBM的机器学习预测策略，通过8维特征工程预测块的重用距离
- **Belady Oracle**：理论最优策略(需离线计算)，作为性能上界参考

### 万卡集群模式：超大规模部署仿真

集群模式模拟10,240张GPU的大规模部署，按160个机架组织，每机架64张GPU。该模式引入了EIC(External Intelligent Cache)共享内存池的概念，通过CXL或RDMA技术实现机架内GPU间的缓存共享。

网络延迟模型细致区分了三种通信场景：机架内RDMA通信约3微秒、跨机架通信约15微秒、SSD访问约200微秒。这种精细的延迟建模使得仿真结果能够反映真实集群中的数据局部性影响。

路由层采用前缀感知路由策略，通过前缀树(trie)结构识别请求的共享前缀，将具有相同前缀的请求路由到同一机架，最大化缓存命中率。

### PD分离模式：Prefill-Decode解耦架构

PD分离是LLM推理领域的前沿架构，将计算密集型的Prefill阶段(处理输入提示词)与内存带宽密集型的Decode阶段(生成输出token)分配到不同的GPU池执行。

kvcache-sim的PD模式实现了完整的PD分离仿真：

- **PrefillNode**：配备RadixTree前缀缓存，支持引用计数的块共享机制，采用连续批处理提升吞吐量
- **DecodeNode**：接收通过RDMA传输的KV缓存，对活跃序列进行连续批处理，受内存带宽约束
- **KVTransferModel**：支持push/pull/pull_on_demand三种传输策略，可配置流水线传输以隐藏延迟
- **双路由层**：PrefillRouter基于前缀命中评分和队列长度进行负载均衡，DecodeRouter优先选择同机架节点以减少传输延迟

该模式的核心洞察在于：统一服务模式下GPU需要顺序执行Prefill和所有Decode步骤，而PD分离使Prefill GPU在计算完成后立即释放，通过RDMA将KV缓存推送到Decode节点继续生成。

## 关键性能指标与计算模型

项目建立了精细的性能计算模型，基于实际硬件参数推导关键指标：

### 计算性能参数(以H100运行70B模型为例)

| 阶段 | 计算公式 | 典型值 |
|------|---------|--------|
| Prefill | 2×参数量/TFLOPS | ~0.35 ms/token |
| Decode | 2×参数量/HBM带宽 | ~83.6 ms/token |
| Decode(64序列批处理) | 基础+边际KV开销 | ~93.6 ms/step |

### KV传输延迟

| 传输场景 | 计算 | 延迟 |
|---------|------|------|
| 首块传输 | 16块×5MiB/12.5GB/s | ~6.7 ms |
| 完整8K提示词 | 512块×5MiB/12.5GB/s | ~215 ms |

首块延迟(TTFT)的计算包含：队列等待 + Prefill计算 + KV传输 + 首次Decode，项目支持流水线传输模式以重叠计算和传输延迟。

## 真实工作负载支持

kvcache-sim支持加载多种公开的生产级LLM推理轨迹数据集，使仿真结果更具参考价值：

- **BurstGPT**：来自Azure ChatGPT/GPT-4的真实工作负载，包含会话ID以保留对话前缀复用关系
- **Azure LLM Inference Trace**：Splitwise和DynamoLLM使用的生产轨迹，包含token计数但无提示词文本
- **Mooncake Traces**：包含hash_ids以保留前缀共享关系，最适合KV缓存实验
- **SplitwiseSim**：与Splitwise论文兼容的生成轨迹

轨迹加载器会自动处理不同格式，将时间戳归一化为毫秒，输入token转换为提示词KV块，输出token驱动PD模式的Decode长度。

## 校准与外部仿真器集成

项目采用系统级抽象设计，避免在主循环中嵌入耗时的周期级GPU、DRAM或SSD仿真器。取而代之的是，用户可以离线运行微基准测试或外部仿真器，然后将校准后的参数通过overlay文件注入：

```yaml
# profiles/h100_70b_reference.yaml示例
pd_separation:
  compute:
    prefill_tflops: 800
    decode_memory_bw_gbps: 3200
    model_params_b: 70
```

推荐的校准来源包括：Vidur用于LLM算子时序分析、Accel-Sim用于GPU/HBM带宽、Ramulator2用于DRAM细节、MQSim用于SSD建模、ASTRA-sim/ns-3用于网络拓扑效应。

## 典型应用场景

kvcache-sim可用于评估多种关键设计决策：

1. **P:D比例选择**：针对特定QPS和提示词长度找到最优的Prefill/Decode GPU配比
2. **前缀缓存容量规划**：确定HBM/EIC中分配给KV缓存与模型权重的最佳比例
3. **互联带宽投资回报**：比较25/50/100/200 Gbps RDMA配置对KV传输开销的影响
4. **驱逐策略选型**：在LRU、ARC、Learned等策略中根据工作负载特征做出选择
5. **EIC容量规划**：每机架配置多少共享CXL内存以实现跨GPU前缀复用
6. **上下文长度影响**：评估4K、32K、128K上下文对缓存动态和PD收益的影响

## 技术实现亮点

项目代码结构清晰，模块化程度高：

- `sim/`目录包含核心仿真逻辑：存储层级、驱逐策略、缓存管理器、路由器、网络模型等
- `trace/`目录提供轨迹生成、加载和重放功能
- `learned/`目录实现基于LightGBM的机器学习驱逐策略
- `experiments/`目录包含完整的实验脚本和可视化工具

特别值得一提的是RadixTree前缀缓存的实现，它采用引用计数机制实现块的共享与回收，仅当叶子节点被驱逐时才实际释放底层存储，这种设计与vLLM等生产系统的实现理念一致。

## 总结与展望

kvcache-sim为LLM推理系统的KV缓存研究提供了一个功能完备、可扩展的仿真平台。从单节点的存储层级优化到万卡集群的扩展性分析，再到PD分离架构的精细化建模，项目覆盖了当前LLM服务领域最热门的技术方向。

对于希望深入理解KV缓存行为、评估新策略或规划大规模部署的研究者和工程师而言，这是一个极具价值的开源工具。项目采用MIT许可证，代码结构清晰，文档完善，易于二次开发和实验复现。
