凌晨三点的机房,风扇声像暴雨。训练集群的 GPU 利用率突然掉到 15%,工程师盯着监控屏发呆:卡没坏,网没断,但数据就是送不上来。
这就是典型的“饿死”现象。算法再精妙,如果喂不饱,也是白搭。
很多团队把 PB 级的图片、视频扔进对象存储,就以为建好了数据湖。其实那只是个巨大的垃圾堆。当卷积神经网络 (CNN) 开始疯狂读取小文件时,元数据查询的压力会瞬间打爆存储网关。
真正的瓶颈不在带宽,而在 IOPS(每秒读写次数)。
想象一下,你要从图书馆借一百万本书,每次只借一页。哪怕图书馆再大,你也得跑断腿。解决思路很简单:把零散的小图打包成 TFRecord 或 WebDataset 这种大块顺序文件。让硬盘从头读到尾,而不是满磁盘乱跳。
只有把随机读变成顺序读,数据湖才能真正变成高速输油管,而不是堵塞的下水道。
现在的AI 芯片,算力过剩是常态,内存带宽才是短板。
以训练 ResNet-50 为例,GPU 计算一个批次可能只需要几毫秒,但从内存加载数据却要几十毫秒。这时候,芯片大部分时间都在“空转”等待。这就好比法拉利堵在早高峰的二环上,引擎再好也跑不起来。
为了扛住这种压力,硬件厂商开始搞异构计算。有的在芯片旁边直接挂载 HBM(高带宽内存),有的则通过 NVLink 把多张卡连成一张超级网卡。

但硬件只是基础。如果软件层面不做优化,再贵的卡也只能发挥三成性能。
记住:数据预处理必须卸载到 CPU 或专用加速卡上,别让 GPU 干解压图片这种脏活累活。
我们见过太多项目,预算全砸在买卡上,结果训练速度慢如蜗牛。原因往往很荒谬:网络拓扑没设计好,或者数据格式没转换。
在实际工程中,有几个坑特别容易踩:
解决这些问题,不需要换更贵的芯片,只需要重构数据加载器(DataLoader)。比如采用预取机制(Prefetching),让 CPU 提前准备好下一个批次的数据,等 GPU 算完当前批次,新数据已经躺在内存里等着了。
这套组合拳打下来,训练效率通常能提升 30% 以上。这比单纯加卡划算得多。
最后,别盯着理论峰值算力看。那是广告数字。你要看的是实际训练中的吞吐量曲线。如果曲线平稳且高位运行,说明你的数据湖和 AI 芯片配合得当。如果曲线像心电图一样剧烈波动,那就去查查 IO 日志吧。
毕竟,吃饱了,才能干活。
