控制端使用分布式训练时PORT=29502 ./tools/dist_train.sh
23.2.24
RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:825, invalid usage, NCCL version 2.7.8
运行pytorch分布式任务时,可能在执行dist.barrier()这条代码时会触发NCCL错误:RuntimeError: NCCL error in: ../torch/lib/c10d/ProcessGroupNCCL.cpp:514, invalid usage, NCCL version。
报错原因在于每个worker申请使用的不是 100% 的 GPU,而是50%、30%等,这有可能导致多个 worker 被放到同一张 GPU 上去。NCCL 不支持多个 work 放在同一个 GPU 上。
解决方案:
1、每个worker申请100% GPU
2、集体通信库从nccl改为gloo
dist.init_process_group('nccl') 更改 dist.init_process_group("gloo")
未完待续。。。