最近在调一个语义分割模型(DeepLabV3+,backbone是ResNet50),单卡batch size只能开到6,想着用两张3090试试多卡。先试了nn.DataParallel,发现第一张卡显存占用直接飙到23G,第二张卡只有15G左右,感觉负载完全没均衡。后来换了DistributedDataParallel,虽然显存均衡了一些,但遇到一个问题:我代码里有几个BN层,DDP默认会同步BN,结果训练速度反而变慢了。想问下各位,是不是我哪里设置有问题?DDP做同步BN是不是一定比DP快?还有没有其他因为多卡引起的坑(比如数据加载、loss计算)需要注意的?感谢!