← 返回 2026-02-26

DualPath:打破智能体LLM推理中的存储带宽瓶颈 DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference

Yongtong Wu, Shaoyuan Chen, Yinmin Zhong, Rilin Huang, Yixuan Tan, Wentao Zhang, Liyue Zhang, Shangyan Zhou, Yuxuan Liu, Shunfeng Zhou, Mingxing Zhang, Xin Jin, Panpan Huang 📅 2026-02-25 👍 56 2026-07-13 08:35
KV-Cache管理 LLM推理优化 PD分离架构 分布式系统 智能体推理

通过双路径KV-Cache加载,聚合所有引擎的存储带宽,打破智能体推理的I/O瓶颈

前置知识

PD分离架构(Prefill-Decode Disaggregation)

现代LLM推理系统的主流架构,将预填充(prefill)阶段和解码(decode)阶段分离到不同的GPU引擎上执行。预填充阶段处理完整的用户输入,计算密集但可高度批处理;解码阶段逐token生成响应,内存访问密集且对延迟敏感。两个阶段分别由预填充引擎(PE)和解码引擎(DE)负责,通过RDMA网络传输KV-Cache。这种分离使得每个阶段可以采用独立的并行策略和硬件配置,避免相互干扰。

DualPath正是在PD分离架构的基础上提出优化,理解PE和DE的角色分工是理解本文核心创新的前提。

KV-Cache(键值缓存)

Transformer模型在注意力机制中计算得到的Key和Value张量。由于自回归解码的特性,每生成一个新token都需要与之前所有token的Key和Value做注意力计算,因此将历史token的K/V缓存下来可以避免重复计算。在智能体推理中,由于多轮对话的上下文大部分被复用(通常≥95%的token被命中),KV-Cache的加载效率直接决定了系统性能。

KV-Cache是本文的核心研究对象,其存储、加载和传输效率是整个系统的性能瓶颈所在。

存储NIC(SNIC)与计算NIC(CNIC)

在现代AI数据中心(如NVIDIA DGX SuperPOD)中,每个GPU节点配备两种网络接口卡。计算NIC(CNIC,也称东西向NIC)连接到高速InfiniBand/RoCE网络,用于GPU间的模型推理通信(如AllToAll、AllGather等集合通信),带宽通常为400Gbps。存储NIC(SNIC,也称南北向NIC)连接到分布式存储系统(如3FS),用于读写KV-Cache、数据集和模型检查点,带宽同样可达400Gbps。两种网络物理隔离,互不干扰。

DualPath的核心洞察就是发现SNIC在PE和DE之间存在严重的利用不均衡,而CNIC网络有大量空闲带宽可以被借用。

Layerwise Prefill(逐层预填充)

一种优化长上下文预填充的技术,由LayerKV和PrefillOnly等工作提出。传统预填充需要将整个序列的KV-Cache同时加载到GPU的HBM中,限制了批处理大小。Layerwise prefill利用注意力计算的逐层特性:每一层只需要该层对应的KV-Cache,因此可以在层间动态加载和释放KV-Cache,将有效批处理大小提升约等于模型层数的倍数,显著提高GPU利用率。

DualPath采用了layerwise prefill技术来解决HBM容量瓶颈,这是其技术栈的重要组成部分。

智能体推理工作负载(Agentic Workload)

LLM作为智能体与环境交互的推理模式。典型模式是模型接收工具输出(如代码执行结果、网页内容)后生成下一步动作,如此循环数十甚至数百轮。每轮交互的append tokens通常很短(平均约429个),但上下文会持续累积到极长(可达数十万token),导致KV-Cache命中率极高(≥95%)。这种工作负载的特点是:长上下文、短追加、高缓存命中率,使得I/O效率远比计算效率更重要。

智能体工作负载是本文要解决的核心场景,其独特的I/O密集特性是DualPath设计的出发点。

研究动机

