分布式 AI 集群跑起来之后,很多人发现 GPU 利用率上不去,卡长时间在等通信,问题大多出在 RoCE 链路调优不到位,不是算力不够。贵阳贵安智算机房现在大量上 25G、100G RoCE 组网,真正决定多机训练效率的,是无损以太网的参数匹配,而不是网卡标称带宽。
通信优化..步是把 GPU 显存和网卡打通,开启 GPUDirect RDMA,让梯度数据直接在 GPU 显存和 RNIC 网卡之间搬运,不再经过主机内存和 CPU。如果没开这个通道,每一步 AllReduce 都要走一次 host 内存拷贝,CPU 会被打满,通信延迟直接翻倍,多机线性加速比会很难看。上机前要核对网卡、CUDA 驱动、NCCL 版本三者兼容,固件升级到厂商推荐稳定版,不要用..测试版。
交换机侧的 PFC 优先级流控是 RoCE 的命门。要把 RoCE 流量映射到单独的优先级队列,其他业务流量、管理流量走普通队列,不能混。PFC 的水线要根据端口速率和缓冲区大小逐端口调,水线设太高,拥塞发生了不及时暂停,丢包后 RoCE 会重传,性能断崖式下跌;水线设太低,容易触发全局暂停,整网卡顿,也就是常说的 PFC 死锁。贵阳机房很多智算机柜是新交付,初装时交换机默认参数经常没调好,验收的时候必须跑满载 NCCL 测试,观察暂停帧计数和重传包,不能只看空载 ping。
ECN 拥塞通知要和 PFC 配合开启,在队列快满之前就给网卡发拥塞标记,让传输端主动降速,而不是等到缓冲区堆满再 PFC 暂停。ECN 的..小、..标记阈值要和 PFC 水线错开,留出缓冲区间。很多集群只开 PFC 不开 ECN,或者 ECN 阈值设得比 PFC 水线还高,等于白开,尾延迟会明显波动。
流量规划上要做无阻塞的 leaf-spine 拓扑,GPU 服务器每个 leaf 交换机下的节点数控制好,避免上联带宽成为瓶颈。25G 接入、100G 上联是主流配比,oversubscription ratio 尽量压到 4:1 以内,全参数大模型训练建议做到 1:1。RoCE 无损网里不要混跑快照备份、日志抓取、大文件拷贝,这些流量会挤占队列、触发 PFC 暂停,把训练通信拖慢。管理网、存储网、计算网三套物理分开,哪怕成本高一点,长期稳定性远好于 VLAN 硬切。
NCCL 层面要把通信域拆好,梯度同步用 Ring 或 Tree AllReduce,配合 GPU 拓扑感知,NVLink/NVMesh 内部走机内高速互联,跨机才走 RoCE。nccl-test 要跑多机多卡的 bw、test,看 busbw 和 algbw,理想情况下跨机带宽能打到网卡标称的 70% 以上。如果只有 30% 到 50%,基本就是 PFC、ECN、路由或者线缆的问题。
监控指标要落地,每台 RNIC 的暂停帧、ECN 标记包、重传包、队列溢出、网卡 PCIe 错误都要采集进监控系统,告警阈值设好。很多集群训练到半夜突然变慢,查下来是某条光缆衰减、某个交换机端口缓冲区异常。定期跑满载压测,不能只靠训练日志里的通信时间判断。
贵阳机房落地的特殊点是制冷和供电,智算机柜封闭冷通道要..风道密闭,GPU 长时间满载发热量巨大,如果热风回流导致网卡或者交换机过热,RoCE 链路会出现间歇性丢包。机柜电力要给足持续功率,不是瞬时峰值,GPU 和交换机共享 PDU 的时候要算清楚余量。机房运维团队要懂 RoCE 排障,不是会重启交换机就行,PFC 计数器、ECN 标记、队列水线这些参数要看得出问题。
(声明:本文来源于网络,仅供参考阅读,涉及侵权请联系我们删除、不代表任何立场以及观点。)
标签: