DualPath:利用分离式 KV cache 存储 I/O 加速智能体推理(SIGCOMM 2026)
原题:DualPath: Accelerating Agentic LLM Inference by Harvesting Disaggregated KV-Cache Storage I/O
一句话总结:在长上下文、高复用的智能体推理中,预填充节点的存储网卡先于 GPU 饱和;DualPath 让解码节点也读取旧 KV cache,再经计算网络送给预填充节点。SIGCOMM 正式版实验中,相对同一内部框架的原始版本,离线任务完成时间对应最高 1.87× 加速,在线服务在给定延迟约束下的智能体到达率平均提高 1.96×(§7.3–7.4)。
博客讲解(引用 zartbot):DualPath 博客讲解
版本与证据:本页依据用户提供的 SIGCOMM 2026 正式版 PDF(DOI:10.1145/3789240.3829159),经 MinerU 解析并回看关键 PDF 页面。此前使用的 arXiv v2 题名为 DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference,作者列表更长;两版的主要实验倍数相同,正式版把 §5.1 的高优先级保留带宽改为约 99.9%,并在附录 A.5 增加流量隔离微基准。下文以正式版为准。
问题与动机
预填充和解码分离后,一个智能体回合通常只新增少量输入 token,却要接着很长的历史上下文运行。缓存历史 KV cache 省去了对旧 token 的重复计算;若 HBM 放不下这些状态,系统就从外部存储读回。论文的 64K 上限轨迹平均有 157 回合,每回合已有上下文 32,721 tokens、新增 429 tokens、生成 176 tokens;旧上下文占输入的 98.7%(§3、表 2)。缓存命中率越高,预填充计算越少,读旧 KV 的带宽反而越容易决定速度。
论文考察的机器每台有八块 Hopper GPU、八张与 GPU 配对的 400 Gbps 计算网卡,以及一张连 3FS 的 400 Gbps 存储网卡;两套网络物理隔离(§7.2)。原有路径让预填充引擎(PE)从存储读旧 KV,再把完整提示词 KV 交给解码引擎(DE)。于是 PE 一侧存储网卡繁忙,DE 一侧存储网卡闲置。增加 PE 节点可以扩展存储带宽,但同时改变计算资源配比;DualPath 试图在既有 PE/DE 分配下使用 DE 的闲置存储带宽(§3、图 4)。
关键观察 / 隐含假设
- 长历史、短追加产生高 I/O 与计算比。 64K 轨迹的 98.7% 缓存命中率来自作者的智能体强化学习生产轨迹,三组数据各含 500 条轨迹;表 1 还表明不同模型的 KV 体积与算量之比差很多(§3、§7.2)。该观察依赖高前缀复用。追加或生成变长时,读旧 KV 在总耗时中的占比下降;图 9 对此做了缩放实验。
- 瓶颈分布在节点角色之间。 旧路径只动用 PE 的存储网卡,DE 的存储网卡仍有余量;计算网络中的模型通信则呈亚毫秒级突发,间隙可承载 KV 流量(§3)。这里依赖分离式部署、独立计算网络,以及 DE 网卡确有空闲。若两类流量共用同一物理瓶颈,新增路由可能转移而非消除拥塞。
- 可用带宽受拓扑和服务比例约束。 §4.2 在 GPU 与计算网卡处于同一 PCIe switch、任务均衡、计算网络无拥塞、存储读已饱和等条件下推导可行区间。每台八块 GPU、一张存储网卡,且采用论文给定带宽时,PE 节点数与 DE 节点数之比为
1/7 ≤ P/D ≤ 7/2。这是模型预测的无新增网卡或 DRAM 瓶颈范围,不是任意集群的容量保证。 - 通信优先级必须在硬件数据路径上执行。 模型的 AllToAll 等集合通信会短时占满计算网卡,软件按毫秒调速跟不上;PCIe 本身也缺乏论文所需的 QoS(§5)。该判断依赖可配置虚拟通道的互连和 GPU 配对计算网卡。
核心方法
两条读路径。 两者都先由外部存储返回跨层的完整块,再按层向预填充 GPU 供数。传统 PE 读 路径是“存储 → PE 存储网卡 → PE DRAM 缓冲 → PE HBM”。每层算完后,PE 把命中的旧 KV 和新 token 的 KV 都传到 DE 缓冲区,DE 随后加载进自身 HBM。新增的 DE 读 路径先把旧 KV 从存储读入 DE DRAM,再经计算网卡按层发送给 PE;PE 只把新算出的 KV 送回 DE,旧 KV 已在 DE 缓冲区。DE 最后统一加载完整提示词 KV 并解码(§4.1、图 4)。按层传输让 PE 无需长期在 HBM 驻留完整旧上下文;DE 缓冲区则增加 DRAM 占用和一次 H2D 传输。
网卡管理。 DualPath 把 GPU 的数据传输,包括本地 DRAM 与 HBM 间复制,都引到与 GPU 配对的计算网卡,用 GPUDirect RDMA 执行。这使 GPU 侧的数据流量进入同一套网卡仲裁:模型集合通信走高优先级 InfiniBand 虚拟通道,KV 读写与搬运走低优先级通道;正式版配置给高优先级约 99.9% 的保留份额,给低优先级一小部分防止饥饿,并允许它利用空闲带宽(§5.1)。本地复制也绕计算网卡,是部署代价,不应把“DE 读”理解为免费复用一张闲置网卡。§5.2 报告小块复制的 cudaMemcpyAsync 单次提交约 5–7 μs,RDMA Write 工作请求约 1 μs;两个数字已回看正式版 PDF 第 21 页。
跨引擎调度。 引擎按组向中央调度器取任务,组长汇报未完成请求的 token 量和节点磁盘读取队列。PE 在 FIFO 请求顺序下避开超载引擎,优先选磁盘队列较短且 token 负载较低的引擎;DE 先按组累计 token 量分配,再在组内结合 HBM 余量、请求数与 token 量选引擎。确定 PE/DE 配对后,系统比较双方的存储读取队列,整条请求交给队列较短的一方读取。它目前不会把同一请求拆到两侧并行读取(§6.1)。
组内计算调度。 预填充引擎还要避免数据并行的 attention 阶段出现 GPU 长尾:它用已缓存和待计算 token 数估算每层计算时间,按先进先出顺序塞入批次;即将超过时间配额的请求被切成较小的追加块。这样可以缩小等待慢 GPU 的同步空泡(§6.2、图 6)。这一机制与双路径读缓存分别作用于计算负载与存储负载,消融实验需要分别看。
设计取舍
- 多一条读路径换取 DE 存储带宽。 DE 侧需要 DRAM 缓冲、跨节点 KV 传输及最终 H2D;若网络余量不足或存储网卡并不空闲,收益会被这些额外动作吞掉(§4.1–4.2)。
- 经计算网卡复制换硬件级优先级控制。 所有 GPU I/O 进入计算网卡和 PCIe 路径,减少 KV 流量抢占集合通信的机会;代价是依赖特定 NIC/GPU 拓扑和虚拟通道配置。论文提出 RoCE 可用流量类别类比实现,但实验平台是 InfiniBand(§5)。
- 整请求选路换调度简单。 路径选择只比较两侧读取队列长度,不能在一条长请求内部同时吃满两侧剩余带宽;作者把拆分读取留作后续工作(§6.1)。
- 优先短追加、高复用的工作负载。 对长生成、低缓存命中或计算主导的推理,额外路径仍有成本,性能差距会收缩(§7.3、图 9)。
实验与结果
实验在 3FS 和两套物理隔离网络上进行,使用公开的 DeepSeek V3.2 660B、Qwen2.5-32B,以及作者内部缩小的 DS 27B 模型。默认部署分别为 2P4D、1P2D、1P1D,P/D 表示预填充与解码节点数。三组轨迹上限为 32K、48K、64K,每组 500 条。Basic 是未修改的同一内部推理框架;Oracle 假设磁盘和 KV 搬运没有 I/O 开销;另有 SGLang + HiCache + Mooncake + 3FS 对照,但作者明言跨框架比较不公平,倍数只按 Basic 对 DualPath 计算(§7.1–7.2)。附录 A.3 说明 DeepSeek 模型每节点给 DualPath 80 GB DRAM、Qwen 给 320 GB,SGL(MC) 每节点使用 1.5 TB DRAM;除 SGL(MC) 外,缓存命中限定在同一轨迹内,命中长度由客户端计算。
- 离线整体任务。 随智能体数和最大上下文变化,DS 660B 的任务完成时间(JCT)相对 Basic 最多达到 1.87× 加速;DS 27B 最多达到 1.78× 加速,但仍比 Oracle 慢 1.09–1.85×。SGLang 组合在部分大配置运行出错,对这些点没有可比结果(§7.3、图 7)。
- 资源比例。 DS 27B 的 1P1D、2P1D、1P2D 组合中,DualPath 相对 Basic 平均 1.64×、最高 2.46× 加速;可用存储网卡总数相近的配置呈现接近的 JCT,支持“存储带宽是主要瓶颈”的解释,但这是这些配置下的证据(§7.3、图 8)。
- 在线容量。 请求按泊松过程到达,在
TTFT ≤ 4 s、TPOT ≤ 50 ms的门槛下,最大智能体到达率相对 Basic 分别提高 1.67×(DS 27B)和 2.25×(DS 660B),算术平均 1.96×。TTST 与 TPOT 的对照趋势接近 Basic;图 10 对超过门槛的点作了省略,因此不能用图中剩余点推断任意更高负载都守住 SLO。Qwen 32B 因实验预算未做在线实验(§7.4、图 10)。 - 消融。 在 DS 660B、64K 最大长度、1024/2048 个智能体的离线任务上,逐步加入按层预填充、双路径读取、调度后,JCT 相对 Basic 分别下降 17.21%、38.19%、45.62%。这些数字均以 Basic 为分母,不能相加;加入双路径后的差额是主要收益(§7.5、图 12)。调度还将存储网卡流量的最大值/均值从轮转策略的 1.53 降到 1.18(图 13)。
- 隔离微基准。 正式版附录 A.5 在 EP16 下每端口制造 20 GB/s 低优先级背景流量,DeepEP dispatch 延迟从无背景流量的 131 μs 升到未隔离时的 877 μs;开启虚拟通道隔离后为 141 μs。这支持 §5 的通信保护机制,但属于论文注明未经同行评审的附录材料,且只覆盖该单项负载。
- 扩展规模。 最多 1152 块 GPU。离线 2P4D/2000 智能体耗时 3167 s,48P96D/48000 智能体耗时 3201 s;在线 44P88D 相对 2P4D 的到达率从 0.4 升至 8.8 智能体/s,延迟接近。作者说明尚未调优并行配置和 P/D 比例,所以这些结果不能证明一个大集群比多个等成本小集群更省资源(§7.6、表 3)。
论断—证据表
| 论断 | 证据 | 评测边界 | 置信度 |
|---|---|---|---|
| 智能体推理的旧 KV 读取足以使 PE 存储网卡成为瓶颈 | §3 的轨迹统计;表 1–2;图 8 中等可用存储带宽配置的 JCT 接近 | 作者的高复用轨迹与分离式 3FS 集群 | 中:现象和对照一致,缺少更广工作负载验证 |
| DE 侧读取能提供主要收益 | §7.5、图 12:按层预填充后再加双路径,累计 JCT 降幅由 17.21% 到 38.19% | DS 660B、64K、1024/2048 智能体;Basic 同框架 | 强:有逐项消融,但仅该设置 |
| 在线容量能在指定延迟门槛下提高 | §7.4、图 10:DS 27B 为 1.67×,DS 660B 为 2.25× | 泊松到达;TTFT 4 s、TPOT 50 ms;零工具调用等待 | 中:门槛明确,尾延迟和真实交互间隔未覆盖 |
| 虚拟通道隔离能保护模型通信 | 附录 A.5:20 GB/s 背景流量下 DeepEP dispatch 从 877 μs 降至 141 μs,无背景为 131 μs | EP16 单项微基准;附录注明未经同行评审 | 中:机制证据直接,覆盖范围有限 |
| 扩至千卡规模仍可保持相近单位任务时长 | §7.6、表 3:2000/48000 智能体 JCT 3167/3201 s | 按 24 倍规模放大任务和资源;未做等成本优化 | 中:支持可扩展性,不支持成本效率结论 |
批判性分析
论证链条
论证从轨迹的高缓存命中率出发,定位到 PE 存储网卡负载不均,再以双路径把 DE 存储网卡纳入读取能力。图 8 用“可用网卡数相当的配置有接近 JCT”补强瓶颈归因;图 12 把按层预填充、双路径和调度的贡献分开。两项实验共同支持这条因果链。文中的“存储带宽全局池化”仍须受 §4.2 的拓扑、P/D 比例和计算网络余量约束,不能脱离硬件条件概括。
假设压力测试
图 9 显示追加和生成拉长后,Basic 逐步接近 DualPath;因此在低复用、长输出场景,调度两条读路径未必值得。若 DE 的存储网卡同时承担模型加载、检查点或别的业务,路径选择只看读队列长度也可能低估其他流量。若网络只有一套物理链路,低优先级 KV 搬运可能挤压存储流量;这些是依据路径机制提出的待测问题,论文没有在相应配置下给出结果。
实验可信度
同框架 Basic、Oracle 上界和渐进消融让核心收益较容易归因。另一组 SGLang 对照存在模型支持差异、DRAM 预算差异和部分大配置失败,不能据此判定 DualPath 优于所有开源栈。附录 A.2 说明离线轨迹基于代码修复任务,并通过给已有轨迹加一个随机 token 的合成起始回合扩充;附录 A.3 说明除 SGL(MC) 外,命中长度在客户端计算。这些条件应纳入复现比较。在线轨迹假设回合之间无等待、工具调用耗时为零;§8.2 估算 DS 660B 在 0.1–0.45 智能体/s 时的 KV 工作集为 69–681 GB,并承认真实等待会扩大工作集、降低内存池命中率。在线图省略超过门槛的 TTST/TPOT 点,报告的容量对应预设 TTFT/TPOT 门槛,并未完整覆盖整条智能体任务的尾延迟和工具交互。
系统性缺陷
设计要求 GPU、计算网卡、存储网卡、PCIe switch 和网络 QoS 一起配合;复制本地 DRAM 数据也借助计算网卡。论文给出约 5000 行内部框架改动(§7.1),未提供跨硬件迁移、故障时路径降级、QoS 配置错误的系统性测量。计算网络的高优先级保留比例和各调度阈值需要按真实混合负载校准;论文没有证明一套静态参数适用于不同集群。这里是部署风险推断,不是已观察到的故障。
局限与后续工作
- 版本差异已核对。 当前来源是 SIGCOMM 正式版;旧 arXiv v2 作为版本记录保留。日后引用流量优先级时使用正式版 §5.1 的 99.9%,不要沿用预印本的 99%。
- 路径粒度。 当前一条请求只选 PE 或 DE 一侧读取。可在长上下文请求上比较整请求选路、分块双侧读取的尾部完成时间、额外网络流量与实现成本(§6.1)。
- 资源比例和尾延迟。 作者指出离线 RL 任务前后阶段负载变化大,P/D 比例与并行度需要自适应;可以测量动态比例相对于静态 2P4D 在突发到达下的 P95/P99 TTFT 和重配置成本(§8.1)。
- 真实回合间隔。 加入工具调用和思考等待的分布,测量 KV 工作集、3FS 读量、内存池命中率及在线容量,检验零等待重放是否高估可承载到达率(§8.2)。
相关
- 同会议:SIGCOMM-2026。
- 同类 KV cache I/O:Strata-OSDI26 优化单侧分层存储中的碎片读取与布局;DualPath 利用 PE/DE 两侧存储网卡,并须控制计算网络上的跨侧流量。两者可在不同层次结合。
- 其他状态路径:DirectKV-OSDI26、ECHO-OSDI26 也处理 KV cache 的移动与加载;比较时应分别看数据从何处读、哪段链路成为瓶颈。