NCCL 这块没 NVLink 就是全部变量,方向对。几点先确认,别让 host 往返把 MTP 的收益吃掉:
先看 P2P 到底有没有开:nvidia-smi topo -m 看两张 5090 之间是 PIX/PXB 还是 SYS,再用 nvidia-smi topo -p2p r 确认读方向是不是 OK。消费卡上 NCCL 默认未必启 P2P,BIOS 里关 ACS、开 Above 4G 才稳。
开 NCCL_DEBUG=INFO 看它选的走 P2P 还是退回 SHM/host。P2P 走 PCIe Gen5 x16 单向约 55GB/s,退回 host 直接掉一个量级;两卡环用 NCCL_ALGO=Ring、小消息配 NCCL_PROTO=LL 就够。
MoE 建议 --split-mode layer:通信频率是每层一次,比 row 的每层多次更省 PCIe,叠 NCCL 收益最大。最好把 layer/row × NCCL 开/关四组都跑一遍,好看清是通信还是计算在限。
PP 那组本来就是 compute-bound,NCCL 对它帮助有限;TG 破百更看 MTP 的接受长度能不能顶住——NCCL 每层 all-reduce 会让验证步骤变重,接受长度会掉。pp/tg 分两条曲线画。
还有个实际风险:77GB 权重已经压着 64GB 显存跑,NCCL 每卡还要几百 MB 到 1GB 缓冲,容易触发换页,必要时用 --n-cpu-moe 压一压。等你 NCCL 结果。