在智能体LLM推理场景下,PD分离架构面临严重的存储带宽利用不均衡问题。具体来说,预填充引擎(PE)必须从远程存储加载大量KV-Cache,其存储NIC持续处于带宽饱和状态;而解码引擎(DE)的存储NIC则长期空闲。作者通过生产环境的trace分析发现,智能体推理的平均交互轮数为157轮,平均上下文长度为32.7k tokens,平均每轮追加长度仅429 tokens,KV-Cache命中率高达98.7%。以DeepSeek-V3.2 660B模型为例,cache-compute ratio(KV-Cache加载量与计算量的比值)约为22 GB/PFLOP,这意味着存储带宽而非GPU计算能力成为系统的真正瓶颈。同时,从NVIDIA Ampere到Blackwell架构,I/O与计算的比值下降了14.4倍,网络带宽和HBM容量的增长远落后于GPU FLOPS的增长,使得这一问题在未来会更加严重。

本文的目标是本文的具体目标是打破智能体LLM推理中预填充侧的存储I/O瓶颈,通过聚合所有引擎(包括闲置的解码引擎)的存储NIC带宽来提升整体系统吞吐量。量化目标包括:在离线推理场景下提升吞吐量,在在线服务场景下在不违反SLO(TTFT≤4秒,TPOT≤50ms)的前提下提高每秒处理的智能体请求数(APS)。

与已有工作不同的是,本文的独特切入点在于观察到现有系统存在一个根本性的设计缺陷:KV-Cache的加载路径是单向的,只能从存储直接加载到预填充引擎。这种单路径设计导致存储NIC带宽在PE和DE之间严重失衡。此前的工作(如Mooncake)通过分布式DRAM缓存池来提高缓存命中率,但在内存受限场景(如RL训练的rollout阶段)和超大工作集场景下不适用;其他工作(如KVPR、TailorKV)通过减少KV-Cache数据量或优化单路径I/O来缓解瓶颈,但都没有从根本上解决存储带宽利用不均衡的问题。DualPath的洞察是:解码引擎的存储NIC带宽是现成可用的资源,只需要设计一种机制来安全高效地利用它。

核心方法

DualPath的设计直觉可以用一个简单的类比来理解:想象一条高速公路(存储NIC带宽)只有单向车道(存储→PE),大量车辆(KV-Cache数据)在入口排队,而旁边还有一条完全空闲的车道(存储→DE)。DualPath的核心思路就是开辟第二条车道,让部分车辆先驶入空闲车道,再通过另一条更快的高速公路(计算网络的RDMA)到达目的地。技术路线上,DualPath在传统存储→PE路径之外,引入了一条新的存储→DE→PE路径。KV-Cache先加载到解码引擎的DRAM缓冲区,然后通过计算网络的RDMA传输到预填充引擎。系统通过一个全局调度器动态地将请求分配到两条路径上,从而聚合所有引擎的存储NIC带宽,消除预填充侧的带宽瓶颈。

DualPath的核心创新在于一个深刻的观察:在PD分离架构中,KV-Cache的加载不必以预填充为中心。现有系统总是将KV-Cache从存储直接加载到预填充引擎,完全忽略了存储→解码引擎这条可用路径。DualPath引入的双路径加载架构(dual-path KV-Cache loading)本质上是将存储I/O从单一瓶颈资源转变为全局可调度的聚合容量。与已有方法的根本区别在于:Mooncake等方法试图通过增加缓存层级(DRAM池)来减少存储访问,而DualPath则是重新设计数据路径本身,直接聚合所有存储NIC带宽。这种方法不需要额外的硬件资源,也不需要改变存储后端,只需要巧妙地利用已有的计算网络RDMA能力来完成解码引擎到预填充引擎的数据传输。

方法步骤详情

