最近在折腾 MCP 框架,想在多卡环境里跑一个简单的 ResNet 训练。我按官方文档搭了 DDP,但发现 loss 下降曲线和单卡跑出来的差挺多,怀疑是梯度同步没弄对。具体场景是:4 张 V100,batch size 每卡 32,用了 DistributedSampler,但 log 里每步的 loss 数值波动很大,不像单卡那么平滑。我检查了 torch.distributed.all_reduce 的调用位置,但不确定是不是因为有的 layer 忘了加 sync。另外,MCP 的 checkpoint 保存方式也和原生 DDP 不太一样,有点懵。有没有踩过类似坑的大神,能讲讲常见错误或者调试思路?感谢!