Skip to content

集群

AI 的计算需要消耗大量的计算资源,AI 引擎需要基于分布式集群为前提进行设计和实现。单张 GPU 的算力和显存有限,训练大模型(如 GPT-3 175B)需要数千张 GPU 协同工作,推理高并发请求也需要多 GPU 甚至多机集群。分布式集群涉及通信拓扑、硬件互联、集合通信等多个层面,需要在算法、系统和工程三个层面进行协同优化。

硬件互联

集群内部的通信带宽直接影响分布式训练和推理的性能。从 GPU 到 GPU,从节点到节点,不同层次的通信技术带宽差异巨大。

互联技术带宽延迟覆盖范围适用场景
NVLink450-900 GB/s<1 μs节点内(8 卡)张量并行、高频通信
PCIe 5.064 GB/s~1 μs节点内(CPU-GPU)数据传输
InfiniBand NDR400 Gbps (50 GB/s)~1 μs节点间数据并行、跨节点通信
RoCE v2100-200 Gbps (12.5-25 GB/s)~2 μs节点间以太网 RDMA
以太网25-100 Gbps (3-12 GB/s)~10 μs节点间成本敏感场景

NVLink 是 NVIDIA 的 GPU 间高速互联技术,带宽远超 PCIe,适用于节点内的高频通信(如张量并行)。InfiniBand 是数据中心级的高性能网络,带宽接近 PCIe、延迟低,适用于跨节点通信。RoCE(RDMA over Converged Ethernet)允许在以太网上进行 RDMA,成本低于 InfiniBand 但性能也略低。

通信层次

分布式训练和推理的通信可分为三个层次:机内通信(GPU-GPU)、机间通信(节点-节点)、跨机房通信(数据中心-数据中心)。

机内通信通过 NVLink 或 PCIe 完成,带宽高延迟低,适合张量并行等高频通信场景。机间通信通过 InfiniBand 或以太网完成,带宽较低,适合数据并行等低频通信场景。跨机房通信用于跨数据中心训练(如联邦学习),带宽最低且延迟最高,需要专门的优化算法(如梯度压缩、异步训练)。

通信优化

通信与计算重叠(overlap)是将通信时间隐藏在计算时间中的关键技术。DeepSpeed 的梯度预取在前向传播计算层 i 的梯度时,预取层 i+1 的参数到显存,同时同步层 i-1 的梯度,实现三级流水。梯度累积是简单示例:在前向传播计算 mini-batch 1 的同时,同步 mini-batch 0 的梯度。

拓扑感知通信根据网络拓扑优化通信路径。8 张 GPU 组成的单机,ring allreduce 比树状通信效率更高;64 台机器组成的集群,hierarchical allreduce(节点内用 ring,节点间用 tree)最优。NCCL 会自动检测拓扑,选择最优通信算法。

通信库

NCCL(NVIDIA Collective Communications Library)是 NVIDIA 提供的集合通信库,针对 NVIDIA GPU 和网络优化,性能远高于开源实现(如 Gloo、MPI)。RCCL 是 AMD GPU 的对应实现。Gloo 是 PyTorch 的通用通信后端,支持 CPU 和 GPU,适合开发测试环境。