DualPath的完整工作流程分为以下几个关键步骤:第一,系统为每个PE和DE分配少量DRAM作为缓冲区(PE Buffer和DE Buffer)。第二,对于PE Read路径(传统路径),KV-Cache从持久化存储读取到PE Buffer(步骤1-2),然后逐层传输到PE HBM进行注意力计算(步骤3-4),计算完成后将命中和未命中token的KV-Cache一起传输到DE Buffer(步骤5-7),这个过程重复$n_{layer}$次,传输与计算重叠。第三,对于DE Read路径(新路径),KV-Cache先从存储读取到DE Buffer(步骤1-2),在PE预填充期间,DE Buffer中的KV-Cache逐层传输到PE HBM(步骤3-5),同样与计算重叠。第四,两条路径都需要在解码阶段将完整的KV-Cache从Buffer传输到DE的HBM(步骤8-9)。第五,调度器根据各引擎的负载情况(token数、存储读取队列长度)动态选择每条请求的读取路径。系统还采用了CNIC辅助的数据传输方案:所有GPU的H2D/D2H数据都通过CNIC完成,利用InfiniBand的虚拟通道(VL)机制进行流量隔离,确保KV-Cache传输不影响模型推理的延迟关键通信。

技术新颖性

DualPath的技术新颖性体现在三个层面。首先是架构层面的创新:首次提出双路径KV-Cache加载的概念,打破了KV-Cache必须从存储直接加载到预填充引擎的隐含假设。此前所有工作(包括Mooncake、Strata、KVPR等)都是在单路径框架内优化,要么优化缓存层级,要么优化单路径的传输效率。其次是流量管理的创新:CNIC-centric的流量管理方案将所有GPU数据传输统一经过计算NIC,利用InfiniBand的VL机制实现99%的带宽分配给高优先级推理通信,剩余1%用于KV-Cache传输。这种设计既保证了推理性能不受影响,又允许KV-Cache传输机会性地利用空闲带宽。第三是调度算法的创新:多层级调度算法(inter-engine和intra-engine)同时考虑NIC流量平衡和GPU计算平衡,通过token数作为代理指标进行负载均衡,实现了存储NIC流量Max/Avg比从1.53降低到1.18的显著改善。

双路径加载示意图
Figure 4: 双路径加载示意图

实验结果

论文在三个模型(DeepSeek V3.2 660B、DS 27B、Qwen 32B)和真实智能体工作负载上进行了全面评估。离线推理实验表明,DualPath在DS 660B上实现了最高1.87倍的吞吐量提升(相比Basic基线),在DS 27B上最高1.78倍,在Qwen 32B上也有类似趋势。消融实验显示,layerwise prefill平均降低17.21%的JCT,双路径加载在此基础上进一步降低38.19%,加上调度算法总共降低45.62%的JCT,证明双路径加载是性能提升的主要贡献者。在线服务实验中,DualPath在DS 660B上实现了2.25倍的APS容量提升(从Basic的不足0.3提升到0.675),在DS 27B上为1.67倍,且TTST和TPOT与Basic相当,证明双路径加载没有引入额外的解码开销。不同预填充-解码比例的实验验证了存储带宽是主导瓶颈:Basic 1P1D与Basic 1P2D性能相当,而DualPath 1P1D与Basic 2P1D性能相当,因为DualPath能利用所有节点的存储带宽。大规模实验(48P96D,1152 GPUs)展示了接近线性的扩展性:从2P4D(2K agents)到48P96D(48K agents),JCT基本保持不变(3,167s vs 3,201s)。在线服务的大规模配置(44P88D)实现了22倍的吞吐量提升(8.8 vs 0.4 APS),同时保持相似的延迟特性。调度器的CPU使用始终低于10个核心,证明不是系统瓶颈。

不同上下文长度下(16k-64k)的cache-compute ratio,追加长度429
Table 1: 不同上下文长度下(16k-64k)的cache-compute ratio,追加长度429
智能体trace数据集统计
Table 2: 智能体trace数据集统计
大规模实验结果
Table 3: 大规模实验结果
不同智能体数量和最大上下文长度下的离线推理性能
Figure 7: 不同智能体数量和最大上下文长度下的离线推理性能
左:在线服务TTFT分解;右:离线推理消融实验结果
Figure 12: 左:在线服务TTFT分解;右:离线推理消融实验结果
存储NIC流量负载均衡
Figure 13: 存储NIC流量负载均衡
查看结构化数据
任务指标本文基线提升
离线推理吞吐量(DS 660B,64K上下文) JCT加速比 最高1.87× Basic(内部推理框架) 最高87%提升
离线推理吞吐量(DS 27B,64K上下文) JCT加速比 最高1.78× Basic 最高78%提升
在线服务容量(DS 660B) APS(agents per second) 0.675 APS Basic ~0.3 APS 2.25×
在线服务容量(DS 27B) APS 约0.6 APS Basic ~0.36 APS 1.67×
大规模在线服务(DS 660B,44P88D) APS 8.8 APS SGL(MC) 0.4 APS 22×
存储NIC负载均衡 Max/Avg流量比 1.18 Round Robin 1.53 改善23%

