在现代 LLM 大规模生产级推理系统如 Kimi 的后台基座Mooncake以及开源框架SGLang中PD 分离架构Prefill-Decode Disaggregation已经从一种理论探讨演变为支撑百万级并发、超长上下文Long-Context的标配基础设施。传统混布架构下Prefill计算密集、凸显 TTFT与 Decode访存密集、凸显 TBT在同一卡上交错运行导致算力与内存带宽互抢。PD 分离架构将集群物理划分为Prefill 集群与Decode 集群而实现这一架构的核心突破在于如何高效进行跨节点 KV Cache 传输以及如何让 Chunked Prefill分块 Prefill与传输流程无缝重叠Overlap。一、 系统全景架构以 Mooncake / SGLang 为例[ Client Request ] │ ▼ ┌───────────────────┐ │ Global Router / │ (Conductor) │ Global Scheduler │ └─────────┬─────────┘ │ ┌─────────────────────┴─────────────────────┐ │ │ ▼ ▼ ┌────────────────────┐ ┌────────────────────┐ │ Prefill Instance │ │ Decode Instance │ │ (Compute-Bound) │ │ (Memory-Bound) │ │ │ │ │ │ ┌────────────────┐ │ Chunk-wise Stream │ ┌────────────────┐ │ │ │Chunk 1 Forward │ │ ──── RDMA Transfer ─ │ │Pre-allocate KV │ │ │ └───────┬────────┘ │ (Mooncake Store) │ └───────┬────────┘ │ │ ▼ │ │ ▼ │ │ ┌────────────────┐ │ │ ┌────────────────┐ │ │ │Chunk 2 Forward │ │ ──────────────────── │ │Wait Step... │ │ │ └────────────────┘ │ │ └────────────────┘ │ └────────────────────┘ └────────────────────┘全局调度器如 Mooncake 的Conductor或 SGLang 的Router收到请求后为其协同分配一组 Prefill 节点与 Decode 节点Prefill 节点接收 Prompt进行大 GEMM 矩阵计算生成 KV Cache。传输网络借助 PCIe/RDMA 将内存中的 KV Cache 推送到 Decode 节点。Decode 节点接收完成的 KV Cache启动 Autoregressive Token 生成。二、 核心技术点 1跨节点 KV Cache 零拷贝高效传输将数十 KB 到数 GB 不等的 KV Cache 跨网络传递是 PD 分离能否带来净收益的最大瓶颈Bandwidth Wall。Mooncake 和 SGLang 采用了极其精细的物理层与传输协议层优化1. 基于 RDMA (RoCEv2 / IB) 的 P2P 零拷贝Zero-copy原理绕过 CPU 以及操作系统 TCP/IP 协议栈。Prefill GPU 的 HBM显存通过GDRCopy / GPUDirect RDMA直接将数据由网卡NIC推送到 Decode GPU 的 HBM 中。Mooncake TransferEngineKimi 团队开源的 TransferEngine 构建了一套多通道Multi-pathRDMA 传输调度引擎自动进行数据分块Chunking和网卡负载均衡把 400G/800G 带宽跑满将传输延迟降至微秒级。2. 内存池化与全局 KV 缓存管理Disaggregated KVCache Pool以 Mooncake 为代表的系统打破了“只用 GPU 显存”的局限多级存储池将 GPU HBM、Host DRAMCPU 内存、Local NVMe SSD 甚至远端 CPU 内存通过 RDMA 统一池化为Mooncake Store。Prefix Reuse Delta Transfer增量传输当 Decode 节点或全局 Radix Tree 中已存在部分历史 Prefix 的 KV Cache 时Prefill 节点只需计算未命中的后缀Delta Token并仅传输增量部分的 KV Cache传输量骤降。3. 多层级与 Block 页面对齐Paged Memory Layout传输时并非以连续的大 Tensor 形式发送而是基于PagedAttention 的 Block 结构按固定 Block如 16/32/64 token为一个 Page粒度传输。Decode 端在握手阶段提前申请好物理 Block 索引地址Prefill 端通过 RDMA Write 指令直接写入 Decode 端指定的物理显存偏移量。三、 核心技术点 2Chunked Prefill 与传输的流水线重叠Pipeline Overlapping如果采用“完全算完所有 Prompt 的 Prefill→\rightarrow→一次性发起网络传输→\rightarrow→Decode 接收并开始推理”的串行模式网络传输耗时会直接暴露在关键路径Critical Path上拖垮 TTFT。Chunked Prefill分块 Prefill与跨节点传输的流水线配合是消解这一延迟的关键1. 拆分与微流水线Micro-pipelining假设输入的 Prompt 极长如 64k tokenPrefill 引擎将其切分为多个 Chunk例如以 4k 或 8k token 为单位Prefill GPU: [ Compute Chunk 1 ] ── [ Compute Chunk 2 ] ── [ Compute Chunk 3 ] │ │ │ RDMA Network: └─ [ Transfer Chunk 1 ] └─ [ Transfer Chunk 2 ] └─ [ Transfer Chunk 3 ] │ │ │ Decode GPU: (Pre-allocated) [ Recv Check ] [ Recv Ready ]Chunk 1 计算Prefill GPU 完成 Chunk 1 的 Attention 与 GEMM 计算得到 Chunk 1 的 KV Cache。异步非阻塞传输Non-blocking Async Push在 Prefill GPU 启动Chunk 2 计算的同时触发后台 CUDA Stream 和 RDMA 引擎将Chunk 1 的 KV Cache 异步推送到 Decode GPU。完全重叠Overlapping由于 Compute 与 RDMA Network 使用不同的硬件单元Tensor Core vs. NIC网络传输的时间被后一个 Chunk 的计算耗时完全掩盖Hide Communication Latency。2. 握手与预分配机制Handshake BootstrapSGLang 等框架设计了严密的生命周期队列Bootstrap Handshake引导阶段请求下发时Prefill 节点首先向 Decode 节点发起轻量握手通信。Pre-allocate KV BlockDecode 节点根据请求预估的最大 Token 长度在自身的 Paged KV Pool 中提前开辟好物理 Slot并将内存地址句柄返回给 Prefill 节点。Inflight Status PollingPrefill 节点在流式传输每个 Chunk 的 KV Cache 后维护一个非阻塞的状态轮询Inflight Queue确认最后一个 Chunk 传输完毕后立即无缝激活 Decode 节点启动第一个 Token 的生成。四、 两种典型方案的工程设计侧重维度Kimi (Mooncake 架构)SGLang (PD Disaggregation)设计哲学以 KVCache 为中心的分布式存储与调度系统高性能算子与跨节点 P2P 调度的执行引擎存储介质深度利用 GPU HBM CPU DRAM SSD构建庞大的分层全局缓存侧重 GPU HBM 到 GPU HBM 的极低延迟 Direct P2P RDMA超载容错包含Prediction-based Early Rejection基于预测的早期拒绝防止 SLO 崩溃基于 Router 进行精准的负载均衡与全局 Cache Locality 匹配复杂模型支持针对长文本与 Moonshot 专属模型打磨原生优化 DeepSeek MLA 算子、GQA 以及量化格式的传输五、 总结PD 分离架构能够成功的底层逻辑在于利用现代数据中心极高带宽的 RDMA 网络如 400G/800G去交换计算与存储资源。通过Mooncake / SGLang等系统中的RDMA 零拷贝与 Paged Memory 的地址对齐消除了 CPU 内存拷贝与显存重排开销Chunked Prefill 与 Chunk-wise 异步传输的微流水线将跨节点 KV Cache 传输延迟完美隐藏在 GPU 计算背后。这两者的结合使得在海量并发与长文本Long Context场景下既保证了 Prefill 阶段的高 MFU模型算力利用率又彻底消除了 Decode 阶段的 TBT 抖动。