问题出现在我将torch1.5.1升级到1.7.0时,使用分布式计算出现了不支持nccl,从而无法进行单机多卡计算。所以这提醒我们环境能用的情况下千万千万不要去更新(未更新之前我是可以使用分布式计算的。。。)。
- 扯远了,回归正题。当出现这个问题的时候我先将cuda10.1与对应的cudnn重新安装。然后重新跑程序发现还是不能进行分布式。
- 然后我将torch1.7.0退回1.5.1再跑,发现还是不能进行分布式,而且还出现了新问题:RuntimeError: CUDA out of memory. Tried to allocate 2.18 GiB (GPU 0; 15.92 GiB total capacity; 13.71 GiB already allocated; 1.25 GiB free; 13.74 GiB reserved in total by PyTorch) 是的你没看错就是显存爆炸问题。具体解决方案请见我另一篇博客显存爆炸解决方案
- 接下来重头戏来了我使用了终极绝招,卸载anaconda并卸载所有环境,然后重新安装所有的包,最后问题迎刃而解。哈哈。但是我不能肯定就是重装就是解决问题的关键所以我将解决问题的过程记录下来以防再遇见。
2020.11.20更新:此方案无效,后续跑程序时又出现不支持NCCL。具体原因未知,一会有一会没有,但是并不妨碍并行的正常使用。猜测可能时torch底层可能出现了问题。