ESS 论文梗概

← 中文导读 · ← 仓库首页(EN) · ← 演进总览 §5.2 · ← ESS 概念页 · ← 基础设施线导读 · DSA 全文arXiv:2512.10576 · Chen et al., 2025(百度 Baige AI) 对象模型:DeepSeek-V3.2-Exp · 框架:SGLang · 场景:PD 分离 Decode 阶段


一句话

论文提出 ESSExtended Sparse Server):在 不改模型精度 的前提下,把 Latent-Cache(~83.2%) offload 到 CPU,GPU 上只留 Sparse Memory Pool(LRU 热子集) + 常驻 Indexer-Cache(~16.8%);靠 FlashTrans/UVA 解决 656B 小块 PCIe 传输、LRU-Warmup 降早期 miss、Layer-wise DA/DBA Overlap 掩盖 prefetch 延迟,仿真上 32K 吞吐 +69.4%128K 最高 +123%


论文要解决什么

矛盾说明
DSA 降了算力稀疏 attention 减轻计算,但 Decode 仍是 PD 架构瓶颈
Latent-Cache 线性涨序列越长 cache 越大 → batch size 被 GPU HBM 卡死
小块 PCIe 传输每步 top-2048 个 656B entry 分散 → 原生 cudaMemcpyAsync H2D~0.79 GB/s

核心观察:top-$K$ latent 的 index 在 相邻 decode step 高度相似(层内相似度 $r_t^l$ 高,见 Fig.2)→ offload 可行,前提是 高命中率 + 高有效带宽 + 计算通信重叠

图/表优先 手动截图 放入 screenshots/,运行 python3 scripts/figures/ess/install_screenshot.py --inbox;未手动的图仍可用 python3 scripts/figures/ess/extract_paper_figures.py 从 PDF 裁剪。


系统划分

答疑H2D / D2H 与 PD 时序中的 prefetch、写回

Cache占比ESS 策略
Indexer-Cache~16.8%不 offload;每步全长算 indexer
Latent-Cache~83.2%CPU Total Memory Pool 存全量;GPU Sparse Memory Pool 存热子集
Figure 3. Latent-Cache Offload-Prefetch Timing in the PD disaggregation Setting

Figure 3. Latent-Cache Offload-Prefetch Timing in the PD disaggregation Setting.

直接打开


关键图解读

Figure 1 — 吞吐 vs Batch Size

要点内容
设置32K context,配置见 Table 1
现象理论上调 batch 应持续提吞吐,但 GPU 显存先满
数据batch 最多 52,吞吐封顶 ~9,648 tokens/s
结论显存是 Decode 扩容天花板 → 必须 offload Latent-Cache 才能继续加大 batch
Figure 1. Relationship Between Throughput and Batch Size

直接打开

Figure 2 — 层内访问相似度

要点内容
指标Intra-Layer Similarity $r_t^l = |K_{t-1}^l \cap K_t^l| / |K_t^l|$
含义同一层、相邻 decode step 的 top-$K$ index 集合 重叠比例
数据LongBench V2 上 相似度持续偏高
结论Latent-Cache 访问有 强时间局部性 → CPU 扩展 HBM 有意义
Figure 2. Intra-Layer Similarity Across Different Context Lengths

Figure 2. Intra-Layer Similarity Across Different Context Lengths.

直接打开

Figure 3 — PD 架构下 Offload/Prefetch 时序

系统划分(Fig.3)(仅保留原图与图注,不重复解读)。

Figure 4 — LRU-Warmup 对早期 Cache Miss 的影响

Figure 4. Effect of LRU-Warmup on Early Decode Cache Miss Count

直接打开

对比现象
Warmup 前Decode 开头 大量 Cache Miss,很快衰减
Warmup 后早期 miss 显著下降
做法取 Prefill 最后 32 个窗口 的 top-2K index,预热 GPU LRU 池
设置MTP=1,Sparse Memory Ratio=0.2

Figure 5 — 层内 Cache Miss 分析

Figure 5. Intra-Layer Cache Miss Analysis

直接打开

要点内容
横轴Layer ID
纵轴每 batch 平均 Latent-Cache miss 数
变量不同 Sparse Memory Ratio(GPU 侧占全 cache 比例)
结论不同层 miss 差异极大(Ratio=0.2 时约 16.66~605)→ 需要 按层选 Overlap 策略(见 Fig.7、§3.3)

Figure 6 & 7 — Overlap 策略对比

答疑H2D / D2H 是什么?

Figure 6. Comparison of Overlap Strategies

Fig.6 直接打开

Figure 7. Overhead Comparison of Overlap Strategies

Fig.7 直接打开

无 Overlap(SGLang 默认)

  • H2D 必须等 Indexer 完成;Attention 必须等 H2D 完成 → 全串行,GPU 空等。

DA Overlap(Dual-Attention)

  • forward_prepare:PreAttn 延后;SparseMLA 拆 Attn0(用 GPU 已有 latent)与 Attn1(等 prefetch)→ Attn0 ∥ H2D

DBA Overlap(DualBatch-Attention)

  • 在 DA 基础上 按 batch 维切 Indexer(含 paged_mqa_logits + Top-K)→ 长上下文下仍有足够计算量掩盖传输。
  • Fig.7 时间线:对比 DA vs DBA 的实际重叠程度。

Layer-Wise 选择规则

