问题信息

使用 cuda 进行训练
使用 4 个GPU进行训练
Epoch [1/20]: 0%| | 0/3184 [00:00<?, ?it/s]Bus error (core dumped)

执行方式

 self.model = nn.DataParallel(self.model)
 self.model = self.model.to(self.device)

4张GPU均正常,单独指定使用任何一张都可正常执行,运行内存够大,但是一启动4GPU,4张显卡刚起来就error

解决方式

--ipc=host:让 DDP / NCCL 可以使用宿主机充足的 IPC 资源;
--shm-size=16g:确保 /dev/shm 足够大,避免共享内存耗尽导致 SIGBUS。
按照如下命理构建容器即可

docker run -itd \
  --privileged=true \
  --gpus all \
  --name pytorch_ddp \
  --ipc=host \
  --shm-size=16g \
  -v /mnt:/mnt \
  pynncu121:1.1 \
  bash
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