跳转至

SGLang

SGLang 以高吞吐和 Prefix Cache 效率著称,是 RadixAttention 和 HiCache 的原始提出者。

内容时效性

SGLang 更新极快,下述特性可能已迭代。请以项目的最新文档和 Release Notes 为准。


KVCache 架构

RadixAttention

SGLang 的核心 KVCache 创新:使用压缩 Radix Tree 组织 KV Block。

  • 任意 token 边界匹配:不需要像 vLLM APC 那样对齐 block_size,可以在任意 token 边界命中 prefix
  • Cache-aware 负载均衡:将请求路由到已有最长共同 prefix 的副本,最大化命中率
  • HiRadixCache:HiCache 的 Radix Tree 扩展,支持多级 tier 和 SLRU 淘汰策略

Block Manager

与 vLLM 类似的分页管理设计,但在以下方面有差异:

  • Block 命中的边界更灵活(RadixAttention 的特性)
  • SLRU(Segmented LRU)淘汰:比纯 LRU 更好地保护热门 prefix block 不被驱逐

主要特性

HiCache(分层 KVCache)

HiCache 是 SGLang 的分层 KV offload 解决方案:

  • 三层存储:GPU HBM → Host DRAM → NVMe
  • 自适应 prefill delayer:延迟 prefill 执行以批量复用 offloaded KV

生产实测数据:

部署场景 指标 效果
Novita AI TTFT −56%
Novita AI 吞吐 2×
Ant Group (DeepSeek-R1-671B) TTFT −84%

HiSparse

稀疏 KV cache 与 offload 的结合:

  • 在 GLM-5.1-FP8 256 并发下实现 3–5× 吞吐提升
  • LRU offload 不活跃的 KV 到 host memory

适用边界: HiSparse 的收益来自高并发长上下文下 HBM 容量释放,而不是单请求加速。官方示例包含 top_k=2048、device_buffer_size=4096/6144、host_to_device_ratio=8/10 等入口参数;miss count 由 sparse locality 和 hot buffer size 决定,miss 频繁时 host-to-device swap 会落在 decode critical path。

来源:主站 reading HiSparse:稀疏注意力真正缺的那层内存系统

ShadowRadix

超长上下文扩展支持(DeepSeek-V4 实测):

  • 上下文从 4K 扩展到 900K
  • decode 吞吐仅从 266 → 240 tok/s(< 10% 下降)

PD 分离

SGLang 的 disaggregated serving 实现:

  • GPU Staging Buffer(PR #19890):将 scatter head slices gather 为 contiguous memory,再做 bulk RDMA transfer
  • Qwen3.5 Prefill TP4 + Decode DEP4 下:TPS/GPU 提升约 5×
  • 支持 TP 不对称的 Prefill/Decode 节点配置

KV 量化

  • FP8 KV Cache:原生支持
  • TurboQuant 集成(PR #23135):3.88× 压缩,保持 93–105% decode 吞吐
  • Tokenspeed MLA(PR #24925):支持 FP8 KV cache + MLA 架构
  • FP4 KV Cache:fp4_e2m1 路径可与 MHA/MLA pool 叠加,BF16 → FP4 支持约 3.56× 更长上下文或更多并发(含 scale buffer)

存储池类型体系

SGLang main 分支的 KV pool 已显式分化为 MHA/GQA、MLA、DSA、DeepSeek-V4、SWA、FP4、Host 等类型。池类型由模型配置在启动时决定,运行时不会随请求切换:

Pool 适配架构 关键点
MHATokenToKVPool MHA/GQA 标准 [S,H,D] K/V 双 buffer
MLATokenToKVPool DeepSeek MLA [S,1,kv_cache_dim] 合并 latent KV
DSATokenToKVPool DeepSeek sparse MLA MLA buffer + indexer buffer
DeepSeekV4SingleKVPool DSV4 SWA、C4、C128 多级压缩与辅助状态
SWAKVPool Hybrid SWA full_kv_pool 与 swa_kv_pool 双池
HostKVCache HiCache L2 page_first / layer_first 等四种 host layout

来源:主站 field-note SGLang KV Cache 存储池架构

Tair + SGLang:DeepSeek V4 的三层寻址

DeepSeek V4 的混合注意力使同一 token 产生多种物理 KV 形态。Tair + SGLang 的方案将 Shadow Radix、HiCache、HiSparse 组合成三层:

层 作用
Shadow Radix 一棵逻辑前缀树映射多套物理 KV 形态
HiCache GPU / CPU / storage 三层保存可复用历史 KV
HiSparse Decode 阶段对 sparse KV 做冷热分离

多轮对话场景中,Prefill 吞吐提升 3×,Decode BatchSize 提升 5–10×。这说明混合注意力落地后,prefix cache 不能只记录 token 前缀,还必须记录对应的物理 KV 形态。

来源:主站 reading Tair + SGLang 为 DeepSeek V4 重建 KV 寻址层

Attention Backend

  • 深度集成 FlashInfer,是 SGLang 最优化的 attention kernel 路径
  • FlashAttention 作为备选

与 vLLM 的关键差异

维度 vLLM SGLang
Prefix Cache 边界 Block 对齐(16 token) 任意 token 边界(RadixAttention)
淘汰策略 LRU SLRU(更好保护热 block)
Offload 多级 tier(PR #40020) HiCache(三层,adaptive prefill delay)
Attention Backend FlashAttention / FlashInfer / Triton 主要 FlashInfer
PD 分离状态 进行中(MultiConnector) 生产可用(GPU Staging Buffer)

关联章节

版本历史

版本 日期 说明
v0.2 2026-06-02 新增 HiSparse 调优边界、SGLang 多 KV pool 类型体系、FP4 路线与 Tair + SGLang DeepSeek V4 三层寻址
v0.1 2026-05-14 从框架对比总览拆分,整理 RadixAttention / HiCache / ShadowRadix / PD 等核心特性