DualPath:打破智能体LLM推理中的存储带宽瓶颈 DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference
通过双路径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的显著改善。
实验结果
论文在三个模型(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个核心,证明不是系统瓶颈。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 离线推理吞吐量(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流量管理、负载均衡调度)是通用的,可以在其他推理框架上重新实现,但需要相当的系统工程投入。
论文图表
左侧展示了现有PD分离架构中,存储NIC带宽全部集中在预填充引擎(Prefill),存储带宽100%被利用,而解码引擎(Decode)的存储NIC完全空闲。右侧展示了DualPath的设计,通过双路径加载,存储同时连接到Prefill和Decode引擎,两者都能利用存储带宽,从而聚合所有引擎的I/O能力。
这张图直观地展示了论文要解决的核心问题(带宽利用不均衡)和解决方案(双路径加载),是理解全文的起点。
左侧图展示了从2020年到2024年NVIDIA GPU的硬件趋势:GPU算力(FLOPS)增长了9倍,但NIC带宽和HBM带宽仅增长1-2倍,PCIe带宽增长2倍,I/O与计算的比值持续下降。右侧图展示了在30K上下文、300 tokens追加的请求中,随着批处理大小增加,GPU算力利用率可以达到28.8倍,但NIC带宽利用率仅为1.2倍,HBM容量利用率为1.6倍,说明NIC和HBM成为瓶颈。
这张图从硬件发展趋势的角度解释了为什么I/O瓶颈问题在未来会更加严重,为DualPath的设计提供了宏观背景。