腾讯星脉网络为每个计算节点提供了3.2T的超高通信带宽。单个服务器(带有8个GPU)就是一个计算节点。每个服务器有8块RoCE网卡。每块网卡的接口速率是400Gbps。RoCE,是RDMA over Converged Ethernet(基于聚合以太网的RDMA)。RDMA(远程直接GPU通信访问)我们以前介绍过很多次。它允许计算节点之间直接通过内存进行数据传输,无需操作系统内核和CPU的参与,能够大幅减小CPU负荷,降低延迟,提高吞吐量。大带宽带来的优势是非常显著的。对于AllReduce和All-to-All这两种典型通信模式,在不同集群规模下,1.6Tbps超带宽都会带来10倍以上的通信性能提升(相比100Gbps带宽)。以AllReduce模式、64 GPU规模为例,采用1.6Tbps超带宽网络,将使得AllReduce的耗时大幅缩短14倍,通信占比从35%减少到3.7%,最终使得单次迭代的训练耗时减少32%。从集群算力的角度来看,相当于用同样的计算资源,系统算力却提升48%。
流量调控
为了提升集群的通信效率,星脉网络对通信流量路径进行了优化,引入了“多轨道流量聚合架构”。该架构将不同服务器上位于相同位置的网卡,都归属于同一个ToR switch(机柜顶部的汇聚交换机)。整个计算网络平面,从物理上被划分为8个独立并行的轨道平面。在工作时,GPU之间的数据,可以用多个轨道并行传输加速。并且,大部分流量,都聚合在轨道平面内传输(只经过一级 ToR switch)。只有小部分流量,会跨轨道平面传输(需要经过二级 switch)。这大幅减轻了网络压力。星脉网络还采用了“异构网络自适应通信技术”。在集群中,GPU之间的通信包括机间网络(网卡+交换机)与机内网络( NVLink/NVSwitch 网络、PCIe 总线网络)。星脉网络将机间、机内两种网络同时利用起来,实现了异构网络之间的联合通信优化。例如,在All-to-All通信模式时,每个GPU都会和其它服务器的不同GPU通信。基于异构网络自适应通信技术,不同服务器上相同位置的GPU,在同一轨道平面,仍然走机间网络通信。但是,要去往不同位置的GPU(比如host1上的GPU1,需要向其它host上的GPU8 送数据),则先通过机内网络,转发到host1上的GPU8上,然后通过机间网络,来完成通信。这样一来,机间网络的流量,大部分都聚合在轨道内传输(只经过一级 ToR switch)。机间网络的流量大幅减少,冲击概率也明显下降,从而提供了整网性能。根据实测,异构网络通信在大规模All-to-All场景下,对中小数据包的传输性能提升在30%左右。
协议升级
星脉网络采用的“自研端网协同协议TiTa”,可以提供更高的网络通信性能,非常适合大规模参数模型训练。TiTa协议内嵌拥塞控制算法,可以实时监控网络状态并进行通信优化。它就好比是一个智能交通管理系统,可以让网络上的数据传输更加通畅。TiTa协议的处理方式面对定制设计的高性能组网架构,业界开源的GPU集合通信库(例如NCCL)并不能将网络的通信性能发挥到极致。为此,腾讯推出了“高性能集合通信库TCCL(Tencent Collective Communication Library)”。TCCL就像一个智能导航系统。它在网卡设备管理、全局网络路由、拓扑感知亲和性调度、网络故障自动告警等方面进行了深度定制,对网络了如指掌,让流量路径更加合理。例如,从GPU A到GPU B,原来需要经过9个路口。有了TCCL导航之后,只需要走4个路口,提升了效率。根据实测,在AllReduce/AllGather/ReduceScatter等常用通信模式下,TCCL能给星脉网络带来40%左右的通信性能提升。