PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
22.17k stars 5.57k forks source link

[Auto Parallel] fix hang caused by different process group initialization order #68847

Open deepllz opened 1 day ago

deepllz commented 1 day ago

PR Category

Auto Parallel

PR Types

Bug fixes

Description

修复由于通信组创建顺序不同导致的hang的问题。此问题首次出现在调试allgather moe动转静测试中,具体原因如下: 目前动转静通信组的建立是在静半reshard模块中,例如:nd_mesh_reshard_func.py,创建通信组之后所有进程都要同步一次,用以避免其他的问题。所以要求全部rank创建通信组的顺序必须严格一致,否则可能导致hang。例如有4个进程[0, 1, 2, 3],有的进程创建了[0, 2]通信组,有的进程没有,就会导致hang,moe场景恰好触发了这个case。 Pcard-73145

paddle-bot[bot] commented 1 day ago

你的PR提交成功,感谢你对开源项目的贡献! 请关注后续CI自动化测试结果,详情请参考Paddle-CI手册。 Your PR has been submitted. Thanks for your contribution! Please wait for the result of CI firstly. See Paddle CI Manual for details.