*本文转载自公众号“西贝吹风”
在
AI
大模型训练场景中,网络架构对
GPU
服务器内外的集合通信存在极大影响,
GPU
集群参数面承载并行计算过程中产生的各类集合通信,因此,设计大规模、高可靠、低成本、易运维的优质网络架构,对于满足大模型训练的大算力、低时延和高吞吐需求具有重要意义。
胖树
CLOS
架构由于其高效的路由设计、良好的可扩展性及方便管理等优势,在大模型训练场景下被广泛应用,通常采用
Spine-Leaf
两层
CLOS
架构,两层架构无法满足规模扩展时,可以增加一层
Super-Spine
来进行扩展。
当前基于
CLOS
网络的架构提供
Any-to-any
全连接,但由于
LLM
训练网络通信模式的稀疏性,即大部分
GPU
对之间不需要直接通信,这种通信模式与传统
DC
网络设计的
Any-to-any
特性不匹配,导致资源利用不充分及大规模部署时的成本和功耗问题,为此,需要依据
LLM
训练通信模型的特点,进行网络优化。
网络优化依据,可以参考
Meta
在
HOTI 2024
上
Rail-only
高性能网络的论文(
Rail-only: A Low-Cost High-Performance Network for Training LLMs with Trillion Parameters
)中的结论:
-
张量并行(
TP
)中的
All gather
和
Reduce scatter
通信,在参与张量并行的
GPU
内部发生,主要在
HB
(高带宽)域内;
-
数据并行(
DP
)中的
All reduce
通信,涉及所有
GPU
,但通信量相对较小,主要在
NIC
域内;
-
流水线并行(
PP
)中的
P2P
通信,通常在
NIC
域内,但可以通过优化保持在同一个轨道(
Rail
)内。
为此,根据
GPU
服务器接入模式的不同,通常会分成单轨接入和多轨接入。所为单轨接入是指
GPU
服务器上的
8
张
GPU
卡全部接入同一台
Leaf
交换机;多轨接入是指
GPU
服务器上的
8
张
GPU
卡依次接入
8
台
Leaf
交换机,从而在参数面形成
8
个独立并行的轨道平面。多轨接入情况下,根据整体网络结构的不同,又区分为轨道优化架构(
Rail-optimized
)和纯轨架构(
Rail-only
)。
单轨接入模式下,
GPU
服务器上的
8
张网卡全部接入同一台
Leaf
交换机,该模式下的
CLOS
组网,理论上任意节点对都应该能同时进行线速通信,但存在链路拥塞、不完善的自适应路由和多跳通信延迟等问题,真实场景中无法达到理论最优状态,集群通信效率偏低,对整网的负载均衡要求也更高。
但是,单轨接入在一定的部署环境下,在机房综合布线中具有一定的优势,由于
GPU
服务器上的
8
张网卡全部接入同一台
Leaf
交换机,此情况下,
Leaf
交换机可以采用
ToR
(
Top of Rack
,机柜顶部)或
MoR
(
Middle of Rack
,机柜中部)的部署方式,从而可以在接入层面采用
DAC
铜缆接入,
DAC
铜缆散热好、功耗低、可靠性高、综合成本也更核算。
Rail
是指在具有相同
GPU ID
的
GPU
集合。
通过将相同
ID
的
GPU
连接到相同
leaf
交换机,
Rail-only
网络确保了这些
GPU
之间的最低延迟(只经过一级交换)。
Rail-only
网络保留了
HB
域和
Rail
交换机,移除了
Spine
交换机,这一变化确保了同一网络内的
GPU
对之间的带宽保持不变,同时,实现了网络
Fabric
的精简与成本的降低。
上图中,
K
个
Rail
也就表示
1
个
HB
域中有
K
个
GPU
。传统上,
HB
域仅限于单个服务器(例如,具有
8
个
GPU
的
DGX
服务器),最新
GB200
的单个
HB
域内的
GPU
数量可以达到
512
个。
在
Rail-only
网络中,同一
HB
域内各
GPU
卡可以通过
HB
域直接通信;不同
HB
域的相同
GPU ID
可以通过对应的
Rail
交换机之间通信;不同
HB
域的不同
GPU ID
之间的直接连通性被移除,但数据可通过
HB
域内的转发实现跨域通信。例如,下图中
GPU1
(
Domain 1
)向
GPU3
(
Domain 3
)发送消息时,首先在
Domain 1
域内到达
GPU3
,再通过
Rail 3 Switch
到达
Domain 3
的
GPU3
。
在多轨道网络架构中,
AI
训练产生的通信需求,可以用多个轨道并行传输加速,并且大部分流量都聚合在轨道内传输(只经过一级交换),小部分流量进行跨轨道传输(需要经过二级或多级),从而减轻网络通信压力。
无论是纯轨架构(
Rail-only
)还是轨道优化架构(
Rail-optimized
),都提升了集合通信的性能,但同时,我们也注意到,轨道优化设计需要
GPU
服务器连接到不同距离的不同
Leaf
交换机,而不是靠近服务器的机架内部交换机(
ToR
或
MoR
),因此在高速连接场景下(
400G/800G/1.6T
),
DAC
线缆无法满足要求,需要使用
ACC
或光纤连接,成本和功耗对应的也将大幅提高,综合布线部署更加复杂;另外,如果是
Leaf
交换机发生故障,多轨接入方式所影响的
GPU
服务器数量也将多于单轨接入方式。
前面提到,
Rail-only
网络为了确保
GPU
之间的最低延迟,一般只经过一级交换,但是在模型较大的情况下,也可以扩展到
2
层或以上的
Rail
网络,下面是
2
层
CLOS
架构下的
Rail-optimized
和
Rail-only
的网络架构区别。
目前各厂家的大模型多采用轨道优化架构设计,但也存在有一些差别,例如百度,
8
个
GPU
分别接入
8
条不同通道,每条通道(对应
Rail
)采用
2
级全互联
CLOS
,不同通道通过第三级交换机互联。
再如阿里云
HPN-7.0
,为了提升性能、增加可靠性、避免哈希极化,就采用的多轨
-
双平面的设计模式,同时,根据其训练任务流量特性,选择
Spine-Core
之间采用
15:1
的收敛比设计,这里不再赘述。