大模型与AI底层技术揭秘 (9) 工业化武装的巨龙 (中)

2023-11-13 11:50:05 浏览数 (1)

在上期,我们提到了NVLink技术能够为GPU之间提供高速低时延可靠的数据通道,两块GPU之间可以通过NVLink互通。

但是,如果有多块GPU之间的互通,点对点连接就无法满足需求了,因此,Nvidia借鉴以太网交换机的思想,推出了NVLink Switch。

初代dgx的八块P100卡并没有通过NVLink Switch连接,它的连接方式如下图:

我们将8块P100的连接关系简化以后得到这个图:

我们注意到一个细节,由于每块P100只有4个NVLink接口,因此,8块P100之间的立方体连接是一个不完整的,两块P100之间有可能直通,也可能要经过2跳,这会造成跨卡计算性能的波动。

而NVLink对各块GPU卡之间的组网进行了简化,如图:

图中,NVLink Switch连接到各块GPU卡,这样,任一两块GPU卡互通,时延和带宽都是一致的,同时还大大减少了电路板上的线路设计难度。

但是,NVLink Switch是无法实现跨Board的互通的。

这是为什么呢?

让我们翻开维基百科,魔鬼藏在细节里面:

https://en.wikipedia.org/wiki/NVLink

这里给出了各代NVLink的工作速率:

我们再对比一下能够跨Board,延伸长达数公里的以太网的工作速率:

100GBASE-SR4由4个25G通道构成,每个通道的工作速率为26.5626GBd,可以在多模光纤中传输100米;

100GBASE-ZR4由4个25G通道构成,每个通道的工作速率为27.9525GBd,可以在单模光纤中传输80km;

可见,以太网的物理层和数据链路层设计在100GBd的基础上,增加了少量冗余,如100GBASE-SR4就采用了130/128b编码,在传输128bit数据时,额外增加了2bit的冗余编码,这样,即使出现了2bit的误码,也不需要重传就可以恢复出正确的数据。此种纠错冗余是跨Board通信的刚性需求。

为了解决这一问题,NVidia的思路是,利用RDMA技术来实现跨机箱的GPU Direct,这种技术被称为GPU Direct Over RDMA/RoCE。

可想而知,GPU Direct Over RDMA需要为跨机箱的GPU搭建高速,稳定,可靠的重载铁路。

(朔黄铁路,韶山4B担当本务和中补,牵引万吨煤列驶向西柏坡站)

RDMA对网络提出了更高的要求。

我们知道,货车车队通过高速公路批量运输货物时,即使其中一辆或几辆货车由于故障原因没有按时到达目的地,也不会影响其他货物准时到达。与之相对的是,铁路运输虽然具备更高的运力,在出现故障时会影响整列列车,甚至后续列车的运行。

RDMA与铁路运输类似,在出现丢包时缺乏重传数据包的机制,而是会触发goback,从头开始传输整个数据块。如果我们将4MB的数据拆分为4096个1K的数据块传输,每个数据包传输的失败可能性为0.001%,那么,最终4MB数据传输成功的可能性为1.66%。

显然,这是不可接受的。

业界RDMA领域的主导者Mellanox给出了两个方案。

方案A:Mellanox主导的Infiniband网络中,引入了类似token ring (IEEE 802.5)的基于credit的流控机制,在下游未处理完成并向上游返回Credit前,上游是不会发送数据的。

方案B:对现有的以太网构成的局域网进行增强,采用以太网实现RDMA,并采用一系列流控机制来避免以太网的拥塞丢包。

NVidia发现,无论方案A还是方案B,Mellanox的Connect-X系列网卡和MSB系列交换机都具有相当的不可替代性。那么,二者之间的差异是什么呢?

Infiniband与以太网的本质差异就在于开放性。构成网络的关键部件实际上是网络设备数据平面转发芯片。目前,Infiniband转发芯片只有Mellanox独家提供,而以太网转发芯片则有Broadcom、Marvell、盛科等多家厂商,同时,cisco和华为等设备商也具备自己的转发芯片研发能力。显然,以太网是更具备生态与活力的。

2019年,Nvidia收购了Mellanox,从此,RDMA技术在新的舞台上开始发光发热……

0 人点赞