Skip to content

SGLang PD 解耦架构 ​

大型语言模型的推理分为两个差异显著的阶段:Prefill(预填充) 与 Decode(解码)。Prefill 是计算密集型任务,需要高 FLOPS;Decode 是内存密集型任务,受限于内存带宽与 KV Cache 存储。SGLang 的 PD Disaggregation 架构通过将两个阶段解耦,实现资源的精益化管理和极致性能。

1. 为什么要分离 Prefill 与 Decode ​

在单体式架构中,两个阶段共享同一 Worker:

  • 执行 Prefill 时,内存带宽可能闲置。
  • 执行 Decode 时,高性能计算单元(如 Tensor Core)利用率不足。

PD 解耦的核心价值:

阶段资源需求特性解耦后的优化策略效益
Prefill计算密集型在高算力 Worker 上聚合批处理,加速前缀计算提高计算资源利用率与吞吐量
Decode内存密集型在高内存带宽、低延迟 Worker 上并行扩展确保低延迟与高并发的 Token 生成

通过独立、异构地扩展资源,SGLang 能够显著提升整体效率与成本效益。

2. 关键技术机制 ​

PD 解耦的性能关键在于如何高效、无阻塞地将 Prefill 结果(KV Cache)传输给 Decode Worker。

2.1 高速 KV Cache 传输 ​

  • RDMA:SGLang 利用 RDMA 技术(如 NIXL 或 Mooncake 后端),允许 Prefill Worker 直接将 KV Cache 写入 Decode Worker 的 GPU 内存,绕过 CPU 与操作系统内核,实现极低延迟与高带宽。
  • 非阻塞传输:传输操作在后台线程运行,不阻塞核心调度器的主事件循环。

2.2 请求生命周期 ​

  1. 网关接收:SGLang Model Gateway(或负载均衡器)接收推理请求。
  2. 动态配对:网关从 Prefill Worker 池与 Decode Worker 池中动态选择一对 Worker。
  3. 连接建立:针对该请求建立临时高速连接(包括 RDMA 连接信息注册)。
  4. 执行与传输:Prefill Worker 计算完成后,通过 RDMA 将 KV Cache 传输到 Decode Worker 的预分配 GPU 内存。
  5. 继续解码:Decode Worker 确认 KV Cache 到达后接管请求,开始逐 Token 生成。

这种动态连接与非阻塞传输设计,是 SGLang PD 解耦在大规模异构集群中保持高性能的关键。

3. 部署实践 ​

PD 解耦通常通过 SGLang Model Gateway 统一调度管理。需要独立启动 Prefill Worker 与 Decode Worker,再配置 Router 识别并调度它们。

3.1 启动 Worker 实例 ​

bash
# 启动 Prefill Worker
python3 -m sglang.launch_server \
  --model-path /path/to/model \
  --disaggregation-mode prefill \
  --port 30001

# 启动 Decode Worker
python3 -m sglang.launch_server \
  --model-path /path/to/model \
  --disaggregation-mode decode \
  --port 30011

3.2 通过 Router 启用 PD 解耦 ​

bash
python -m sglang_router.launch_router \
  --pd-disaggregation \
  --prefill http://prefill1:30001 http://prefill2:30002 \
  --decode http://decode1:30011 http://decode2:30012 \
  --policy cache_aware \
  --prefill-policy cache_aware \
  --decode-policy power_of_two

关键参数说明:

参数说明
--pd-disaggregation启用 PD 解耦模式
--prefillPrefill Worker 的 HTTP 端点列表
--decodeDecode Worker 的 HTTP 端点列表
--prefill-policyPrefill 阶段的负载均衡策略,如 cache_aware
--decode-policyDecode 阶段的负载均衡策略,如 power_of_two

总结 ​

SGLang 的 Prefill / Decode 解耦架构是面向大规模生产部署的重要优化。它通过分离计算与内存密集型负载,实现硬件资源的精细匹配与推理流程的无缝衔接。在追求极低延迟与极高有效吞吐量的生产环境中,PD Disaggregation 是实现高效能、可控成本 LLM 服务的关键利器。

Maintained by Robin