AI训练对计算资源的消耗是出了名的大。动辄几十张甚至上百张GPU组成的训练集群,每轮训练跑上几天甚至几周,算力成本和时间成本都非常可观。在这种背景下,任何能够缩短训练时间的技术都备受关注。DPU作为网络和存储加速硬件,在AI训练中能发挥什么作用?这篇文章从AI训练的数据瓶颈问题出发,分析紫金DPU在训练过程中的实际加速效果。
AI训练的数据瓶颈
AI训练看起来是GPU的舞台,但实际上训练效率不只取决于GPU的算力。一个完整的训练步骤包括:从存储系统读取训练数据、通过网络将数据分发给各个GPU节点、GPU执行前向和反向传播计算、梯度通过网络进行节点间同步、更新模型参数。整个过程是计算和通信交替进行的。
当GPU数量较少时,计算是瓶颈,通信占比不大。但当GPU规模扩大到几十张甚至上百张时,节点之间的梯度同步通信量急剧增加。在大模型训练中,每次迭代都需要在所有GPU之间同步梯度数据,通信数据量可能达到几百MB甚至几GB。如果网络延迟高、带宽不足,GPU会花大量时间等待数据到达,形成通信瓶颈。
除了通信瓶颈,数据加载也是一个问题。训练数据通常存储在远端分布式存储系统中,每个训练批次需要从存储读取一批数据到GPU内存。如果存储IO延迟高,GPU就会在等待数据时空转,浪费宝贵的计算时间。
这就是紫金DPU发挥作用的地方。DPU同时加速网络通信和存储IO两个维度,正好对应了AI训练中的两个主要数据瓶颈。
通信加速效果
在大规模分布式训练中,GPU节点间的梯度同步通常使用集合通信库来实现。集合通信涉及多对多的数据传输,对网络延迟和带宽都有很高要求。
在没有DPU加速的情况下,网络协议栈处理开销会增加通信延迟。以100Gbps网络为例,纯硬件转发的延迟在微秒级,但经过CPU上的软件协议栈后,延迟会增加到几十微秒甚至上百微秒。在大规模集合通信中,每次通信都要经过协议栈,累积起来的延迟开销不可忽视。
紫金DPU将网络协议栈处理卸载到硬件上,通信路径从"GPU→CPU内存→协议栈→网卡→远端"缩短为"GPU→DPU→远端",减少了中间环节。在实测中,两台配置紫金DPU的服务器之间,点对点通信延迟比无DPU配置降低了约40%。在大规模集合通信操作中,这个延迟降低的累积效果更加明显,因为集合通信涉及多轮数据交换,每轮省下的延迟会叠加。
带宽方面,DPU的硬件转发可以更充分地利用网络带宽。在无DPU的情况下,CPU协议栈处理能力跟不上100Gbps网络的线速,实际可用带宽可能只有理论值的60%到70%。有DPU的情况下,硬件转发可以接近线速,带宽利用率提升到90%以上。这意味着同样的网络硬件投入下,训练集群的有效通信带宽更高。
存储加速效果
训练数据的加载是另一个影响训练效率的环节。每个训练步骤都需要从存储系统读取一个批次的数据,数据量取决于模型输入大小和批次大小。对于图像训练,一个批次可能是几百张高分辨率图片;对于自然语言处理,一个批次可能是数百万个token的文本数据。
在传统架构下,数据从存储系统到GPU要经过:存储节点→网络→CPU协议栈→CPU内存→GPU互联总线→GPU显存。这条路径中的网络协议栈和CPU内存中转是DPU可以优化的环节。
紫金DPU加速了网络层的数据传输,同时通过存储卸载功能减少了数据在内核态和用户态之间的拷贝。实测中,训练数据的加载延迟降低了约25%到35%,具体取决于数据大小和存储系统类型。对于小文件密集读取的场景(如大量小图片),提升幅度偏向高值;对于大块连续读取的场景(如大文件),提升幅度略低但仍然明显。
综合训练效率
通信和存储两方面的加速叠加起来,对整体训练效率的影响有多大?这取决于训练模型和集群规模。
在中等规模训练集群(8到16张GPU)上跑中等规模模型时,通信和存储在训练时间中的占比不算特别高,DPU加速带来的端到端训练时间缩短大约在10%到15%。这个幅度看似不大,但换算到实际训练时间上,一次本来需要7天的训练可以缩短到6天左右,节省的时间和算力成本相当可观。
在大规模训练集群(32张以上GPU)上跑大模型时,通信占比大幅提高,DPU的加速效果更加显著。端到端训练时间缩短可以达到20%到30%。在这种规模下,DPU不只是锦上添花,而是成为了训练效率的关键保障。
值得一提的是,DPU对训练稳定性的贡献也不容忽视。在无DPU的高负载训练中,CPU满载可能导致网络通信延迟波动,进而触发集合通信超时,训练任务可能因此中断。DPU将网络处理与CPU负载解耦,即使CPU在高负载下,网络通信仍然稳定,减少了因通信波动导致的训练中断风险。
综合来看,紫金DPU在AI训练中的加速效果是实在的,尤其在大规模集群和大模型训练场景下,价值更加突出。对于追求训练效率和资源利用率的团队来说,DPU是值得认真考虑的选项。