高性能GPU服务器硬件拓扑与集群组网
01、术语与基础
大模型训练采用集群式架构,每台主机配备 8 块高性能 GPU,包括 A100、A800、H100、H800 四种机型。其中,典型 8*A100 GPU 主机内部硬件架构如下:
| 典型 8 卡 A100 主机硬件拓扑
PCIe 交换芯片
PCIe 技术:高效互联
PCIe 总线连接支持 PCIe 的设备,如 CPU、内存、NVME、GPU 和网卡,实现高效的数据传输。
最新一代 PCIe Gen5 提供卓越性能,通过 PCIe 交换芯片实现多设备互联。
NVLink
>定义
Wikipedia 上 NVLink 上的定义:
NVLink is a wire-based serial multi-lane near-range communications link developed by Nvidia. Unlike PCI Express, a device can consist of multiple NVLinks, and devices use mesh networking to communicate instead of a central hub. The protocol was first announced in March 2014 and uses a proprietary high-speed signaling interconnect (NVHS).
简单总结:同主机内不同 GPU 之间的一种高速互联方式:
是一种短距离通信链路,保证包的成功传输,更高性能,替代 PCIe,
支持多 lane,link 带宽随 lane 数量线性增长,
NVLink 直接连接同一节点内的 GPU,形成类似 spine-leaf 的全网格网状结构,提供快速、低延迟的通信。
NVIDIA 专利技术。
NVIDIA NVLink 演进
NVLink 连接技术的演进主要体现在单条链路的 Lane 数量和每个 Lane 的双向带宽上:
A100 具备强大的 600GB/s 双向带宽,由 12 个 NVSwitch 组成,每个 NVSwitch 提供 50GB/s 的瞬时带宽。这相当于每个 GPU 可访问高达 300GB/s 的单向带宽,实现 GPU 与 NVSwitch 之间高速数据传输。
A800 拥有 8 条高速通道,每条通道带宽高达 50GB/s,提供高达 400GB/s 的双向带宽(单向 200GB/s)。
DCGM 监视工具提供实时 NVLink 带宽数据,帮助您:
- 跟踪 GPU 之间的通信
- 优化性能并避免瓶颈
- 确保流畅顺畅的运算
NVSwitch
还是参考下图:典型 8 卡 A100 主机硬件拓扑
NVSwitch 是 NVIDIA 的一款交换芯片,封装在 GPU module 上,并不是主机外的独立交换机。
下面是真机图,浪潮的机器,图中 8 个盒子就是 8 片 A100,右边的 6 块超厚散热片下面就是 NVSwitch 芯片:
Inspur NF5488A5 NVIDIA HGX A100 8 GPU Assembly Side View. Image source: [2]
NVLink Switch
NVLink Switch 是 NVIDIA 在 2022 年推出的交换芯片,可连接同一主机内的 GPU。与传统的交换机不同,它采用 GPU 模块上的交换芯片。
此外,NVIDIA 还推出了跨主机连接 GPU 设备的 NVLink Switch,有效避免了传统交换机中名称容易混淆的问题。
HBM (High Bandwidth Memory)
>由来
传统上,GPU 显存和普通内存(DDR)一样插在主板上,通过 PCIe 连接到处理器(CPU、GPU), 因此速度瓶颈在 PCIe,Gen4 是 64GB/s,Gen5 是 128GB/s。
因此,一些 GPU 厂商(不是只有 NVIDIA 一家这么做)将将多个 DDR 芯片堆叠之后与 GPU 封装到一起 (后文讲到 H100 时有图),这样每片 GPU 和它自己的显存交互时,就不用再去 PCIe 交换芯片绕一圈,速度最高可以提升一个量级。这种“高带宽内存”(High Bandwidth Memory)缩写就是 HBM。
HBM 的市场目前被 SK 海力士和三星等韩国公司垄断。
>演进:HBM 1/2/2e/3/3e
From wikipedia HBM,| 使用了 HBM 的近几代高端 NVIDIA GPU 显存带宽(双向),纵坐标是 TB/s。Image source: [3]
AMD MI300X 采用 192GB HBM3 方案,带宽 5.2TB/s;
HBM3e 是 HBM3 的增强版,速度从 6.4GT/s 到 8GT/s。
带宽单位
GPU 训练性能极度依赖数据传输速度。影响因素包括 PCIe、内存、NVLink、HBM 和网络带宽。优化这些链路对于最大化训练效率和输出至关重要。
带宽衡量标准:
- B/s(字节/秒):数据传输速度。
- T/s(事务/秒):请求处理速度。
- 双向总带宽:同时支持发送和接收数据。
比较带宽时注意区分和转换。
02、典型 8*A100/8*A800主机
主机内拓扑:2-2-4-6-8-8
2 片 CPU(及两边的内存,NUMA)
2 张存储网卡(访问分布式存储,带内管理等)
4 个 PCIe Gen4 Switch 芯片
6 个 NVSwitch 芯片
8 个 GPU
8 个 GPU 专属网卡
NVIDIA DGX A100,配备 8 个 A100 GPU,采用专业硬件拓扑。通过 PCIe 直接连接 CPU 的存储网卡,为高效数据传输和计算性能提供支持。
从分布式存储读写数据,例如读训练数据、写 checkpoint 等;
正常的 node 管理,ssh,监控采集等等。
针对 GPU 高速互连,官方建议使用 BF3 DPU。然而,如果带宽要求满足,任何解决方案均可使用。
* 经济选择: RoCE(远程直接内存访问)
* 极致性能: IB(InfiniBand)
NVSwitch Fabric 采用 Intra-node Full-Mesh 架构:
* 8个 GPU 通过 6个 NVSwitch 芯片全互连
* 互连中的每条链路带宽为 n 倍的 NVLink 通道带宽
A100采用NVLink3技术,每条通道单向带宽高达300GB/s,全互联模式下,每条链路提供600GB/s双向带宽。
A800 采用 8 lane 设计,每条线速率为 50GB/s,提供 200GB/s 单向带宽,与 12 lane 设计相比,带宽下降了约 33%。
使用 nvidia-smi topo 命令查看 GPU 拓扑结构,可清晰了解 GPU 之间的连接关系。在包含 8 个 A800 GPU 的服务器上,网卡两两进行绑定,形成 4 个 bond:NIC 0-3。
GPU 之间(左上角区域):都是 NV8,表示 8 条 NVLink 连接;
NIC 之间:
跨节点:NODE(跨 PCIe 交换芯片,但无需跨 NUMA)跨 NUMA:SYS(需要跨 NUMA)
GPU 和 NIC 之间:
PCIe 连接类型及其跨接距离:
* 同 CPU、同交换芯片:NODE,跨 PCIe 交换芯片
* 同 CPU、异交换芯片:NODE,跨 PCIe 交换芯片和 Host Bridge
* 异 CPU:SYS,跨 NUMA、PCIe 交换芯片,最远距离
GPU 训练集群组网:IDC GPU fabirc
GPU 节点互联架构:计算网络
GPU 网卡直连至置顶交换机(leaf),leaf 以全连接拓扑连接至 spine,构建跨主机 GPU 计算网络。
这个网络的目的是 GPU 与其他 node 的 GPU 交换数据;
GPU 与独立网卡通过 PCIe 交换芯片连接,形成高速通道:
GPU <--> PCIe 交换芯片 <--> 网卡
存储网络
连接到 CPU 的高速网络,用于数据读取、写入和管理。
RoCE vs. InfiniBand
实现 AI 高性能所需的 RDMA 技术有两种选择:
* RoCE:基于乙太网,成本较低
* InfiniBand:专用于高速数据传输,性能更高
RoCEv2:公有云主流 8 卡 GPU 主机网络方案(如 CX6 8*100Gbps 配置),以低成本提供可观的性能。
数据链路带宽瓶颈分析
单机 8 卡 A100 主机带宽瓶颈分析:
* NVLink 3:400GB/s
* PCIe 4.0:32GB/s
* CPU 内存:256GB/s
超高速互联:NVLink 提供无缝双向互联,速率高达 600GB/s,单向高达 300GB/s,实现 GPU 间高效协作。
通过 PCIe Gen4 交换芯片,同主机 GPU 和网卡之间的连接速度提升至双向 64GB/s,单向 32GB/s。
跨主机 GPU 通信受网卡带宽限制。主流 A100/A800 机型配备 100Gbps 网卡,传输速度为 12.5GB/s。跨机通信性能显著低于主机内通信。
200Gbps==25GB/s:已经接近 PCIe Gen4 的单向带宽;
400Gbps==50GB/s:已经超过 PCIe Gen4 的单向带宽。
400Gbps 网卡仅在支持 PCIe Gen5 的机型中才能充分发挥其性能。
GPU 主机有两种外形规格:
PCIe Gen5
SXM5:性能更高一些
H100 芯片 layout
探索 H100 GPU 芯片的内部架构,揭示其强大的并行处理能力。这枚单芯片集成器包含丰富的逻辑单元,可实现超高效的计算。
4nm 工艺;
搭载 18 根 Gen4 NVLink,实现高达 900GB/s 的惊人双向总带宽,提供卓越的互连性能。
中间蓝色的是 L2 cache;
左右两侧是 HBM 芯片,即显存。
主机内硬件拓扑
基于 A100 8 卡机结构,全新设计:
* 减少 NVSwitch 芯片至 4 个
* 升级 CPU 互联至 PCIe Gen5 x16
* 双向带宽飙升至 128GB/s
组 网
与 A100 也类似,只是标配改成了 400Gbps 的 CX7 网卡, 否则网络带宽与 PCIe Switch 和 NVLink/NVSwitch 之间的差距更大了。
04、典型 4*L40S/8*L40S 主机
L40S 是今年(2023)即将上市的新一代“性价比款”多功能 GPU,对标 A100。除了不适合训练基座大模型之外(后面会看到为什么),官方的宣传里它几乎什么都能干。 价格的话,目前第三方服务器厂商给到的口头报价都是 A100 的 8 折左右。
L40S vs A100 配置及特点对比
L40S 的突出优势在于极短的上市时间,比 A100/A800/H800 快大幅度。这归因于技术和非技术因素,确保客户快速获得所需产品。
比如 FP64 和 NVLink 都干掉了;
使用 GDDR6 显存,不依赖 HBM 产能(及先进封装)。
价格便宜也有几方面原因,后面会详细介绍:
节省成本且性能优越:
优化后的文章:相比 4x/8x GPU,虽然去除了 PCIe Gen4 开关,但整机成本显著节省,其他组件基本免费提供。
L40S 与 A100 性能对比
性能 1.2x ~ 2x(看具体场景);
功耗:两台 L40S 和单台 A100 差不多。
对比 L40S 和 A100 服务器时,建议使用两台 4 卡 L40S 服务器与单台 8 卡 A100 服务器进行对比。需要注意,L40S 官方推荐单机 4 卡。
性能提升的前提是拥有 200 Gbps RoCE 或 IB 网络,这将对性能发挥至关重要的作用。
L40S 攒机
推荐架构:2-2-4
与 A100 的 2-2-4-6-8-8 架构相比,NVIDIA 推荐的 L40S GPU 主机采用 2-2-4 架构。每台机器的物理拓扑如下:
4 卡 L40S GPU 主机拓扑
显著变化:移除 CPU 和 GPU 之间的 PCIe 交换芯片。网卡和 GPU 直接连接至 CPU 上的 PCIe Gen4 x16 端口(64GB/s)。
2 片 CPU(NUMA)
2 张双口 CX7 网卡(每张网卡 2*200Gbps)
4 片 L40S GPU
另外,存储网卡只配 1 张(双口),直连在任意一片 CPU 上
采用NVIDIA L40S GPU,可实现每块GPU 200Gbps网络带宽,大幅提升性能。
与单机4卡相比,单机8卡拓扑需要两片PCIe Gen5 Switch芯片,带来更低的网络延迟和更高的吞吐量。
PCIe Gen5 Switch 单价高昂,单片约为 1 万美元。单台服务器需配双片,总价 2 万美元。
PCIe switch 只有一家在生产,产能受限,周期很长;
平摊到每片 GPU 的网络带宽减半。
组网
官方建议 4 卡机型,搭配 200Gbps RoCE/IB 组网。
数据链路带宽瓶颈分析
L40S GPU主机采用单机4卡设计,可消除主机带宽瓶颈。
不同配置下,L40S提供两种链路选择:
* 直接通过CPU处理:GPU0 → PCIe → CPU → PCIe → GPU1
* 采用外部PCIe交换机:GPU0 → PCIe交换机 → PCIe → GPU1
外部PCIe交换机可提供更大的带宽,提升多卡性能。
PCIe Gen4 x16 双向 64GB/s,单向 32GB/s;
CPU 处理瓶颈?TODO
创新的 PCIe/RoCe/IB 架构绕过 CPU 处理,优化数据路径:
GPU0 → PCIe → 网卡 → RoCe/IB 交换机 → 网卡 → PCIe → GPU1
这一优化方案实现了 GPU 之间数据通信的高效传输,充分利用网卡资源,提升数据处理速度和整体性能。
PCIe Gen4 x16 双向 64GB/s,单向 32GB/s;
平均每个 GPU 一个单向 200Gbps 网口,单向折算 25GB/s;
优化 NCCL 性能:
针对 L40S GPU,启用 NCCL 最新版本以优化性能。新版本支持直接连接,消除迂回路径,显著提升通信效率。
通过 RoCE/IB 200Gbps 网络实现更快速的文件传输。
在充足的网络带宽下,该方式可显著提升传输速度,前提是网卡和交换机满足要求。
跨 GPU 通信性能与位置无关,无论是同一设备还是不同 CPU。集群可通过横向扩展(scaling up)提升容量。
GPU 成本优化,但对网络带宽需求低的业务却将 NVLINK 成本转移至网络,需构建 200Gbps 网络以发挥 L40S 多卡训练潜能。
L40S:200Gbps(网卡单向线速)
A100:300GB/s(NVLINK3 单向) == 12x200Gbps
A800:200GB/s(NVLINK3 单向) == 8x200Gbps
L40S卡间带宽逊色于A100 NVLINK(12倍)和A800 NVLink(8倍),限制了其在数据密集交互的基础大模型训练中的应用。
测试注意事项
如上,即便只测试单机 4 卡 L40S 机器,也需要搭配 200Gbps 交换机,否则卡间性能发挥不出来。
-对此,您有什么看法见解?-