要真正理解现代AI训练的底层硬件,我们首先需要揭开GPU系统架构的神秘面纱。这里我们先聚焦一个典型的配置:由8块NVIDIA A100或A800 GPU组成的节点内部,究竟隐藏着哪些关键组件。
A100 GPU拓扑结构解析
从拓扑图中可以清晰看到,由8块A100 GPU构成的系统包含了以下核心部件:
- 两颗CPU芯片:及其两侧相关联的内存,构成NUMA架构,负责调度与执行通用计算任务。
- 两块存储网络适配卡:用于访问分布式存储系统,同时承担带内管理等多种职责。
- 四颗PCIe Gen4交换芯片:采用第四代PCIe接口,提供更高的数据传输速率。
- 六颗NVSwitch芯片:这是实现GPU间高速直连的关键硬件,对大规模深度学习节点和并行计算任务的效率至关重要。
- 八块A100 GPU:作为主要算力单元,专为AI和深度学习这类并行计算任务而设计。
- 八块GPU专用网络适配卡:每块GPU均配备一张专属网卡,旨在优化GPU间的通信,提升并行处理任务的整体性能。
接下来,我们对其中几个关键组件进行进一步拆解分析。
存储网络卡
在GPU架构中,存储网络卡的定位非常明确:通过PCIe总线与CPU相连,负责与分布式存储系统进行交互。它的主要任务包括:
- 读写分布式存储数据:这是它的核心职能。在深度学习模型训练过程中,需要频繁地从各个存储节点读取训练数据,并将训练结果写入检查点文件,这些操作都离不开它。
- 节点管理任务:它不仅仅是数据搬运工。像通过SSH进行远程登录、监控系统性能、收集运行数据等管理性任务,也由它一并承担,这些对于维护整个GPU集群的健康状态至关重要。
虽然官方推荐使用BF3 DPU,但在实际部署中,只要带宽需求能够满足,完全可以选择替代方案。例如,从成本效益角度考虑,RoCE是不错的选择;如果追求极致性能,那么InfiniBand依然是首选方案。
NVSwitch 网络结构
在完全互联网络拓扑中,每个节点都直接与所有其他节点相连。以典型的8卡A100系统为例,它通过6颗NVSwitch芯片实现全互联配置,这整套机制就被称为NVSwitch架构。
在这个全互联结构中,每条链路的带宽取决于单个NVLink通道的带宽。以搭载NVLink3技术、单通道带宽为50GB/s的A100 GPU为例,在全互联配置下,每条链路的总带宽是12条通道乘以50GB/s,达到600GB/s。需要注意的是,这是双向带宽(同时支持收发),因此单向带宽为300GB/s。
相比之下,A800 GPU将NVLink通道数量缩减到了8条。这意味着在全互联结构中,每条链路的总带宽变成了8乘以50GB/s,即400GB/s,单向带宽也相应降为200GB/s。
从nvidia-smi的拓扑图中,我们可以进一步理解这些连接关系:
- GPU与GPU之间的连接(左上区域):所有连接都标记为NV8,表示它们之间通过8条NVLink直连。
- 网络接口卡(NIC)连接:在同一CPU芯片内部,标记为NODE,表示无需跨越NUMA结构,但需要穿越PCIe交换芯片。在不同CPU芯片之间,则标记为SYS,意味着必须跨越NUMA结构。
- GPU至NIC的连接:在同一CPU芯片且同一PCIe交换芯片下,标识为NODE,只需穿越PCIe交换芯片。在同一CPU芯片但不同PCIe交换芯片下,指定为NNODE,需要同时穿越PCIe交换芯片和PCIe主机桥接芯片。在不同CPU芯片之间,标记为SYS,这意味着需要跨越NUMA结构、PCIe交换芯片,是距离最远的路径。
GPU节点互联架构
当我们把视角从单机扩展到集群,GPU节点间的互联架构就变得至关重要。这主要涉及两个网络:
计算网络
顾名思义,计算网络主要用于连接GPU节点,让它们能够协同工作、并行计算。这包括在多个GPU之间传输数据、共享计算结果,以及协调大规模并行计算任务的执行。
存储网络
存储网络则负责连接GPU节点和存储系统,支持大规模数据的读写操作。无论是将数据从存储系统载入GPU内存,还是把计算结果写回存储系统,都依赖它。
为了满足AI应用对高性能的需求,无论是计算网络还是存储网络,RDMA技术都是关键。在RoCEv2和InfiniBand这两种RDMA技术之间做选择,本质上是在成本效益和卓越性能之间进行权衡,每个选项都针对特定的应用场景和预算进行了优化。
一个值得注意的趋势是,公共云服务商通常更倾向于采用RoCEv2网络,比如常见的CX配置——8个GPU实例,每个配备8个100Gbps端口。只要性能达标,RoCEv2在成本上确实更有优势。
数据链路连接中的带宽瓶颈
这张图表清晰地标出了关键连接的带宽规格,也揭示了一个常见的瓶颈:
- 同一主机内,GPU之间通信:通过NVLink技术,双向带宽可达600GB/s,单向为300GB/s,这是最快的路径。
- 同一主机内,GPU与其各自NIC之间通信:通过PCIe Gen4交换芯片,双向带宽为64GB/s,单向为32GB/s。
- 不同主机间,GPU之间通信:数据依赖NIC进行传输,带宽取决于具体网卡规格。目前国内A100/A800常用的网卡,主流单向带宽为100Gbps(12.5GB/s)。这意味着和机内通信相比,跨主机的GPU通信性能会显著下降。
另一个关键点是:200Gbps(25GB/s)的网卡带宽已接近PCIe Gen4的单向带宽极限,而400Gbps(50GB/s)则已经超越了它。因此,在这种配置下强行上400Gbps网卡并不会带来预期的性能提升,要发挥其全部实力,需要PCIe Gen5级别的支持。
8x NVIDIA H100 / 8x NVIDIA H800 主机
H100主机内部的硬件拓扑结构
H100主机的整体硬件架构与A100八卡系统非常相似,但也在关键细节上做了升级,主要体现在NVSwitch芯片数量和带宽上。
每个H100主机内部配置了4颗NVSwitch芯片,比A100的6颗有所减少。但这并不意味着性能降低。H100芯片采用4纳米工艺制造,底部一排配备了18条Gen4 NVLink连接,提供了高达900GB/s的双向总带宽。
H100 GPU 芯片
这颗芯片采用了尖端的4纳米工艺。芯片底部的一排18个Gen4 NVLink连接,提供了双向总带宽(18通道 * 每通道25GB/s = 900GB/s)。中央的蓝色区域是L2高速缓存,作为临时数据的高速缓冲区。而芯片左右两侧集成的则是HBM高带宽内存,直接服务于图形处理所需的数据存储。