Miss 水平 / 上下文更优策略
Miss 较低DA(无 Indexer 切分开销)
Miss (如达 512)、长上下文DBA(Indexer 计算随 $L$ 线性增,更能藏传输)

Figure 8 — 不同上下文长度下的 Cache Miss

Figure 8. Cache Miss Count Comparison Across Different Context Lengths

直接打开

  • MTP=2,Ratio=0.2。
  • 层维 miss 分布形态跨长度一致 → 可 离线 profiling 标出「高 miss 层」。
  • 用于 Layer-Wise Overlap 的 静态分层配置

Figure 9 — 可扩展性

Figure 9. Cache Miss Behavior Across Different Context Lengths

直接打开

发现含义
Ratio ≥ 0.2 时,平均 miss 随长度 相对稳定长上下文下 offload 行为可预测
32K + 小 Ratio miss 最严重GPU 热池太小 → 频繁换入换出
同 Ratio 下,更长 context → 更低平均 missESS 在 128K 等超长场景收益更大(与 Table 2 的 +123% 一致)
建议GPU buffer 不小于 6.4K entry

关键表解读

Table 1 — 仿真基线配置

Table 1. Basic Setting

直接打开

读表注意
ModelDeepSeek-V3.2-Exp与 DSA 稀疏 attention 配套
Context32K(主实验)128K 另有一组
Node / EP4 node,EP=32大规模 MoE 部署
MTP2(主);Table 2 含 4与 speculative 接受率联动
MTP-Accept-Ratio1.7影响有效 OTPS
Attention-EngineFlashMLA与 DeepSeek 推理栈一致
Two-Batch Overlapopen系统级重叠优化已开
PCIe5th genFlashTrans 带宽前提

此表是 Fig.1、Table 2 默认行 的复现环境;改 MTP / 接受率 / 长度时只动 Table 2 中的变量。

Table 2 — 吞吐与 OTPS

Table 2. Throughput and OTPS Under Different MTP and Acceptance Settings

直接打开

括号内为 Sparse Memory Ratio(GPU 热池占全 Latent-Cache 比例);Ratio 越小 → GPU 显存越省 → batch 可越大。

MTP=2,Context=32K,Accept=1.7

BatchThroughput (tokens/s)OTPS相对基线 batch=52
52 (1.0)9,647.7123.19基线(全 GPU cache)
64 (0.82)10,693.3120.89
96 (0.48)13,155.9817.13
128 (0.31)15,620.1415.25
160 (0.21)16,347.8812.77+69.4% 吞吐

MTP=4,Context=32K — 接受率越高,绝对吞吐越高;ESS 仍随 Ratio 下降而扩容 batch。

MTP=2,Context=128K,Accept=1.7

BatchThroughputRatio备注
13 (1.0)3,669.19基线极短 batch 上限
40 (0.2)6,925.06
54 (0.1)8,169.60+123% 吞吐

读表要点

  1. Throughput ↑ 往往伴随 OTPS ↓:batch 变大、单 token 延迟结构变化;论文优化目标是 服务吞吐 / 成本,非单请求延迟。
  2. Ratio 从 1.0 → 0.1:用 CPU 换 GPU 显存,batch 可扩 3× 以上
  3. 128K 行说明:越长上下文,ESS 相对收益越大

三大工程模块

PD 分离下每步流程(对应 Fig.3):Prefill 结束 → Indexer 选 top-$K$ → prefetch 缺失 latent(H2D)→ Core MLA → 新 latent 写回 CPU(D2H)。Indexer 路径不搬;仅 Latent 在 CPU↔GPU 间流动。

模块问题方案关键数字
FlashTrans + UVA656B 碎片块,Memcpy 带宽差GPU 直接访 pinned CPU 地址H2D 0.79→37 GB/s;D2H 0.23→43 GB/s
LRU + Warmup早期 / 层间 miss 高Prefill 末 32 窗预热;LRU 保留高复用 entryFig.4、Fig.5
DA / DBA / Layer-wise传输无法被计算掩盖Attn0∥H2D;按层选 DA 或 DBAFig.6–7

与静态/动态 KV 压缩、相关工作的边界

类型代表与 ESS 区别
静态压缩H2O、SnapKV、StreamingLLM永久删 KV;有损风险
动态选择Quest、MagicPig、RetrievalAttention每步只算子集,但 ESS 针对 V3.2-Exp 双 cache + 656B latent
Offload-PrefetchFlexGen、SparseServeESS = DSA + MLA latent + PD + SGLang 的专用流水线

结论与局限

  • 已验证:仿真中高保真;无损精度(只搬存储,不改 attention 数学)。
  • 未做:论文写明 尚未并入生产框架;未来或与 SnapKV 等 有损压缩 组合。
  • 本地对照ESS Latent offload 概念页 · DSA 稀疏注意力 算法前置 · Index Share 正交 infra 补丁。

图表索引速查

图/表一句话
Fig.132K 下显存卡 batch=52 → offload 必要
Fig.2top-$K$ index 逐步相似 → 局部性成立
Fig.3PD 下 H2D/D2H 时序(仅图)
Fig.4LRU-Warmup 降早期 miss
Fig.5各层 miss 不均 → 分层 overlap
Fig.6–7DA / DBA 时间线对比
Fig.8–9跨长度 miss 形态与可扩展性
Table 1仿真环境
Table 2+69.4% / +123% 主结果

论文 PDFarXiv:2512.10576