Please enable Javascript to view the contents

AI 芯片高速互连方案

 ·  ☕ 6 分钟

最近在研习模型训练相关的基础设施,发现 AI 芯片互连拓扑决定着训练集群任务的调度和资源分配,因此花了一点时间整理了一下常见的 AI 芯片互连方案。

1. 点对点互连

传统的 PCIe 系统下, AI 芯片与 AI 芯片之间的数据传输是通过 PCIe 传输,无法满足大规模数据传输的要求。

NVLink 是同主机内不同 GPU 之间的一种高速互联方式。

NVLink 随着 GPU 架构的演进不断发展,从 P100 的 NVLink1 到 H100 的 NVLink4。如图所示是 NVLink 1.0、NVLink 2.0、NVLink 3.0 和 NVLink 4.0 之间的区别,关键在于连接方式、带宽和性能。

产品发布时间显卡连接数量GPU 之间总带宽应用架构
NV Link 1.02016P1004160 GB/sPascal
NV Link 2.02017V1006300 GB/sVolta
NV Link 3.02020A10012600 GB/sAmpere
NV Link 4.02022H10018900 GB/sHopper
NV Link 5.0预计 2025B200181800 GB/sBlackwell

需要注意的是,使用 NVLink 之前需要先安装 nvidia-fabricmanager 服务。

为了有一个直观的印象,我们看看机箱中怎么安装 NVLink

  1. 打开 NVLink 盖
  1. 调整 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,下面看看他们的拓扑:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
npu-smi info -t topo
	   NPU0       NPU1       NPU2       NPU3       NPU4       NPU5       NPU6       NPU7       NPU8       NPU9       NPU10      NPU11      NPU12      NPU13      NPU14      NPU15      CPU Affinity
NPU0       X          HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       PIX        PHB        PHB        PHB        SYS        SYS        SYS        SYS        0-43,88-131
NPU1       HCCS       X          HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       PHB        PIX        PHB        PHB        SYS        SYS        SYS        SYS        0-43,88-131
NPU2       HCCS       HCCS       X          HCCS       HCCS       HCCS       HCCS       HCCS       PHB        PHB        PIX        PHB        SYS        SYS        SYS        SYS        0-43,88-131
NPU3       HCCS       HCCS       HCCS       X          HCCS       HCCS       HCCS       HCCS       PHB        PHB        PHB        PIX        SYS        SYS        SYS        SYS        0-43,88-131
NPU4       HCCS       HCCS       HCCS       HCCS       X          HCCS       HCCS       HCCS       SYS        SYS        SYS        SYS        PIX        PHB        PHB        PHB        44-87,132-175
NPU5       HCCS       HCCS       HCCS       HCCS       HCCS       X          HCCS       HCCS       SYS        SYS        SYS        SYS        PHB        PIX        PHB        PHB        44-87,132-175
NPU6       HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       X          HCCS       SYS        SYS        SYS        SYS        PHB        PHB        PIX        PHB        44-87,132-175
NPU7       HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       X          SYS        SYS        SYS        SYS        PHB        PHB        PHB        PIX        44-87,132-175
NPU8       PIX        PHB        PHB        PHB        SYS        SYS        SYS        SYS        X          HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       0-43,88-131
NPU9       PHB        PIX        PHB        PHB        SYS        SYS        SYS        SYS        HCCS       X          HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       0-43,88-131
NPU10      PHB        PHB        PIX        PHB        SYS        SYS        SYS        SYS        HCCS       HCCS       X          HCCS       HCCS       HCCS       HCCS       HCCS       0-43,88-131
NPU11      PHB        PHB        PHB        PIX        SYS        SYS        SYS        SYS        HCCS       HCCS       HCCS       X          HCCS       HCCS       HCCS       HCCS       0-43,88-131
NPU12      SYS        SYS        SYS        SYS        PIX        PHB        PHB        PHB        HCCS       HCCS       HCCS       HCCS       X          HCCS       HCCS       HCCS       44-87,132-175
NPU13      SYS        SYS        SYS        SYS        PHB        PIX        PHB        PHB        HCCS       HCCS       HCCS       HCCS       HCCS       X          HCCS       HCCS       44-87,132-175
NPU14      SYS        SYS        SYS        SYS        PHB        PHB        PIX        PHB        HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       X          HCCS       44-87,132-175
NPU15      SYS        SYS        SYS        SYS        PHB        PHB        PHB        PIX        HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       HCCS       X          44-87,132-175

Legend:

  X    = Self
  SYS  = Path traversing PCIe and NUMA nodes. Nodes are connected through SMP, such as QPI, UPI.
  PHB  = Path traversing PCIe and the PCIe host bridge of a CPU.
  PIX  = Path traversing a single PCIe switch
  PXB  = Path traversing multipul PCIe switches
  HCCS = Connection traversing HCCS.
  NA   = Unknown relationship.

编号 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.08300 GB/sVolta
NV Switch 2.08600 GB/sAmpere
NV Switch 3.08900 GB/sHopper

在网上没有找到具体的安装说明,上图 6 个散热器下面压着的就是 NVSwitch 芯片。安装好 NVSwitch 之后,使用 NVLink 线缆,将 NVSwitch 与 GPU 卡连接。

使用 NVSwitch 也需要安装 nvidia-fabricmanager 服务。

3. 跨节点互连

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 网络主要需要四个物理组件:

  1. Adapter 适配器,用于将服务器连接到 InfiniBand 网络。
  2. DPU 数据处理单元,用于处理数据,释放 CPU 压力
  3. Switch 交换机,用于连接多个设备
  4. 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 网络的优点包括:

  1. 易于横向扩展。在不需要改变网络拓扑结构的情况下,可以横向扩展网络,增加 Spine、Leaf 节点以扩大网络规模。
  2. 无阻塞设计。每个 Leaf 都与每一个 Spine 交换机相连,保障了任意两个节点之间的通信不会受到其他流量影响。
  3. 网络跳数少。任意两个端点之间最多经过三跳可达,Leaf - Spine - Leaf。
  4. 网络结构简单,仅有两个层级,易于管理和维护。

典型数据传输过程:

  • 同一个 Leaf 节点下的服务器。同一个 Leaf 节点之间需要通信时,数据直接通过该 Leaf 节点进行转发,无需经过 Spine 节点。

  • 跨两个 Leaf 节点下的服务器。数据从源服务器通过 Leaf 交换机发送到 Spine 交换机,然后通过 Spine 交换机转发到目标节点所在的 Leaf 节点,再通过 Leaf 节点转发到目标服务器。

Spine-Leaf 网络中服务器与服务器之间最大带宽取决于以下因素:

  1. 服务器网卡带宽
  2. Leaf 交换机端口带宽和背板带宽
  3. Spine 交换机端口带宽和背板带宽
  4. Spine-Leaf 之间连接带宽

如果使用以太网,Spine-Leaf 网络的带宽取决于以太网标准;如果使用 InfiniBand 网络,Spine-Leaf 网络的带宽取决于 InfiniBand 网络的带宽。

4. 参考


微信公众号
作者
微信公众号