DeepSeek DualPath榨干存储带宽:推理吞吐暴力翻倍!


北大清华和DeepSeek团队发现Agentic LLM推理卡在存储带宽上,GPU闲得发慌网卡累成狗。他们搞了个DualPath双路径加载机制,让闲着的那半边网卡也干活,结果吞吐量翻倍,延迟还稳得像老干部喝茶。

现在的智能体那是真智能,自己会调工具、会写代码、会跑Python、会上网查资料,一套操作下来能跟你唠一百多轮。

听起来很牛逼对不对?但问题来了,这一百多轮对话里,它每轮只新增几百个字的回答,但前面九十九轮的聊天记录它都得记住。这就好比你跟一个朋友聊天,你们聊了三天三夜,然后你说了句"刚才那杯奶茶真甜",你朋友得把你们三天聊的所有内容都回忆一遍才能接上话。

GPU现在的处境就像啥呢?
就像你在健身房办了一张顶级VIP年卡,结果每天去就是排队等厕所。
GPU在那儿闲得抠脚,真正累趴下的是谁?
是负责搬数据的网卡和存储系统。

北大、清华和DeepSeek-AI这帮人搞了个论文叫DualPath,就讲这个事。他们的核心发现特别简单粗暴:现在的Agentic LLM推理系统里,KV-Cache命中率高达98.7%。啥意思?就是说一百轮对话里,有98.7轮的数据都是直接从缓存里读的,真正需要重新算的只有那1.3%。

你们感受一下这个比例。相当于你每天上班只需要干1.3分钟的正事,剩下7小时58分钟都是在从档案室翻你以前的材料。GPU这算力怪兽被活生生逼成了档案管理员助理。

Agentic这个坑挖得有多大呢 三个万Token起步那种

咱们先把技术底裤扒开看一眼。现在大模型推理主流玩法叫PD-disaggregation,翻译成人话就是把干活流程拆成两段:
预填充Pre-fill负责把用户的问题完整跑一遍,先理解你说了啥;
Decode负责一个字一个字往外蹦答案。

这两段中间要传递一种叫KV-Cache的东西,简单理解就是模型对前面所有对话的记忆快照。

问题在于这个记忆快照太大了。一个三万Token的对话,KV-Cache往少了说也得几十GB。GPU自己的显存放不下,连CPU的内存也够呛,最后只能扔到SSD或者分布式存储里。

然后每轮对话开始的时候,系统就得吭哧吭哧从存储里把这几十GB的数据再读回来。GPU就蹲在那儿等着,像极了饭点等外卖的你,外卖小哥堵在路上,你饿得能把自己消化了。

论文里有个特别扎心的数字叫cache-compute ratio,他们用DeepSeek-V3.2测出来是22 GB/PFLOP。啥概念?就是你每做一个单位的计算,就得搬22个GB的数据。这就像你去饭店吃饭,点了一份蛋炒饭,结果服务员先给你搬了一箱矿泉水让你喝完才能吃炒饭。

更绝望的是啥?GPU的算力从Ampere到Blackwell涨了多少倍?那叫一个飞起。但是网络带宽呢?涨得像个骑共享单车的。两条曲线一对比,算力是马斯克的火箭,带宽是小区门口的三轮车。

结果就是GPU利用率只有可怜的40%左右。不是因为它算得慢,是因为它大部分时间在等数据。就像你请了个米其林大厨,结果厨房配菜员每天只送一颗白菜,大厨一天切白菜切了八小时,你说这叫什么事。

PD架构的惊天bug 一边网卡炸了另一边在摸鱼

现在的大厂AI数据中心长啥样?比如NVIDIA的DGX SuperPOD,每台机器配两张网。一张叫CNIC,负责计算通信,就是GPU之间互相传数据用的。另一张叫SNIC,负责跟存储系统打招呼,读写数据用的。两张网物理隔离,井水不犯河水。

PD架构一跑起来,事情就变得很搞笑。所有KV-Cache的读取请求全走Prefill那张SNIC,因为只有Prefill需要历史数据。Decode那边呢?它只管往外蹦字,根本不需要读存储,所以它的SNIC闲得能长出蘑菇来。

这就好比你开了一家奶茶店,雇了两个店员。一个负责接单,一个负责做奶茶。结果接单的那个柜台前排了一百号人,做奶茶的那个闲得数珍珠玩。你老板在旁边急得直跺脚,但你就是没法让做奶茶的帮你接个单,因为两个柜台隔着一堵墙。

系统总带宽明明够用,但用不起来的感受就像啥?就像你有两张银行卡,每张里各有一百万,但ATM机只允许你用一张卡取钱,每次最多取两千。

DualPath这波操作属实是卡bug界的诺贝尔奖

这帮研究人员的思路特别简单粗暴:既然Decode那边的网卡闲得长草,为啥不让它也帮忙读数据?

就这么一句话,整个架构的天灵盖被掀开了。

传统路径是:存储 -> Prefill -> Decode。就是存储先把KV-Cache喂给Prefill,Prefill算完再把结果传给Decode。

DualPath新增了一条路径:存储 -> Decode -> Prefill。Decode先从存储读KV-Cache到自己内存,然后通过RDMA这条高速通道直接扔给Prefill。
RDMA是啥?就是GPU之间抄近道传数据的技术,不走CPU那条慢车道。
这样一来,两张SNIC都开始干活了。就像你家两个水龙头一起开,然后通过一根粗管子把水汇到一个水箱里,灌水速度直接翻倍。

DualPath也不是所有请求都走新路,它像个聪明的交通指挥,根据实时路况决定每辆车走老路还是新路。有的请求走Prefill读,有的走Decode读,灵活切换,绝不堵车。

这事不是拍脑袋想出来的 数学证明它真的能跑通

