GPU集群网络为什么选InfiniBand而不是以太网
大模型训练和推理对网络带宽和延迟的要求远超传统数据中心业务。8卡A100/H100服务器之间做AllReduce操作时,每轮梯度同步需要传输数十GB数据。以太网(即使100G/400G)的RDMA over Converged Ethernet(RoCEv2)在拥塞场景下延迟抖动严重,而InfiniBand凭借硬件级流控和无损传输,在大规模GPU集群中是事实标准。
InfiniBand的HDR(200Gbps)和NDR(400Gbps)是目前主流速率。200Gbps HDR单端口实测带宽约190Gbps,延迟低于1微秒;NDR 400Gbps端口实测约380Gbps。选择HDR还是NDR取决于集群规模和预算——64节点以内HDR足够,128节点以上建议NDR。
InfiniBand网络架构设计
胖树(Fat-Tree)拓扑是GPU集群的标准方案,保证任意两个节点间等带宽无阻塞:
两层胖树(64节点方案):
– 8台叶交换机(每个连接8台GPU服务器)
– 4台脊交换机(每个连接所有8台叶交换机)
– 每台服务器1张HDR HCA卡,2个200Gbps端口
– 叶-脊间每个连接2条HDR链路做端口聚合
三层胖树(512节点方案):
– 64台叶交换机
– 32台脊交换机
– 16台核心交换机
– 需要NDR交换机支撑
线缆选择:机柜内部用DAC直连铜缆(3米以内),跨机柜用AOC有源光缆或光模块+光纤。NDR 400Gbps推荐QSFP-DD光模块配合OM4多模光纤。
Mellanox OFED驱动安装与配置
GPU服务器安装InfiniBand HCA卡后,需要安装Mellanox OFED驱动:
# 检查HCA卡识别
lspci | grep Mellanox
# 安装MLNX_OFED(CentOS/RHEL 8)
wget https://content.mellanox.com/ofed/MLNX_OFED-5.10-1.0.3.0/MLNX_OFED_LINUX-5.10-1.0.3.0-rhel8.9-x86_64.iso
mount -o ro,loop MLNX_OFED_LINUX-*.iso /mnt
/mnt/MLNX_OFED_INSTALL.sh --all
# 重启后验证
ibv_devinfo
ibstat
# 确认端口状态为Active
# Port 1: State: Active, Physical state: LinkUp, Rate: 200
子网管理器配置:
InfiniBand网络需要子网管理器(OpenSM)分配GID和LID。生产环境推荐在两台交换机上运行主备OpenSM:
# 在交换机上启用OpenSM
# 主SM配置
opensm --create-config /etc/opensm/opensm.conf
# 修改 opensm.conf:
# sm_priority = 0 # 主SM优先级最高
# subnet_prefix = 0xfe80000000000000
# 备SM配置(另一台交换机)
# sm_priority = 1 # 备SM优先级低于主SM
# subnet_prefix = 0xfe80000000000000
# 启动OpenSM服务
systemctl enable opensmd
systemctl start opensmd
网络性能调优关键参数
InfiniBD网络调优涉及HCA卡、交换机和操作系统三方面:
HCA卡调优:
# 开启自适应路由(NDR交换机必需)
echo adaptive_routing=1 > /sys/class/infiniband/mlx5_0/tc/adaptive_routing
# 调整发送引擎数量
mlxconfig -d /dev/mst/mt4123_pciconf0 set NUM_OF_EQ=8
# 确认PCIe链路宽度与速率
lspci -vvv -s 3b:00.0 | grep Width
# 期望: Width x16, Speed 16GT/s (PCIe 4.0)
操作系统网络参数:
# /etc/sysctl.conf
net.core.rmem_max = 2147483647
net.core.wmem_max = 2147483647
net.ipv4.tcp_rmem = 4096 87380 2147483647
net.ipv4.tcp_wmem = 4096 65536 2147483647
# 关闭NUMA平衡(GPU训练场景)
kernel.numa_balancing = 0
# 巨页配置(大模型训练建议1GB巨页)
echo 32 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
echo 32 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
GPU算力调度方案
多用户共享GPU集群需要算力调度系统。主流方案有三类:
方案一:SLURM——HPC领域最成熟的调度器,支持GPU拓扑感知调度:
# slurm.conf GPU拓扑配置
GresTypes=gpu
NodeName=gpu[01-08] CPUs=128 Gres=gpu:8 RealMemory=1024000
# 提交8卡训练任务
sbatch --job-name=llm-train \
--nodes=4 \
--ntasks-per-node=1 \
--gres=gpu:8 \
--time=72:00:00 \
train.sh
# 查看GPU使用情况
squeue -u $USER
sacct -j <jobid> --format=JobID,AllocNodes,AllocTRES,State
方案二:Kubernetes + GPU Operator——云原生场景首选:
# GPU节点打标签
kubectl label nodes gpu01 nvidia.com/gpu.product=A100-SXM4-80GB
# Pod申请GPU资源
apiVersion: v1
kind: Pod
metadata:
name: llm-training
spec:
containers:
- name: trainer
image: pytorch/pytorch:2.3-cuda12.4
resources:
limits:
nvidia.com/gpu: 8
volumeMounts:
- name: shm
mountPath: /dev/shm
volumes:
- name: shm
emptyDir:
medium: Memory
sizeLimit: 64Gi
方案三:Slack与共享调度——多租户场景,空闲GPU自动回收给低优先级任务使用。
常见网络故障诊断
问题1:ibstat显示Port State为Initializing
原因通常是OpenSM未运行或子网分配失败。检查OpenSM状态:systemctl status opensmd,查看日志/var/log/opensm.log。
问题2:ibv_devinfo报couldn’t open device
驱动未正确加载。执行modprobe mlx5_core,确认lsmod | grep mlx5输出正常。
问题3:NCCL训练时出现rank超时
大概率是网络不通或IB端口速率不一致。排查步骤:
# 在所有节点执行,确认IB端口一致
ibstat | grep "Rate:"
# 测试节点间带宽
ib_write_bw -d mlx5_0 --size=4194304 -n 100 <server_ip>
# NCCL调试环境变量
export NCCL_DEBUG=INFO
export NCCL_IB_DISABLE=0 # 确保启用IB
export NCCL_IB_HCA=mlx5 # 指定HCA卡
export NCCL_SOCKET_IFNAME=ib0 # 指定IB接口
问题4:PFC拥塞导致性能下降
RoCEv2网络中常见,InfiniBand原生无损传输一般不会触发。如果混合部署RoCEv2和IB,检查PFC优先级映射:
# 查看PFC统计
mlx5ctl -d /dev/mst/mt4123_pciconf0 --pc
# 丢包统计
ethtool -S ib0 | grep -i drop
监控体系搭建
GPU集群需要三层监控:网络层、GPU层、任务层。
Prometheus + Grafana监控方案:
# node_exporter 采集IB网络指标
# dcgm-exporter 采集GPU指标
# slurm-exporter 采集任务调度指标
# Grafana关键看板
# 1. IB网络带宽利用率(per node)
# 2. GPU利用率/显存占用/温度/功耗
# 3. NCCL AllReduce延迟分位值
# 4. 任务排队数与GPU分配率
# 5. IB链路误码率(symbol_error, physical_error)
告警规则中重点关注:IB端口状态变为Down、GPU温度超过85度、NCCL AllReduce延迟P99超过阈值、GPU显存OOM。
GPU集群网络的稳定性直接决定训练任务的成败。每次网络拓扑变更后,务必用ib_write_bw和nccl-tests做全量性能回归测试,确保无静默降级。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/gpu-fu-wu-qi-ji-qun-infiniband-zu-wang-fang-an-yu-suan-li/