product 02 · data side
存算协同
让卡别等数据。卡没有停,也不报错,但吞吐上不去 —— 这一段的瓶颈通常不在卡上。
数据面优先先接数据面,不动计算面
基线先行不承诺没量过的数字
不替换现有存储在现有栈上做,不是推倒重来
可分步实施一次改造不到位,风险更低
01
卡在等的时候,发生了什么
训练任务的每一轮,数据要先过三道关才轮到 GPU 干活。任何一关慢了,卡就在原地等。
01
第一关 · 把数据喂进来
并行存储的带宽与延迟。多卡同时读同一批数据时,这一关最先撑不住。
02
第二关 · 把上下文留住
KV Cache 的命中与复用。长上下文场景下,缓存不命中就要重算,卡白等。
03
第三关 · 让卡别互相等
调度与并行策略。一张卡慢,整个通信组跟着等 —— 这就是「同型离群」的代价。
02
四个手段
| 手段 | 解决哪一关 |
|---|---|
| 并行存储 | 第一关 —— 提高多卡并发读的带宽,降低尾延迟 |
| 分层缓存 | 第二关 —— 全闪与混闪分层,把热数据放在够快的地方 |
| KV Cache 复用 | 第二关 —— 命中即省,长上下文不必重算 |
| 调度与并行调优 | 第三关 —— 减少互相等待,让慢卡不拖累整组 |
03
怎么验证有没有用
不看宣传数字,看四个能自己量的数。改造前后各测一遍,结论自己下。
利用率卡真正在算的时间占比
上下文长度同样显存能撑多长
并发同样的卡能同时服务多少路
Checkpoint 时间存一次要多久 —— 直接决定训练效率
04
什么情况下帮不了你
卡本身不够
显存、算力不够,是换卡的问题,不是数据面的问题。
模型没优化、代码没并行
先把这三样排掉,否则改完数据面也提不上去。
单机、小规模
存算协同解决的是「规模化之后」的瓶颈,几台机器通常用不上。
想让我们替换现有存储
不替换。在现有栈上做,先把数据面接上。