基础知识:AI集群网络的基本概念与术语
在深入AI算力集群的网络拓扑与布线之前,必须先建立一套共同的语言。AI集群网络与传统数据中心网络(如企业办公网、互联网服务)有显著差异:它承载的是分布式并行训练产生的“东西向”流量,且流量模式具有高度的突发性和同步性。理解本节的核心概念,是后续分析拓扑选型与布线方案的前提。
2.1 节点(Node):算力的基本单元
在AI集群语境下,节点通常指一台参与计算的服务器,有时也特指其中的GPU或NPU加速卡。为了区分不同层级,我们常使用以下术语:
- 计算节点(Compute Node):一台完整的服务器,包含CPU、内存、多块加速卡(如8张GPU)、网卡及本地存储。它是集群中可独立分配资源的最小单位。
- 加速卡(Accelerator):即GPU/NPU/TPU,是执行矩阵运算的核心。在讨论网络时,我们更关心加速卡对外提供的网络接口(如NVLink、InfiniBand或RoCE端口)。
- 逻辑节点:在分布式框架(如PyTorch DDP)中,一个“进程”常被视为一个逻辑节点,它可能对应一张GPU卡。
2.2 交换机(Switch):流量交汇的核心
交换机是网络中的“十字路口”。AI集群中使用的交换机主要分为两类:
- 计算网络交换机:用于连接GPU服务器,要求极高的带宽和极低的时延。典型端口速率为400Gbps或800Gbps(InfiniBand NDR/XDR或以太网800GE)。
- 存储/管理网络交换机:用于连接存储阵列和带外管理接口,对带宽要求相对较低,通常使用25G/100G以太网。
交换机最重要的参数是端口速率与交换容量。例如,一台拥有64个400G端口的交换机,其交换容量至少为64 × 400G × 2(全双工)= 51.2Tbps。若交换容量不足,则会产生内部丢包。
2.3 链路(Link)与端口(Port)
链路是连接两个网络设备的物理通道,包括光模块、光纤/铜缆和两端接口。在AI集群中,链路质量直接决定训练效率。关键属性包括:
- 端口速率:如400Gbps,指单向理论带宽。
- 链路类型:直连铜缆(DAC)用于短距离(≤5米),功耗低;有源光缆(AOC)用于中等距离(≤30米);可插拔光模块+光纤用于长距离(≥30米),但成本与故障率更高。
- 链路聚合(LAG):将多条物理链路捆绑为一条逻辑链路,但AI流量常使用ECMP或动态路由,LAG并不常用。
2.4 带宽(Bandwidth)与吞吐量(Throughput)
带宽是理论最大传输速率,而吞吐量是实际有效传输速率。两者之差即为协议开销与重传损耗。在AI集群中,我们更关注对分带宽(Bisection Bandwidth)——即将网络切成两个等大半时,跨半通信可获得的最大带宽。对分带宽越高,网络拥塞概率越低。
以典型的8卡GPU服务器为例,若每张GPU配置1张400G网卡,则单服务器对外总带宽为8 × 400G = 3.2Tbps。若集群有100台服务器,则理论上所有GPU同时通信时,网络核心需提供至少 100 × 3.2Tbps / 2 = 160Tbps 的对分带宽(按胖树拓扑计算)。
2.5 时延(Latency)的构成
时延是影响同步训练效率的第二大因素。一次网络传输的总时延可分解为:
- 发送端时延:网卡将数据从GPU显存搬移到网卡缓存并发出,约1-3微秒。
- 传播时延:光信号在光纤中传输,每米约5纳秒。10米线缆约0.05微秒,可忽略。
- 交换时延:交换机存储转发或直通转发引入的时延,通常为0.3-1微秒/跳。
- 接收端时延:网卡接收并写入GPU显存,约1-3微秒。
2.6 关键术语速查表
| 术语 | 英文缩写 | 定义/说明 | AI集群中的典型值 |
|---|---|---|---|
| 节点 | Node | 计算服务器或GPU | 1台服务器=8 GPU |
| 交换机 | Switch | 转发数据帧的设备 | 64端口400G |
| 链路 | Link | 物理连接通道 | 400G DAC/AOC |
| 带宽 | BW | 理论最大速率 | 400Gbps/端口 |
| 对分带宽 | Bisection BW | 网络分割后的跨半带宽 | ≥ 总带宽的50% |
| 时延 | Latency | 数据从源到目的的时间 | 单跳≤1μs |
| 跳数 | Hop | 经过的交换机数量 | 典型2-5跳 |
| ECMP | Equal-Cost Multi-Path | 等价多路径负载均衡 | 基于哈希 |
| RoCE | RDMA over Converged Ethernet | 以太网上的RDMA | v2版本 |
2.7 核心原理:为什么AI网络需要“无损”与“低时延”?
传统TCP/IP网络在拥塞时会丢包并重传,这会导致GPU等待时间呈指数级增长。AI训练采用同步并行(如All-Reduce),所有GPU必须等待最慢的GPU完成通信才能进入下一轮迭代。因此,网络必须提供:
- 无损传输:通过流控机制(如InfiniBand的链路级流控或RoCE的PFC优先级流控)避免丢包。
- 低时延:减少交换跳数,使用RDMA(远程直接内存访问)绕过操作系统内核。
2.8 案例:一个典型8卡GPU服务器的网络视图
以NVIDIA DGX A100/H100服务器为例,其内部有8张GPU,每张GPU通过PCIe或NVLink连接到一个智能网卡(SmartNIC)或CX-7 InfiniBand网卡。服务器对外提供8个400G端口,分别连接到两台架顶交换机(TOR)以实现冗余。
# 查看服务器网络配置(Linux环境)
$ ibstat | grep -E "Port|Rate|State"
Port 1: State: Active, Physical: LinkUp, Rate: 400 (Gbps)
Port 2: State: Active, Physical: LinkUp, Rate: 400 (Gbps)
...
Port 8: State: Active, Physical: LinkUp, Rate: 400 (Gbps)
# 查看路由与连通性
$ ibroute -n 1 | head -20
在训练任务中,NCCL(NVIDIA Collective Communications Library)会检测这些端口并建立通信组。若某条链路断开,NCCL会自动降级使用剩余链路,但带宽会下降,导致训练变慢。
2.9 常见误区与复盘
实际:若时延过高或发生拥塞,高带宽也无法发挥。例如,若交换机缓冲不足,突发流量会导致丢包,触发TCP/RoCE重传,实际吞吐量可能下降50%以上。
误区2:忽略“跳数”对同步训练的影响。
实际:在All-Reduce操作中,每增加一跳,同步时间增加约1-2微秒。对于千卡集群,每轮迭代若增加10微秒,整体训练时间可能增加数小时。
误区3:混淆“端口速率”与“实际吞吐”。
实际:400G端口在RoCEv2下,由于PFC和ECN开销,实际最大有效吞吐约为380-390Gbps。设计时需预留10%余量。