局限与改进

论文在实验评估中也暴露了一些局限性。首先,SGL(MC)基线在某些大配置下遇到了错误无法完成测试(在图中标记为N/A),这使得与开源系统的对比不够完整。其次,对于DS 27B这样的小模型,Basic和DualPath的TPOT都显著高于Oracle配置,说明P-D传输的基本开销在小模型场景下仍然不可忽视,这是一个需要进一步优化的问题。第三,大规模实验(48P96D)由于缺乏精细调优的并行度和P/D比例设置,未能展示相比多个等成本小规模单元的额外JCT或服务容量优势,说明系统的自动配置能力还有提升空间。第四,论文的评估假设存储读取带宽可以被完全利用、计算网络无拥塞,这些假设在生产环境中可能不总是成立。第五,工作集分析表明,当考虑实际的工具调用延迟和请求间隔时,工作集可能膨胀$r^2$倍,这会超出可用内存并降低DRAM缓存池的命中率,但论文未能在大规模工作集下进行充分验证。

独立分析的弱点

基于对论文的深入分析,我识别出以下几个主要弱点。第一,调度算法的粒度仍然较粗。当前调度以请求为单位选择读取路径,但论文也提到未来可以将请求拆分为两部分分别从PE和DE读取。在异构工作负载下,这种细粒度调度可能带来显著的性能提升,但实现复杂度也大幅增加。第二,CNIC-centric的流量管理方案虽然有效,但本质上是一个"绕路"设计——KV-Cache本可以通过GPUDirect Storage直接加载到GPU HBM,现在却要先经过CNIC再到DRAM再到GPU,增加了延迟。论文测量显示单次RDMA Write的提交开销约1μs,远低于cudaMemcpyAsync的5-7μs,但这只是提交开销,实际传输延迟可能更高。第三,当前设计对预填充-解码比例有一定约束(公式9的bottleneck-free范围),在极端配置下可能无法保证无瓶颈。第四,论文未充分讨论故障恢复机制——如果解码引擎在KV-Cache传输过程中故障,如何保证数据一致性?

未来方向

论文作者提出了几个重要的未来研究方向。首先,更自适应和灵活的并行度及P/D比例配置机制是迫切需要的,可以考虑使用模拟器或在线调整机制来自动寻找最优配置。其次,调度算法仍有改进空间,特别是在大规模部署下降低TTFT尾部延迟。第三,将请求拆分从PE和DE同时读取的细粒度调度策略。基于论文成果还可以延伸以下方向:将DualPath与分布式DRAM缓存池(如Mooncake)结合,虽然论文提到收益有限,但在混合工作负载下可能有不同表现;将双路径思想推广到其他I/O密集型场景,如模型检查点的读写、训练数据的加载等;探索在RoCE和Ultra Ethernet等新兴网络技术上的优化实现。

复现评估

论文基于DeepSeek-AI的内部推理框架实现,约有5000行代码修改,但未开源。实验在配备8张NVIDIA Hopper GPU和InfiniBand互联的集群上进行,使用3FS作为分布式存储后端。模型方面,DS 660B和Qwen 32B使用公开的HuggingFace检查点,DS 27B是内部实验模型。数据集使用从生产环境收集的智能体trace,每组500条轨迹。对于复现者来说,主要挑战包括:需要高性能InfiniBand集群(8×400Gbps CNIC + 1×400Gbps SNIC per node);需要3FS或同等性能的分布式存储系统;需要支持EP并行和DeepGEMM等CUDA kernel的推理框架。好消息是,DualPath的核心思想(双路径加载、CNIC流量管理、负载均衡调度)是通用的,可以在其他推理框架上重新实现,但需要相当的系统工程投入。