| Related Entity | Relation | Why Related |
|---|---|---|
| vLLM (2309.06180) | baseline | Mooncake 的主要对比 baseline;PagedAttention 开创了 paged KVCache 管理,Mooncake 将其扩展到分布式 CPU DRAM 池 |
| DualPath (2602.21548) | successor | 同为 DeepSeek/Kimi 生态下的 PD 分离架构;DualPath 在 Mooncake 的 storage NIC 瓶颈上新增第二条加载路径 |
| PrfaaS (2604.15039) | successor | Mooncake 团队(Ruoyu Qin 等)的后续工作;将 PD 分离从单集群 RDMA 扩展到跨 DC Ethernet |
| APEX (2506.03296) | alternative | 同为 CPU-GPU 异构推理,但 APEX 不做 PD 分离而是在单节点内用 deferred cross-iteration sync 实现 CPU offloading |
| DynaServe (2504.09285) | alternative | 同为 disaggregated serving,但以微请求(任意 token 边界分割)替代 Mooncake 的固定 prefill/decode 分离 |
Mooncake 是 KVCache-centric disaggregated serving 的开创性生产系统。vLLM 是其直接 baseline,提供 PagedAttention 和连续批处理的基础 [2407.00079]。DualPath 和 PrfaaS 分别从存储带宽和跨 DC 部署两个方向继承并扩展了 Mooncake 的架构 [2602.21548] [2604.15039]。APEX 和 DynaServe 代表了同一问题域的不同解法——前者用异步重叠替代 batch splitting [2506.03296],后者用微请求打破固定 PD 边界 [2504.09285]。
Mooncake 的核心增量是 三层分离:(1) prefill 与 decode 实例分离,(2) KVCache 从 GPU 移至 CPU DRAM/SSD,(3) 全局 Conductor 调度替代 vLLM 的本地调度。vLLM 的 PagedAttention 仅管理单实例 GPU 内存,无法跨机复用 prefix cache [2407.00079]。Mooncake 的 hash-based prefix dedup 适合分布式场景(无需共享 radix tree),但代价是引入 Conductor 全局调度器的单点复杂性。
DualPath 发现 Mooncake 架构中 prefill engine 的 storage NIC 饱和而 decode engine 的 SNIC 空闲——一个 Mooncake 未识别的瓶颈 [2602.21548]。DualPath 的增量是利用 decode engine 的闲置 SNIC + CNIC RDMA 构建第二条加载路径,聚合全集群存储带宽。这揭示了 Mooncake 的 CPU DRAM KVCache 池在 agentic workload(命中率 >98%)下反而使 prefill 退化为 I/O 密集而非计算密集的趋势。
PrfaaS 将 Mooncake 的 PD 分离从 "单集群 RDMA 岛" 推广到 "跨 DC Ethernet"。关键使能技术是混合注意力(KDA:MLA=3:1)将单实例 KV 吞吐从 ~60 Gbps 压缩到 ~3 Gbps [2604.15039]。Mooncake 假设 standard MHA/GQA 的 KVCache 大小,在 Kimi-Linear 等新模型下这一假设已过时。PrfaaS 的 +54% 吞吐提升主要来自模型层面的 KVCache 压缩而非系统层面的调度创新。
APEX 直接挑战了 Mooncake(以及 NEO/FastDecode)的 batch-splitting pipelining 范式:在 decode-heavy workload 下,batch splitting 使 GPU linear ops 翻倍,CPU-GPU 性能差距(10-20×)使平衡约束不可行 [2506.03296]。APEX 的 deferred cross-iteration synchronization 允许 CPU attention 结果延迟到下一次迭代消费,将 CPU 从同步瓶颈转变为异步吞吐放大器。但 APEX 是单节点方案,不具备 Mooncake 的跨机 prefix caching 能力。
DynaServe 的微请求抽象(任意 token 边界分割)是 Mooncake 固定 PD 分离的泛化——Mooncake 的 prefill/decode 二分等价于 DynaServe 在 $s = P$ 处分割的特例 [2504.09285]。DynaServe 在负载波动时可动态调整分割点,而 Mooncake 需要预设 prefill:decode 比例(论文承认比例调整是未来工作)。但 DynaServe 的细粒度分割增加了 KVCache 跨 GPU 传输复杂度。
Mooncake 是 KVCache-centric PD 分离范式的定义者——将 KVCache 从 GPU 附属品提升为一等调度实体。在产业维度上,Mooncake 是少数公开披露生产系统设计的 MaaS 平台论文(与 SGLang、vLLM 的研究系统不同),其 trace 数据集是首个包含 prefix caching 信息的公开 trace。
范式定位:Mooncake 代表了 "以 KVCache 为中心的全局调度" 范式,与 vLLM 的 "以请求为中心的本地调度" 和 DynaServe 的 "以微请求为中心的弹性调度" 形成三足鼎立。后续工作(DualPath、PrfaaS)验证了这一范式在 DeepSeek/Kimi 生态内的持续演进力。
采用证据:论文声称 Mooncake 是 Kimi 的主要生产平台,开源于 https://github.com/kvcache-ai/Mooncake。DualPath 和 PrfaaS 的存在进一步证实 Mooncake 架构在 DeepSeek 内部的持续迭代。
局限性:Mooncake 的设计假设(MHA/GQA、单集群 RDMA、~50% cache hit)正被后续模型和负载趋势侵蚀——MLA 和 hybrid attention 大幅压缩 KVCache,agentic workload 将 cache hit 推至 >98%,跨 DC 部署需求打破单集群 RDMA 假设。