【问题标题】:How to fix 'RuntimeError: Address already in use' in PyTorch?如何修复 PyTorch 中的“运行时错误:地址已在使用”?
【发布时间】:2019-12-28 16:29:37
【问题描述】:

我正在尝试使用 PyTorch 分布式训练器运行分布式应用程序。我想我会先试试他们的例子,找到here。我设置了两个 AWS EC2 实例并根据链接中的描述对其进行了配置,但是当我尝试运行代码时出现两个不同的错误:在 node0 的第一个终端窗口中,我收到错误消息:RuntimeError: Address already in使用

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

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

我按照链接中的代码,并终止了重做的实例,但它没有帮助/

这是使用 python 3.6 和夜间构建 Cuda 9.0。我尝试将 MASTER_ADDR 更改为两个节点上 node0 的 ip,以及使用相同的 MASTER_PORT(这是一个可用的、未使用的端口)。但是我仍然收到相同的错误消息。

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

【问题讨论】:

    标签: python pytorch distributed multi-gpu


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 1970-01-01
      • 2019-11-27
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多