论文第四节给了一套完整的带宽分析,就是证明这事在数学上真的成立,不是瞎折腾。

假设每台机器装8个GPU,配1个存储NIC,带宽大概50GB/s,DRAM大概500GB/s。他们推导出一个无瓶颈区间:1/7 ≤ P/D ≤ 7/2。P是Prefill节点数,D是Decode节点数。翻译成人话就是,只要Prefill和Decode的比例控制在这个范围内,系统就能把所有存储NIC的带宽榨干,同时不会把计算NIC和内存压爆。

这个推导的意义太大了。它说明DualPath不是那种"我感觉这样会更快"的野路子优化,而是有严格数学边界保证的架构设计。

现实世界大多数部署场景都落在这个区间里,也就是说DualPath能在不引入新瓶颈的前提下,把所有存储带宽全部用上。
这时候GPU的感受就是:终于不用等外卖了,外卖直接往嘴里倒。

工程细节才是真功夫 网卡优先级得安排明白

但问题又来了。Decode帮忙读数据,然后通过RDMA发给Prefill,这些流量会不会影响模型内部正常的通信?比如AllToAll、ReduceScatter这些正经活。

论文第五节给了硬核解决方案。他们搞了个CNIC-centric数据路径,所有GPU数据进出都必须走配对的Compute NIC,用GPUDirect RDMA技术。然后利用InfiniBand网络的Virtual Lane做流量隔离。

Virtual Lane是啥?就是网络里划出几条虚拟车道。模型推理通信走优先级最高的车道,占99%带宽,谁敢挡路就撞谁。KV-Cache传输走优先级最低的车道,只吃剩下的那1%带宽,像收破烂的一样,人家扔了它才捡。

这样模型执行的通信永远优先级最高,KV-Cache传输永远只吃剩饭剩菜。既保证了性能,又利用上了闲置资源。

作者实测的数据也很硬核。cudaMemcpyAsync单次拷贝延迟5到7微秒,RDMA Write只需要大概1微秒,还支持doorbell batching,就是一次性按很多门铃,减少打扰次数。

这已经不是改改参数就能搞定的优化了,这是从硬件到网络栈从头到尾重写了一遍。

调度算法才是真正的幕后黑手

双路径有了,硬件搞定了,接下来问题来了:谁来决定走哪条路?

系统需要一个智能的调度器,实时判断每个请求是走Prefill读路径,还是走Decode读路径。

调度器看三个指标:

  • 每个引擎还有多少请求没处理完
  • 总共有多少Token要算
  • 节点的磁盘读取队列排了多长

Token数量被当作负载代理,因为Token越多,算得越慢。目标是让GPU利用率和NIC流量两边都平衡,不能一边撑死一边饿死。

调度分两层:

第一层叫Inter-engine调度,决定每个请求分配到哪对PE-DE,以及走哪条路径。就像滴滴派单,得看哪个司机离得近,哪个路线不堵车。

第二层叫Intra-engine调度,决定每个forward batch里放哪些请求,谁先谁后。

这是一个双维度负载均衡系统,既看算力负载,又看带宽负载。

如果调度策略粗糙,系统就会慢慢偏向单一路径,带宽又会失衡。所以调度算法本身才是DualPath性能能否兑现的关键。就像你有了两条高速公路,还得有聪明的收费站,知道什么时候放多少车上路。

数据证明这次真的没吹牛

实验是在真实Agentic负载上跑的。结果什么样?离线推理吞吐最高提升了1.87倍,在线服务吞吐平均提升了1.96倍,也就是将近两倍。

更重要的是啥?TTFT,就是第一个Token的响应时间,没有变差。Token之间的延迟也保持稳定,SLO服务等级协议没有被破坏。

这说明啥?说明这个优化不是用延迟换吞吐,不是那种"挤一挤总能快一点"的野路子,而是真正把闲置资源用起来了,让系统从40%的利用率提升到80%左右。

就像你原本每天只工作三小时,现在能工作六小时,但工资翻倍了,人也精神了。

这事背后的信号 算力神话破灭 存储成为新王

DualPath这篇论文真正的价值,不只是1.87倍的性能提升,而是一个深刻的趋势判断:

在Agentic LLM时代,推理系统的瓶颈已经从计算,转移到了IO。

以前大家拼的是Tensor Core怎么调度,CUDA核怎么优化,算子怎么融合。现在拼的是KV-Cache怎么存、怎么传、怎么调度。

算力依然重要,但IO决定了天花板。

DualPath的思想可以推广到很多地方:

  • 分布式缓存怎么设计
  • 分层存储怎么搞
  • 大规模在线服务怎么调度
  • 强化学习的Rollout阶段怎么加速

特别是在内存受限的场景里,如果你没法用Mooncake这类内存池把所有KV-Cache都缓存起来,DualPath就是一条成本更低的替代路径。

最后的总结 当存储成了亲爹 架构就得改姓

这篇论文做了一件很工程化却极具战略价值的事:

  • 承认IO才是亲爹
  • 重新设计了数据应该怎么流
  • 把闲置资源全部利用起来
  • 用QoS隔离保护核心通信
  • 用调度算法把系统变成一个整体

从存储单路径,到DualPath双路径,本质上是从单点瓶颈,进化成了可调度的资源池。

在Agentic LLM推理这个新范式下,这种思路具有长期意义。就像你原来只需要管好一个水龙头,现在得管好整个小区的水泵、管道、阀门和水表。

最后说一句题外话。北大、清华和DeepSeek-AI这帮人,是真的懂生产级系统的人。他们不是那种只会调参的炼丹师,也不是只会写论文的纸上谈兵派。他们既懂理论推导,又懂硬件架构,还懂工程实现。这种三栖选手,才是真正能推动AI基础设施进化的人。