Open
Description
(此 ISSUE 为 PaddlePaddle Hackathon 第二期活动的任务 ISSUE,更多详见 【PaddlePaddle Hackathon 第二期】任务总览)
【任务说明】
- 任务标题:在 Paddle 中实现基于 HDRM 拓扑的 AllReduce
- 技术标签:深度学习框架,C++,通信拓扑
- 任务难度:困难
- 详细描述:HDRM 主要思想是基于两阶段全连接 BiGraph 的 rank 映射扩展了传统的 halving doubling 算法,以避免网络拥塞。此任务的目标是在 Paddle 分布式训练框架中,实现 HDRM 拓扑结构的 AllReduce,如果目标结点不支持拓扑所需硬件结构,可尝试软件模拟;除使用 GPU 进行训练外,最好也能支持其他异构硬件。
【提交内容】
- 设计文档,并提 PR 至 PaddlePaddle/community 的 rfcs/Framework 目录
- C ++ 实现代码,在 Paddle repo 的 fluid/operators/collective 目录
- Python 实现代码 & 英文 API 文档,在 Paddle repo 的 python/paddle/distributed/collective 目录
- 单测代码,在 Paddle repo 的 python/paddle/fluid/tests/unittests 目录
【参考内容】
【技术要求】
- 了解 Paddle 分布式训练框架
- 熟练掌握 C++ 、Python
- 熟悉模型训练和集合通信实现、HDRM 通信算法
【答疑交流】
- 如果在开发中对于上述任务有任何问题,欢迎在本 ISSUE 下留言交流。
- 对于开发中的共性问题,在活动过程中,会定期组织答疑,请大家关注官网&QQ群的通知,及时参与。