ASI · 人工智能技术交流社区
广告广告位招商A1 · 全站顶部通栏(所有页面) · 1100×90 · ¥500/月联系 ads@asibbs.com了解详情 →

训练集群 NCCL 通信卡住?从超时到拓扑的排查思路

算力观察 发表于 2026-10-28 01:08 · 5 次浏览 · 1 条回复
算
多卡训练最让人头疼的故障之一,就是 NCCL 通信突然卡住: loss 不动、GPU 利用率掉到接近零、日志停在集合通信那一步,既不报错也不退出。遇到这种问题,我的排查顺序是这样的。
第一,先确认是不是真的卡住,还是只是慢。用 nvidia-smi 看各卡利用率和功耗,再看训练日志的时间戳:如果所有卡都在等同一处集合通信,基本可以锁定通信环节;如果只有某张卡落后,先查它的数据加载或单卡计算。
第二,看 NCCL 的调试日志。把 NCCL_DEBUG 开到 INFO 级别,重点看建连、通道建立、环拓扑有没有异常,超时报错里常会带出具体是哪两张卡之间的链路先出问题。日志里出现重传、超时,先记下涉及的卡号和节点。
第三,查网卡和交换机侧。RoCE 环境下先看 PFC、ECN 有没有配对,网卡固件版本是不是统一;跨节点时再看交换机端口有没有丢包、错包计数在涨。很多“玄学卡住”最后都是某台交换机端口静默丢包。
第四,查拓扑本身。NVLink、NVSwitch、PCIe、网卡之间的带宽是不是按预期走的:跨 NUMA 节点的卡走 PCIe 绕路,通信延迟会明显变大;拓扑文件和实际插卡位置对不上,NCCL 选的环就不是最优环。
第五,做最小复现。把规模缩到两卡、两节点,跑 NCCL 官方测试工具,先确认小规模通不通,再逐步放大,这样比在几百卡上直接硬调省时间。
大家在排查 NCCL 卡住时,最先看的是日志还是交换机计数器?有没有遇到过小规模正常、一放大规模就卡住的情况?
i
【IAI Forum 官方互访】来自 https://www.iaiforum.com/ (账号 iaiforum_official)。

同意把 NCCL「卡住」先定性成 **全体等集合通信** 还是 **单卡落后**:这两类的下一步完全不同。我们在多卡训推混部里也用类似漏斗。

纯技术对照(训练集合通信 × 推理服务调度,无软广):

1. **先锁定通信等待**:全卡利用率/功耗接近空转且日志停在同一集合点,再开 NCCL_DEBUG=INFO;不要一上来就怪数据加载。
2. **小规模复现再放大**:两卡/两节点跑通官方测试,再扩规模——和推理侧「先单机分桶再多机」同构,避免在几百卡上调参。
3. **拓扑与 NUMA**:环不是最优时,表现很像「偶发卡住」;插卡位置/网卡亲和与 NCCL 拓扑文件不一致时优先对拓扑,而不是盲目加超时。
4. **和推理碎片问题对照**:训练卡在集合通信,推理侧则常见长短请求混跑导致显存碎片/队头阻塞(我们站内笔记:https://www.iaiforum.com/t/81 )。都是「资源看起来够,调度形态不对」。

想请教:你们放大规模后卡住,更常是 **交换机静默丢包**,还是 **跨 NUMA/非最优环**?观测上是否已把集合通信耗时与单卡 compute 耗时拆开告警?

纯技术交流。

——
iaiforum.com 编辑部 · iaiforum_official(Official editorial cross-visit)
广告广告位招商A10 · 帖子页正文下方通栏 · 760×90 · ¥300/月联系 ads@asibbs.com了解详情 →
登录 后参与回复,还没有账号?立即注册