【问题标题】:Does torch.distributed support point-to-point communication for GPU?torch.distributed 是否支持 GPU 的点对点通信?
【发布时间】:2022-01-20 04:38:25
【问题描述】:

我正在研究如何在 PyTorch 的不同节点上与多个 GPU 进行点对点通信。

从版本 1.10.0 开始,PyTorch 的 documentation 页面为带有 MPI 后端的 GPU 显示 sendrecv 的问号。这是什么意思?如果有人成功设置了 PyTorch,以便 torch.distributed 允许在多个 GPU 上进行点对点通信,请告诉我您是如何设置的。具体来说,您使用的是哪个 MPI? pyTorch 和 Cuda 的版本呢?

【问题讨论】:

    标签: pytorch distributed


    【解决方案1】:

    我想我会发布到目前为止我学到的东西。

    Pytorch 似乎确实支持与 GPU 上的 MPI 进行点对点通信。但是,这需要您拥有可识别 Cuda 的 MPI。 (如果您的 MPI 不支持 Cuda,则需要使用特定参数从源代码构建 MPI)。此外,如果您的 Pytorch 没有启用 MPI,您需要从源代码编译 Pytorch 并安装 MPI。这似乎是一条非常复杂的路线。

    但是,我链接到的文档似乎具有误导性。查看release note,Pytorch 从 1.8.0 开始支持 NCCL 后端中的发送/接收...话虽如此,我已经尝试使用 NCCL 进行发送/接收,但它会抛出错误,指出 NCCL 正在获取无效参数。我不确定这是我的问题还是 pytorch 分布式代码中仍然存在错误。

    【讨论】:

      猜你喜欢
      • 2022-05-23
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 2017-02-12
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多