PyTorch反向传播期间出现“ NCCL错误:未处理的系统错误”

时间:2019-05-10 22:42:16

标签: python pytorch distributed-computing

我正在尝试使用PyTorch进行分布式培训,但遇到了问题。 在向后传播(第一个批处理,第一个时期)期间发生此运行时错误。

  File "/home/user/anaconda3/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/user/anaconda3/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/user/anaconda3/lib/python3.7/site-packages/mpi4py/__main__.py", line 7, in <module>
    main()
  File "/home/user/anaconda3/lib/python3.7/site-packages/mpi4py/run.py", line 196, in main
    run_command_line(args)
  File "/home/user/anaconda3/lib/python3.7/site-packages/mpi4py/run.py", line 47, in run_command_line
    run_path(sys.argv[0], run_name='__main__')
  File "/home/user/anaconda3/lib/python3.7/runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "/home/user/anaconda3/lib/python3.7/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/home/user/anaconda3/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "project/main.py", line 115, in <module>
    trainer.run(config["epochs"])
  File "/home/user/project/trainer/trainer.py", line 107, in run
    self.run_epoch()
  File "/home/user/project/trainer/trainer.py", line 70, in run_epoch
    loss.backward()
  File "/home/user/anaconda3/lib/python3.7/site-packages/torch/tensor.py", line 107, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "/home/user/anaconda3/lib/python3.7/site-packages/torch/autograd/__init__.py", line 93, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:272, unhandled system error

我使用MPI进行自动排名分配,并使用NCCL作为主要后端。 通过共享文件系统上的文件来完成初始化。 每个进程使用2个GPU,进程在不同的节点上运行。 设置了环境变量NCCL_SOCKET_IFNAME。 以前,此代码可以正常工作:(

有人知道为什么会发生此错误吗?

UPD 13/05/19::已经取得了进展。 最初在模型初始化时发生错误,现在在第一次向后传递时发生。

1 个答案:

答案 0 :(得分:0)

RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:272, unhandled system error

此错误通常意味着不同节点上的代码之间存在一些差异,nccl可能会检测到该错误以触发此错误,请检查您的脚本,通常是在您修改一个脚本副本而忘记修改其他脚本之后发生的。