算力提升的途径:
1 单GPU算力提升
2 多GPU,通过NVLINK多GPU之间算力同步. GPU Box
3 AI集群网络,用网络将GPU Box连接起来,组成更大的GPU资源池
e8ffc70d95281b90e2ddaca10fc0591.jpg
AI集群网络的第1个问题:
- 带宽。 网络互联通信带宽远远低于GPU Box内部互联带宽(P2P)
- GPU无限扩展,扩大GPU资源池资源
- 可用性:低故障
de68f078004ea6e152b0d07bac7f85d.jpg
现在绝大多数GPU训练是同步训练,即一个batch结束,需要等待所有GPU节点数据同步完成,然后才能开始下一个batch的训练。AI集群网络的性能决定了每个batch之间通信时长的性能,进一步决定了同步训练的整体任务时长以及GPU的实际利用率。
8bd96b91adf32d32c277ba23a6b486c.jpg
提升单机网络性能,需要网卡与服务器的配合。
给GPU提供独立的网卡。多网卡需要GPU服务器内部架构的支持
a7d103aa28eb00ca2de411a0e27eaf8.jpg
RDMA对网络数据的处理完全硬件完成。
训练过程中,GPU之间直接利用RDMA进行数据同步,用到GPU Direct Over RDMA; 另一个是在数据读取过程中CPU利用RDMA直接从存储节点拉取数据,用到NVMf。
网络上,RDMA的真正挑战在于ROCE网络的配置。RDMA部署与传统网络上,网络上会有大量丢包,效果很差。因此需要网络内部,针对RDMA流量需要设置单独的优先级,并且这个优先级上面配置无损PFC以及ECN。PFC与ECN的正确配置对网络效率影响很大。
随着网络技术的发展,目前可以摆脱对PFC,只配置ECN,实现Lossy RoCE网络的配置。
6b52c4a479ec290e774c24950832519.jpg
网络内部拥塞问题:
尽量让网络调度到附近的节点上。
TOR交换机层保证收敛比为1:1
2bb78296f7b3b75f4814b9eaddea596.jpg
降低需要同步的数据量
压缩到实际需要的数据量的2倍左右
Ring Allreduce - 简书 (jianshu.com)
f3ca0eba5cb84d6608dfaec4f443621.jpg
早期,GPU Box内部没有NVLink,内部GPU间通信基于PCIe,带宽极为有限,与网络带宽基本相同,并且每个GPU Box只有一张网卡,在这种情况下,多级的分布式和单机的分布式没有什么差别,建立一个大的环即可。
如果有NVLink,再使用大的环就不合适了,因为网络带宽远远低于NVLink,如果使用大环,使用大环,就会将NVLink带宽拉低到网络水平,同时GPU Box也从单网卡发展为多网啊。此时就需要2极环。 1- 利用NVLink在GPU Box内部完成数据同步;2- 不同节点的GPU同时利用多网卡建立多个环实现对不同分段的数据进行同步;3- 单机内部再利用NVLink再同步一次,最终完成全部GPU的数据同步。
a20b540e1c7b835d8531ae040a98526.jpg
让单任务充分调用尽量多的GPU资源。扩大GPU资源池
d29ecb45c783741cba438e424e857ab.jpg
一组TOR与一组LEAF之间实现二分意义上的Full Mash,这样共同组成网络意义上的一个POD。
不同POD之间,通过第三次的SPINE switch连接起来。
CLOSS网络架构
可调整的只有Leaf层交换机的收敛比与Spine层交换机的数量。
Leaf层的收敛比决定了POD间的通信带宽
实际,Pod可以迭代部署。Spine层需要一次性投入。
47c83a2b4e360b4cfe7b64011d2cd84.jpg
d30f40c5feeabc572cf688fd3d89359.jpg
AI集群业务一般都是离线业务,故障不影响在线业务。
8aea290f006f5bdde0eb4f9921bdbb7.jpg
CPU/存储节点:双上联
GPU:所有GPU Box连接到同一个交换机的网络节点。
网友评论