参考链接
https://medium.com/@amitparekh/solving-ddp-deadlock-with-multiple-gpus-and-amd-cpus-442186632034
简要说明
- AMD的IOMMU 和NVIDIA的NCCL不兼容问题导致
- AMD的IOMMU是BIOS 级组件,它基本上充当将虚拟地址映射到 GPU 上的物理地址的接口,它的全部目的是让 CPU 和 GPU 的内存更好地协同工作
- NVIDIA的NCCL是Nvidia的多卡通信库,用于深度学习中的多GPU并行训练
解决方案 (关闭IOMMU)
- ubuntu
bash
sudo bash -c'echo GRUB_CMDLINE_LINUX="amd_iommu=off" >> /etc/default/grub'
sudo grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
sudo reboot
- centos
bash
sudo bash -c'echo GRUB_CMDLINE_LINUX="amd_iommu=off" >> /etc/default/grub'
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
sudo reboot