我正在尝试使用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:已有进展。最初的错误发生在模型初始化上,现在是在第一次反向传递时。
发布于 2021-10-31 12:16:05
unhandled system error意味着NCCL方面存在一些潜在的错误。您应该首先用NCCL_DEBUG=INFO重新运行您的代码。然后找出调试日志中的错误(特别是日志中的警告)。
在Pytorch "NCCL error": unhandled system error, NCCL version 2.4.8"上给出了一个例子
发布于 2020-11-10 08:11:32
RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:272, unhandled system error此错误通常意味着不同节点上的代码之间存在一些差异,nccl可能会检测到此错误,检查脚本,通常是在修改一个脚本副本而忘记修改其他脚本后发生。
https://stackoverflow.com/questions/56085657
复制相似问题