如何在PyTorch中修复“ RuntimeError:地址已在使用中”?

时间:2019-08-23 10:47:24

标签: python pytorch distributed multi-gpu

我正在尝试使用PyTorch分布式培训师来运行分布式应用程序。我以为我会首先尝试他们提供的示例,找到here。我设置了两个AWS EC2实例,并根据链接中的描述对其进行了配置,但是,当我尝试运行代码时,遇到两个不同的错误:在node0的第一个终端窗口中,我收到错误消息:RuntimeError:地址已经在使用

在其他三个窗口下,我收到相同的错误消息:

  

RuntimeError:NCCL错误位于:   /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:272,未处理的系统   错误

我遵循了链接中的代码,并终止了实例的重做操作,但没有帮助/

这是在每晚生成的Cuda 9.0中使用python 3.6。我尝试将两个节点上的node0的MASTER_ADDR更改为ip,并尝试使用相同的MASTER_PORT(这是一个可用的未使用端口)。但是,我仍然收到相同的错误消息。

运行此命令后,我的目标是调整this StyleGan实现,以便可以在两个不同节点中的多个GPU上进行训练。

1 个答案:

答案 0 :(得分:0)

因此,在尝试了许多次失败之后,我发现了问题所在。请注意,此解决方案适用于使用ASW深度学习实例。

创建两个实例后,我不得不调整安全组。添加两个规则:第一个规则应为ALL_TCP,并将源设置为领导者的私有IP。第二条规则应相同(ALL_TCP),但源应为从属节点的专用IP。

以前,我将设置安全规则设置为:键入SSH,它只有一个可用端口(22)。由于某种原因,我无法使用此端口来允许节点进行通信。更改这些设置后,代码可以正常工作。我也可以使用上述设置运行this