最近在研习模型训练相关的基础设施,发现 AI 芯片互连拓扑决定着训练集群任务的调度和资源分配,因此花了一点时间整理了一下常见的 AI 芯片互连方案。
1. 点对点互连
传统的 PCIe 系统下, AI 芯片与 AI 芯片之间的数据传输是通过 PCIe 传输,无法满足大规模数据传输的要求。
1.1 NVLink
NVLink 是同主机内不同 GPU 之间的一种高速互联方式。
NVLink 随着 GPU 架构的演进不断发展,从 P100 的 NVLink1 到 H100 的 NVLink4。如图所示是 NVLink 1.0、NVLink 2.0、NVLink 3.0 和 NVLink 4.0 之间的区别,关键在于连接方式、带宽和性能。
产品 | 发布时间 | 显卡 | 连接数量 | GPU 之间总带宽 | 应用架构 |
---|---|---|---|---|---|
NV Link 1.0 | 2016 | P100 | 4 | 160 GB/s | Pascal |
NV Link 2.0 | 2017 | V100 | 6 | 300 GB/s | Volta |
NV Link 3.0 | 2020 | A100 | 12 | 600 GB/s | Ampere |
NV Link 4.0 | 2022 | H100 | 18 | 900 GB/s | Hopper |
NV Link 5.0 | 预计 2025 | B200 | 18 | 1800 GB/s | Blackwell |
需要注意的是,使用 NVLink 之前需要先安装 nvidia-fabricmanager 服务。
为了有一个直观的印象,我们看看机箱中怎么安装 NVLink
- 打开 NVLink 盖
- 调整 NVLink 桥接器的方向,进行安装
1.2 HCCS
HCCS(High-speed Custom Communication System)是华为为其昇腾(Ascend)系列 AI 处理器设计的高速互连技术。
如上图,满配的 Atlas 800 训练服务器包含两块 910 板,每个板上都有 4 个 910 NPU。这些 NPU 之间的连接方式是 HCCS,图中 910 之间的蓝色线,而不同的 NPU 之间的连接方式是 PCIe。
而我接触到的 910B 服务器,也有两块 910B 板,每个板上都有 8 个 910B NPU,下面看看他们的拓扑:
|
|
编号 0 到 7 之间的 NPU 两两通过 HCSS 互连,而编号 8 到 15 之间的 NPU 两两通过 HCCS 互连。我们在训练模型时,应该要尽量使同一个任务的 Pod 运行在同一块板子上。
而每块板上互连的 8 个 NPU 总的 HCSS 带宽是 392 GB/s,这意味着同一块板子上两个 NPU 之间的带宽是 392/7 = 56 GB/s。
2. 多点组网
2.1 NVSwitch
NVSwitch 是 NVIDIA 的一款交换芯片,用来连接同一台主机内的 GPU,是一种基于 NVLink 技术的扩展。
产品 | 直连或节点中 GPU 数上限 | GPU 间带宽 | 应用架构 |
---|---|---|---|
NV Switch 1.0 | 8 | 300 GB/s | Volta |
NV Switch 2.0 | 8 | 600 GB/s | Ampere |
NV Switch 3.0 | 8 | 900 GB/s | Hopper |
在网上没有找到具体的安装说明,上图 6 个散热器下面压着的就是 NVSwitch 芯片。安装好 NVSwitch 之后,使用 NVLink 线缆,将 NVSwitch 与 GPU 卡连接。
使用 NVSwitch 也需要安装 nvidia-fabricmanager 服务。
3. 跨节点互连
3.1 NVLink 交换机
2022 年,NVIDIA 将 NVSwitch 芯片独立出来,并制作成 NVLink 交换机,用于连接主机之间的 GPU 设备。
NVSwitch 物理交换机将多个 NVLink GPU 服务器连接成一个大型 Fabric 网络,即 NVLink 网络,解决了 GPU 之间的高速通信带宽和效率问题。每个服务器都有独立的地址空间,为 NVLink 网络中的 GPU 提供数据传输、隔离和安全保护。
3.2 InfiniBand 网络
InfiniBand 来自一家以色列公司 Mellanox,2020 年 NVIDIA 以 69 亿美元的价格收购了这家公司。
InfiniBand 是一种专为高性能计算和数据中心设计的网络,它提供了高带宽和低延迟的通信能力。InfiniBand 交换机通常用于构建高性能计算集群,支持拥塞控制、虚拟通道和多路径传输等特性。
InfiniBand 网络的设备成本较高,但提供了极致的性能。
InfiniBand 是一种基于通道的结构,组成单元主要分为四类:
- HCA(Host Channel Adapter,主机通道适配器)
- TCA(Target Channel Adapter,目标通道适配器)
- InfiniBand link(连接通道,可以是电缆或光纤,也可以是板上链路)
- InfiniBand 交换机和路由器(组网用的)
组建一个 InfiniBand 网络主要需要四个物理组件:
- Adapter 适配器,用于将服务器连接到 InfiniBand 网络。
- DPU 数据处理单元,用于处理数据,释放 CPU 压力
- Switch 交换机,用于连接多个设备
- Cable 线缆,用于连接 Adapter、DPU 和 Switch。
一根 InfiniBand 线缆的价格就上万,如果构建大规模集群,还需要部署 Spine-Leaf 网络,因此构建一个大规模 InfiniBand 网络的成本就会很高。
InfiniBand 网络普遍被超级计算机方案所使用,广泛用于数据中心和高性能计算集群中。InfiniBand 的带宽随着技术的发展而不断提升,从早期的 SDR(1 Gbps)、DDR(2 Gbps)、QDR(4 Gbps)、FDR(8 Gbps)、EDR(16 Gbps)、HDR(32 Gbps),发展到 NDR(100 Gbps)、XDR(200 Gbps)、GDR(400 Gbps)。
3.3 RoCE 网络
RoCE 是 RDMA over Ethernet,是一种基于以太网的 RDMA(Remote Direct Memory Access)技术。它允许在网络上进行直接内存访问,从而减少 CPU 负载并提高数据传输效率。
RoCE 有两个版本:RoCE v1 和 RoCE v2。RoCE v1 主要在以太网链路层实现 RDMA,而 RoCE v2 在以太网 TCP/IP 协议的 UDP 层实现,并引入 IP 来解决扩展性问题。
相较于昂贵的 InfiniBand 组件的 RDMA 通道,RoCE 则便宜了许多。
但这种便宜也只限于硬件成本,RoCE 的人力成本显著高于 InfiniBand,需要网络专家才能玩得转,用来解决网卡、交换机上的各种奇奇怪怪问题。
除非超大规模集群建设需要,有上万节点,有足够的的资金投入建设,否则建议选择几乎免运维的 InfiniBand 网络。
组建一个 RoCEv2 可选的设备就很多,并且相较于 InfiniBand 网络的设备,价格也显著便宜,只需要支持 RoCEv2 协议的设备即可。
另外,InfiniBand 网卡支持两种模式: InfiniBand 和 RoCE。InfiniBand 网卡能直接当做 RoCEv2 的 NIC 用。
RoCE 的带宽取决于所使用的以太网标准。RoCE v1 通常运行在 10 Gbps 或 40 Gbps 的以太网网络上,而 RoCE v2 可以在更高速度的网络上运行,如 25 Gbps、40 Gbps、50 Gbps 甚至 100 Gbps
3.4 Spine-Leaf 网络
在机房中,经常也会采用 Spine-Leaf 网络,配合 InfiniBand 网卡来构建高性能计算集群。
Spine 层是网络的骨干; Leaf 层用来连接服务器、存储设备等终端设备。通常 Spine 层和 Leaf 层都会使用三层交换机来构建。
Spine-Leaf 网络架构可以提供高带宽、低延时、非阻塞的服务器到服务器连接。Spine-Leaf 网络的优点包括:
- 易于横向扩展。在不需要改变网络拓扑结构的情况下,可以横向扩展网络,增加 Spine、Leaf 节点以扩大网络规模。
- 无阻塞设计。每个 Leaf 都与每一个 Spine 交换机相连,保障了任意两个节点之间的通信不会受到其他流量影响。
- 网络跳数少。任意两个端点之间最多经过三跳可达,Leaf - Spine - Leaf。
- 网络结构简单,仅有两个层级,易于管理和维护。
典型数据传输过程:
同一个 Leaf 节点下的服务器。同一个 Leaf 节点之间需要通信时,数据直接通过该 Leaf 节点进行转发,无需经过 Spine 节点。
跨两个 Leaf 节点下的服务器。数据从源服务器通过 Leaf 交换机发送到 Spine 交换机,然后通过 Spine 交换机转发到目标节点所在的 Leaf 节点,再通过 Leaf 节点转发到目标服务器。
Spine-Leaf 网络中服务器与服务器之间最大带宽取决于以下因素:
- 服务器网卡带宽
- Leaf 交换机端口带宽和背板带宽
- Spine 交换机端口带宽和背板带宽
- Spine-Leaf 之间连接带宽
如果使用以太网,Spine-Leaf 网络的带宽取决于以太网标准;如果使用 InfiniBand 网络,Spine-Leaf 网络的带宽取决于 InfiniBand 网络的带宽。