dbiir / UER-py

Open Source Pre-training Model Framework in PyTorch & Pre-trained Model Zoo
https://github.com/dbiir/UER-py/wiki
Apache License 2.0
3.01k stars 525 forks source link

新代码多机多卡会卡死 #324

Open seeledu opened 2 years ago

seeledu commented 2 years ago

用半个月前的代码还行,最近更新的代码会在模型开始的时候卡死,log 如下,四台机器到了这一步之后就卡死了。

2022-06-06 17:06:30.084 ts-3b9674b191ea46a69359406136b6418c-launcher:1076:1076 [0] NCCL INFO Launch mode Parallel

2022-06-06 17:06:30.148 [2022-06-06 17:06:30,147 INFO] Worker 0 is training ...

2022-06-06 17:06:30.149 [2022-06-06 17:06:30,149 INFO] Worker 3 is training ...

2022-06-06 17:06:30.207 [2022-06-06 17:06:30,207 INFO] Worker 1 is training ...

2022-06-06 17:06:30.207 [2022-06-06 17:06:30,207 INFO] Worker 7 is training ...

2022-06-06 17:06:30.208 [2022-06-06 17:06:30,208 INFO] Worker 6 is training ...

2022-06-06 17:06:30.209 [2022-06-06 17:06:30,208 INFO] Worker 4 is training ...

2022-06-06 17:06:30.209 [2022-06-06 17:06:30,209 INFO] Worker 5 is training ...

2022-06-06 17:06:30.209 [2022-06-06 17:06:30,209 INFO] Worker 2 is training ...

hhou435 commented 2 years ago

您好,请问单卡运行正常吗,最近项目更新了dataloader和dataset,如果使用旧的代码处理的数据和新的代码可能不兼容

seeledu commented 2 years ago

可能是因为我用了旧的代码处理数据,重新处理一遍代价比较大,我还是用旧代码好了。BTW,我想让模型记录跑过哪些数据,这样方便中断后继续运行,请问修改代码有建议的地方吗,因为我看这个框架的data 加载似乎没有用distribute sampler。

zhezhaoa commented 2 years ago

可能是因为我用了旧的代码处理数据,重新处理一遍代价比较大,我还是用旧代码好了。BTW,我想让模型记录跑过哪些数据,这样方便中断后继续运行,请问修改代码有建议的地方吗,因为我看这个框架的data 加载似乎没有用distribute sampler。

新的代码对dataset和dataloader进行了优化,能够大幅度减少dataset.pt的大小,非常建议用新版本哈 关于模型中断后重新运行,这个需要考虑的比较多,包括模型的存储和加载,优化器、数据等,修改难度比较高。这个后续我们会加入相关功能

seeledu commented 2 years ago

很遗憾,我花了四天重新处理完之后,只减少了11G同时多机多卡还是用不了。。。。。

zhezhaoa commented 2 years ago

很遗憾,我花了四天重新处理完之后,只减少了11G同时多机多卡还是用不了。。。。。

请确保多机的的环境是完全一致的

并且部分pytorch版本可能会导致多机卡住,可以更换pytorch版本 https://github.com/pytorch/pytorch/issues/17745

seeledu commented 2 years ago

多机多卡版本一致的,pytorch1.10是版本,在dataloader优化前是可以多机多卡的,推测是这部分代码没有考虑多机多卡的情况?