本文翻译并整理自论文 SAC: Disaggregated KV Cache System for Sparse Attention LLMs with CXL(arXiv:2606.19746v1,2026 年 6 月 18 日)。原论文采用 CC BY 4.0 许可。为适应博客阅读,本文省略参考文献列表中的完整出版信息,但保留正文结构、关键论证、实验结果与附录要点。
随着大模型进入长上下文与稀疏注意力时代,推理系统的主要瓶颈正从算力转向内存容量。传统 RDMA 解耦 KV Cache 系统会在解码前把完整前缀 KV Cache 搬回本地;但稀疏注意力每一步只访问少量 top-k 条目,这种“全量搬运、少量使用”的方式会同时浪费网络带宽和本地内存。
SAC 的核心思路是:使用 CXL 的低延迟、缓存行粒度 load/store 语义,把 KV Cache 留在解耦内存池中,只在计算时按需读取被选中的 top-k 条目。论文在 DeepSeek-V3.2 与 SGLang 上的实验显示,相比 RDMA 基线,SAC 可实现最高约 2.1 倍吞吐量、9.7 倍更低的 TTFT,以及 1.8 倍更低的 TBT。
摘要
大模型向长上下文推理扩展,使服务系统的主要瓶颈从计算能力转向内存容量。面向稠密注意力模型的传统方案通常采用基于 RDMA 的解耦内存池,在解码开始前,以粗粒度方式将整个前缀 KV Cache 从远端存储取回本地内存。
然而,这种方法并不适合新兴的稀疏注意力模型。解码过程中虽然只有很少一部分 KV 条目真正活跃,系统仍然要把完整 KV Cache 拉回本地,从而造成严重的传输瓶颈和本地内存浪费。
为解决这一问题,论文提出 SAC,这是首个面向稀疏注意力模型优化的高效解耦 KV Cache 系统。SAC 利用 Compute Express Link(CXL)的低延迟和缓存行粒度 load/store 语义,在推理过程中仅按需读取所需的 top-k KV 条目。
基于 SGLang 和 DeepSeek-V3.2 的评测表明,与 RDMA 基线相比,SAC 能获得更高吞吐量、更低 TTFT 和更低 TBT,说明 CXL 解耦内存更适合作为新一代稀疏注意力模型的基础设施。
1. 引言
大模型参数规模不断增长,长上下文推理需求也持续增加,系统瓶颈随之由计算转向内存。如何管理前缀 KV Cache,已经成为大模型服务中的关键问题。
单机 GPU HBM 与主机 DRAM 很难满足 TB 级 KV Cache 容量需求,因此,基于 RDMA 的解耦 KV Cache 系统逐渐成为扩展内存容量、实现跨节点共享的常见方案。此类系统通常通过 RDMA 网卡将整个前缀 KV Cache 预取到本地内存,以便后续解码阶段低延迟访问。
对稠密注意力模型而言,全量预取是合理的,因为每个解码步骤都需要访问所有历史 token 的 KV。但对于 DeepSeek-V3.2、GLM-5.1、DeepSeek-V4 等稀疏注意力模型,这种方式存在根本性低效:每一步只使用少量 KV 条目,却要传输并驻留完整上下文的 KV Cache。
论文将问题归纳为两点。
1.1 传输瓶颈
稀疏注意力显著降低了计算复杂度,因此服务吞吐量往往不再受算力限制,而是受可达到的 batch size 限制。长上下文请求的 KV Cache 可达数十 GB;在高并发下,RDMA 搬运和内存布局重排都会形成巨大压力,引起排队延迟,恶化首 Token 延迟(TTFT)与总体吞吐量。
1.2 本地内存浪费
稀疏注意力每层只使用 top-k KV 条目。论文观察到,在长上下文请求的整个解码过程中,实际访问的前缀 KV Cache 比例极低,但系统仍需把全部数据取回本地。
为了避免本地内存容量限制 batch size,系统需要配置 TB 级内存来支撑高并发,导致基础设施成本高、内存利用率低。
一种直观方案是按需传输 top-k KV,但 RDMA 很难胜任:
- top-k 索引由当前 query 在运行时逐层动态决定,对读取延迟极其敏感;
- 被选中的 KV 条目是离散的小数据段,需要大量独立 RDMA 请求或复杂 gather/scatter,软件栈开销很高。
CXL 为此提供了新的可能。它建立在 PCIe 物理层之上,协议栈更精简,访问延迟显著低于 RDMA;同时支持缓存行粒度 load/store,无需消息协议开销,天然适合读取细粒度、稀疏分布的数据。
SAC 据此做出三项主要贡献:
- 揭示 RDMA 全量预取在稀疏注意力模型中的传输和容量瓶颈;
- 设计基于 CXL 的解耦 KV Cache 系统,实现 top-k KV 的低延迟按需读取;
- 在 DeepSeek-V3.2 与 SGLang 上进行端到端验证,证明其性能接近本地 DRAM,并显著优于 RDMA。
2. 背景
2.1 大模型中的稀疏注意力
传统稠密注意力在生成每个 token 时,都要让 query 与全部历史 key/value 交互,计算复杂度和 KV Cache 访问量都会随上下文长度线性增长。
稀疏注意力通过只选择少量重要 KV 条目来降低开销。以 DeepSeek Sparse Attention 为例,其流程包含两个部分:
- Lightning Indexer:根据当前 query 对历史 token 打分,选出 top-k 位置;
- 稀疏注意力计算:仅加载这些位置对应的 KV,并完成注意力运算。
这种模型把昂贵的全量 KV 扫描变成了细粒度、数据依赖的随机访问,也改变了最适合它的存储系统形态。
2.2 大模型服务中的解耦内存
解耦内存把计算资源与内存资源分离,使多个计算节点能够共享更大的远端内存池。现有大模型服务系统大多通过 RDMA 连接远端 KV Cache 存储。
RDMA 擅长传输大块连续数据,但通常依赖显式消息和 DMA 操作。为了避免解码期间频繁访问远端,系统会先把完整前缀 KV Cache 搬到本地,再开始计算。这一设计隐含了“后续会使用大部分数据”的假设,而稀疏注意力恰好破坏了这个假设。
2.3 Compute Express Link(CXL)
CXL 是建立在 PCIe 之上的开放互连标准,支持处理器、加速器和内存设备之间的一致性与内存语义访问。对本论文最重要的是 CXL.mem:CPU 可以像访问本地内存一样,通过普通 load/store 访问 CXL 扩展内存。
与 RDMA 相比,CXL 具有三项适合稀疏 KV Cache 的特征:
- 访问延迟更低;
- 最小访问粒度可达到缓存行级别;
- 无需为每次细粒度读取构造网络消息和请求队列。
3. 动机分析
3.1 RDMA 解耦 KV Cache 的瓶颈
论文首先测量了前缀 KV Cache 的 RDMA 预取延迟。随着上下文长度增长,KV Cache 体积迅速增大,传输时间也近似线性增长。高并发进一步使 RDMA 带宽饱和,请求不得不排队,导致 TTFT 显著升高。
另一方面,DeepSeek-V3.2 的稀疏注意力只选择 top-k 条目。虽然完整前缀 KV Cache 占用很大,但实际被访问的数据只是其中很小一部分。将完整 KV Cache 放入本地 DRAM,等于为了少量有效数据长期保留大量冷数据。
因此,RDMA 系统的问题不只是“链路还不够快”,而是传输粒度与模型访问模式不匹配。
3.2 稀疏 KV Cache 的访问延迟
按需读取的关键要求是:远端访问必须足够快,不能阻塞每层解码。论文比较了 RDMA 与 CXL 对稀疏 KV 条目的读取延迟。
RDMA 需要提交工作请求、处理队列、完成通知,并可能执行 gather/scatter。数据越零散,请求管理成本越突出。CXL 则允许 CPU 对映射后的内存地址直接读写,将细粒度访问交给硬件缓存与内存协议完成。
实验表明,对于稀疏、小粒度 KV 获取,CXL 的延迟明显低于 RDMA。这说明“KV Cache 留在远端、只按需读取 top-k”不仅节省容量,而且在延迟上可行。
4. SAC 系统设计
4.1 工作流程
SAC 将完整前缀 KV Cache 保存在解耦 CXL 内存池中,计算实例不再预取完整数据。一个请求的流程可以概括为:
第一轮:前缀填充
请求进入计算实例
↓
GPU 完成 prefill 并生成 KV Cache
↓
KV Cache 写入共享 CXL 内存池
第二轮:前缀复用与解码
命中已有前缀 KV Cache
↓
Lightning Indexer 逐层产生 top-k 索引
↓
CPU 从 CXL 内存按需读取对应 KV 条目
↓
所需条目传入 GPU,完成稀疏注意力计算
在第一轮请求中,prefill 仍要生成完整 KV Cache,并将其写入内存池。SAC 的主要优势体现在后续命中相同前缀的请求:它无需把全部缓存重新搬回本地,只取当前步骤真正需要的数据。
4.2 系统拓扑
SAC 的原型系统包含计算节点、CXL 交换结构和多个 CXL 内存设备。计算实例通过统一的 CXL 地址空间访问内存池中的 KV Cache。
论文实现采用 CPU 作为 CXL 内存访问发起方:CPU 从 CXL 内存读取稀疏 KV 数据,再经 PCIe 传给 GPU。这是受实验硬件能力限制的现实选择;未来如果 GPU 能直接发起 CXL.mem 访问,就可以进一步缩短路径、减少 CPU 中转。
4.3 基于 CXL 的 KV Cache 管理
4.3.1 统一 CXL 内存资源
SAC 把多块 CXL 设备整合为统一内存资源,并向上层 KV Cache 管理器暴露连续地址空间。应用无需理解每块设备的物理细节,只需根据对象偏移定位 KV 数据。
系统管理两类信息:
- KV Cache 数据本身;
- 请求、层、token 位置与物理地址之间的映射元数据。
当某层产生 top-k 索引后,SAC 根据元数据计算对应 KV 条目的地址,并发起细粒度读取。
4.3.2 CXL 操作实现
SAC 的 CXL 访问采用普通内存读写语义。CXL 内存映射进入进程地址空间后,CPU 可以使用 load/store 指令直接访问。
为了提高吞吐量,系统使用多线程并行处理不同 KV 条目,并通过非临时访问、预取和批量拷贝等方式减少缓存污染与软件开销。其目标不是把所有 KV 搬到本地,而是在每次解码时快速形成一个紧凑的 top-k KV 缓冲区,再传给 GPU。
4.3.3 CXL 带宽优化
单块 CXL 设备及其链路带宽仍然有限。SAC 因此采用设备感知的交错布局,把 KV Cache 分散存放在多块 CXL 设备上,使并发读取可以利用聚合带宽。
连续 KV 条目: 0 1 2 3 4 5 6 7
设备交错映射: C0 C1 C0 C1 C0 C1 C0 C1
这种布局能够缓解单链路竞争。实验显示,两块设备交错相较单设备平均提升 9.2% 解码吞吐量,在 128K 上下文下最高提升 14.2%。
5. 实验评估
论文在 SGLang 上集成 SAC,并使用 DeepSeek-V3.2 进行评测。主要比较对象包括:
- SAC:KV Cache 位于 CXL 解耦内存,按需读取 top-k;
- RDMA 基线:从远端内存池全量预取前缀 KV Cache;
- 本地 DRAM:KV Cache 位于计算节点本地内存,可视为性能上界之一;
- 仅 HBM:依赖 GPU 本地显存,低并发快,但容量受限。
评测关注吞吐量、TTFT、TBT,以及系统随并发和上下文长度增长时的扩展能力。
5.1 端到端性能
在第一轮 prefill 中,CXL 与 RDMA 都需要把 GPU 生成的完整 KV Cache 写入内存池,因此两者性能接近。
差异主要出现在第二轮前缀复用与解码:
- SAC 仅按需读取 top-k KV;
- RDMA 必须把完整前缀 KV Cache 拉回本地;
- 高并发时,RDMA 链路容易饱和,传输排队使 TTFT 急剧增加;
- RDMA 全量流量还会与 HiSparse 的 swap-in 共同争用 PCIe,进一步提高 TBT。
总体上,SAC 的平均吞吐量达到本地 DRAM 基线的约 91%,仅带来有限的 TTFT 与 TBT 增量;相较 RDMA,最高实现约 2.1 倍吞吐量、9.7 倍更低 TTFT 和 1.8 倍更低 TBT。
5.2 吞吐量扩展能力
随着并发增加,稀疏注意力能够利用更大的 batch size 提升 GPU 利用率。SAC 的吞吐量可随并发持续扩展,而 RDMA 很快受到全量 KV 传输带宽限制。
这说明在稀疏模型中,扩大计算规模并不一定能解决问题;如果存储后端仍采用粗粒度传输,瓶颈只会从 GPU 转移到网络。
5.3 与非解耦基线比较
SAC 虽然把 KV Cache 放在解耦 CXL 内存中,但性能接近本地 DRAM。
仅使用 HBM 时,低并发下吞吐量最高,因为访问路径最短;但并发提高后,HBM 容量限制了可容纳的请求数,batch size 无法继续增长。相比之下,较低层级的大容量内存能支撑更多并发请求,最终获得更高系统吞吐量。
这项结果强调:稀疏注意力推理的关键不只是追求最低单次访问延迟,还要在容量、带宽与并发之间取得平衡。
5.4 CXL 设备交错的影响
两块 CXL 设备交错部署始终优于单设备。平均解码吞吐量提高 9.2%,128K 上下文下峰值提升 14.2%。这证明多设备交错可以有效缓解链路竞争,也暗示增加 CXL 设备数量与聚合带宽,有望进一步缩小 SAC 与本地 DRAM 的性能差距。
5.5 HiSparse 配置的影响
SAC 构建于 SGLang HiSparse 之上。关键参数 device_buffer_size 决定 GPU HBM 中热 KV Cache 缓冲区的大小,也直接影响从解耦内存传入 GPU 的数据量。
论文比较了 4K 与 6K 两种配置。6K 配置的平均吞吐量比 4K 高 10.4%,原因是更大的 GPU 缓冲区降低了 KV Cache miss rate,减少 CXL 数据传输量与链路压力。
6. 讨论
6.1 对其他稀疏模型的适用性
论文认为,SAC 的设计不局限于 DeepSeek-V3.2。只要模型具有类似的动态 top-k KV 访问模式,就能受益于 CXL 的细粒度 load/store 语义。
论文特别讨论了 DeepSeek-V4:其混合使用压缩稀疏注意力与高度压缩注意力,并支持最长 1M token 上下文。由于其中的稀疏注意力仍具有相似的 top-k 访问模式,原则上可以直接受益于 SAC。
6.2 内存池范式正在变化
随着模型稀疏性增强,KV Cache 访问正在从大块、连续、可提前预测的模式,转向细粒度、异构、运行时动态决定的模式。
传统消息式协议擅长大块传输,却难以高效服务这类访问。大模型集群可能逐步转向具有内存语义的互连,让计算节点与内存节点更紧密地协作。CXL 是这一变化的重要基础,而未来统一的 scale-up 互连也可能提供更强的解耦 KV Cache 能力。
6.3 局限与未来工作
本文实验主要集中在 DeepSeek-V3.2。对 GLM-5.1、DeepSeek-V4 等模型的完整评测仍属于未来工作。
SAC 本身也还有优化空间,例如更充分地联合使用 HBM、DRAM 与 CXL 内存,依据访问热度组织 KV Cache,形成更精细的多级内存层次。
此外,当前实现的数据路径仍由 CPU 从 CXL 读取后再传给 GPU。未来 GPU 直接访问 CXL 内存的硬件与软件支持成熟后,SAC 的架构还可以进一步简化。
7. 结论
传统 RDMA 解耦 KV Cache 系统依赖全量预取,这在稠密注意力时代合理,却与稀疏注意力的细粒度访问模式不匹配。结果是大量无效传输、远端链路拥塞,以及 TB 级本地内存需求。
SAC 使用 CXL 的低延迟、缓存行粒度 load/store 能力,在运行时只取当前层所需的 top-k KV 条目。它把解耦内存从“大块对象搬运仓库”变成可直接访问的内存层,从根本上改变了 KV Cache 的传输方式。
在 DeepSeek-V3.2 与 SGLang 上,SAC 的性能接近本地 DRAM,并显著超过 RDMA 基线。论文给出的核心结论是:当模型架构继续向更长上下文和更高稀疏度发展时,CXL 这类内存语义互连,比传统消息式 RDMA 更适合作为下一代解耦 KV Cache 基础设施。
附录要点
实验环境
论文附录详细列出了服务器、GPU、CPU、DRAM、CXL 内存设备、RDMA 网络,以及 SGLang、CUDA 和相关软件配置。不同后端尽量使用相同计算资源,主要改变 KV Cache 所在内存层级和访问路径,以确保比较公平。
与 Beluga、TraCT 的区别
论文将 SAC 与已有 CXL KV Cache 系统区分开来:
- Beluga 重点解决 CXL 共享内存中的大块 KV Cache 管理、统一地址空间与容量扩展;
- TraCT 关注机架级 GPU 到 CXL 内存的直接 DMA 数据路径;
- SAC 则专门面向稀疏注意力,核心是利用缓存行粒度访问,在运行时只读取动态选出的 top-k KV。
因此,SAC 的主要创新不只是“用 CXL 存 KV Cache”,而是让 CXL 的访问粒度与稀疏注意力算法的数据选择粒度对齐。
HiSparse 与 SAC 的关系
HiSparse 通过 GPU HBM 中的热缓存和主机内存中的大容量 KV Cache,突破单纯依赖 HBM 的容量限制。SAC 在此基础上,把原本位于本地 DRAM 的大容量后端替换为 CXL 解耦内存,并针对 CXL 带宽、设备交错和细粒度读取进行优化。
可以把两者关系概括为:HiSparse 提供稀疏注意力的分层 KV Cache 执行框架,SAC 提供可跨计算节点扩展的 CXL 内存后端。
扩展实验
附录还评测了不同输出长度、尾延迟与请求级吞吐量。总体趋势与正文一致:输出越长,RDMA 全量预取及 PCIe 竞争的影响越明显;SAC 依靠按需访问,在高并发和长解码场景下保持更稳定的延迟与吞吐量。
译者点评
这篇论文最值得关注的地方,不是简单证明“CXL 比 RDMA 延迟低”,而是指出了模型算法与系统互连之间的粒度匹配问题:
- 稠密注意力访问全部 KV,适合大块搬运;
- 稀疏注意力动态选择少量 KV,适合细粒度内存访问;
- 如果底层仍坚持全量搬运,算法节省下来的计算量会被数据移动重新吞掉。
SAC 代表了一种很明确的系统趋势:未来推理基础设施需要感知模型的数据访问结构。随着稀疏注意力、超长上下文和多级 KV Cache 普及,HBM、DRAM、CXL 内存和远端存储不会只按“快慢”简单分层,而会按访问热度、粒度、可预测性和共享范围共同组织。