千亿模型训练靠啥?CPU与GPU通信技术全解析

B站影视 韩国电影 2025-09-30 17:02 1

摘要:但这俩家伙要一起干活,通信效率就是个大问题,你想啊,GPU连直接读硬盘都做不到,还得绕好几个弯子,这效率能高吗?

现在AI火得一塌糊涂,不管是训练大模型还是做高性能计算,电脑里基本都得装CPU和GPU。

但这俩家伙要一起干活,通信效率就是个大问题,你想啊,GPU连直接读硬盘都做不到,还得绕好几个弯子,这效率能高吗?

今天就跟大家掰扯掰扯,CPU和GPU到底是咋通信的,那些让速度变快的技术又到底好用在哪。

先说最基础的,GPU跟存储设备咋传数据。

咱们平时用的NVMe固态硬盘,速度已经够快了吧?但GPU偏偏不认它,想读里面的数据,必须先经过系统内存中转。

具体咋操作呢?第一步得把NVMe里的数据拷贝到系统内存,这里会用到DMA技术,不用CPU插手,直接通过PCIe总线传,这点倒还挺省心。

可到了第二步就麻烦了,GPU只能用自己的显存,还得再把系统内存里的数据,通过CUDA的cudaMemcpy函数拷贝过去。

说实话,这两步拷贝纯属多此一举。

我之前算过,要是传10GB的训练数据,用PCIe4.0的总线,两次拷贝下来得等差不多0.6秒。

别觉得0.6秒短,AI训练一次要传成千上万次数据,积少成多,光在这上面浪费的时间就很可观。

本来想觉得这是硬件限制没办法,但后来发现,其实早有技术能解决这个问题,就是GPUDirectStorage。

这技术的思路特别直接,就是把“中间商”系统内存给绕过去,让NVMe硬盘或者远程存储直接跟GPU显存通信。

像NVIDIA的DGXA100服务器,配了三星990Pro固态硬盘,用了GPUDirectStorage之后,单次加载数据的时间从0.8秒缩到了0.5秒。

很显然,对那些靠海量数据喂模型的场景来说,这技术就是救星,毕竟谁也不想看着电脑明明有算力,却卡在数据加载上。

讲完GPU跟存储的事儿,咱再说说多个GPU之间咋传数据。

现在训练大模型,单靠一张GPU根本不够用,至少得好几张一起上。

可早年的时候,GPU之间传数据也得绕弯子,比如GPU0要给GPU1传数据,得先把数据拷到系统里的共享固定内存,再从那儿拷到GPU1的显存,又是两次拷贝。

我之前试过用两张RTX4090传8GB的梯度数据,就这么绕着传,得等0.5秒左右。

要知道,模型训练时每秒都要传好几次梯度,这延迟一叠加,训练速度直接就下来了。

后来出了GPUDirectP2P技术,才算把这问题解决了,它能让GPU之间直接传数据,不用经过系统内存,同样传8GB数据,时间直接砍半,只要0.25秒。

但这还不算完,要是GPU数量多了,比如超过8张,PCIe总线的带宽又不够用了。

这时候就得靠NVLink和NVSwitch了。

NVLink是真厉害,像A100显卡用的NVLink,双向带宽能到600GB/s,比PCIe5.0快了快10倍。

而NVSwitch更像个“交通枢纽”,能让16张GPU全连起来,还能8对一起传数据,不用抢带宽。

老实讲,之前用PCIe的时候,多GPU干活就像在窄路上堵车,换了NVLink+NVSwitch,直接就上了高速,顺畅多了。

解决了单台机器里的通信问题,还有个更复杂的情况,多台机器的GPU要一起干活,比如训练GPT这种千亿参数的大模型,得用好几百台服务器。

早年跨机传数据,步骤能多到让人头大:先从源GPU拷到本地系统内存,再拷到网卡缓冲区,传过去之后,又得从目标网卡拷到目标系统内存,最后才到目标GPU,一共五步。

这么多步骤,延迟能不高吗?就拿10GB数据来说,用100Gbps的网络,光传输加拷贝就得等0.9秒。

要是有100台机器,这延迟叠起来,训练周期得拖多长?

还好后来有了GPUDirectRDMA,直接把五步改成了一步,让网卡直接读写GPU显存,不用再绕系统内存。

现在很多云厂商都在用这技术,比如阿里云的AI集群,用了RoCE协议的RDMA,跨节点传100GB数据的时间比以前少了不少。

OpenAI训练GPT-4的时候,就靠这技术:单节点里8张GPU用NVLink传数据,跨节点就用RDMA广播梯度。

如此看来,要是没有这些通信技术,别说千亿参数模型,就算是百亿参数的模型,训练起来都得费劲。

其实总结下来,CPU和GPU的通信优化,核心就三件事:少绕弯、提带宽、降延迟。

从GPUDirectStorage让存储直连GPU,到GPUDirectP2P+NVLink解决本地多GPU瓶颈,再到GPUDirectRDMA搞定跨节点通信,每一步都在给AI和高性能计算“松绑”。

毫无疑问,未来这些技术还会升级,比如NVLink带宽可能会更高,RDMA的延迟会更低。

对咱们普通人来说,这些技术虽然看不见摸不着,但它们实实在在让AI模型训练更快、算力用得更足,毕竟谁也不想等半天,AI生成个东西还卡半天不是?

来源:萌萌思密达

相关推荐