一、关于 DualPipe
- github : https://github.com/deepseek-ai/DualPipe
- 开发者 : Li Jiashi、Deng Chengqi和Liang Wenfeng创建和开发的。
DualPipe 是一种创新的双向管道并行算法,在 DeepSeek-V3 技术报告 中提出。
它实现了正向和反向计算-通信阶段的完全重叠,同时也减少了管道气泡。有关计算-通信重叠的详细信息,请参阅 性能数据。
Schedules
示例:针对8个PP排名和20个微批次的两个方向的双向管道调度。
微批次的反向与正向是对称的,所以
我们省略了它们的批次ID以简化说明。两个由共享的黑边包围的单元格
已有相互重叠的计算和通信
管道气泡和内存使用比较
Method | Bubble | Parameter | Activation |
---|---|---|---|
1F1B | (PP-1)(𝐹+𝐵) | 1× | PP |
ZB1P | (PP-1)(𝐹+𝐵-2𝑊) | 1× | PP |
DualPipe | (PP/2-1)(𝐹&𝐵+𝐵-3𝑊) | 2× | PP+1 |
二、快速开始
以下示例展示了使用方法:
python example.py
注意:对于实际应用,您需要实现一个定制的 overlapped_forward_backward
方法,该方法针对您的特定模块进行定制。
Requirements
- PyTorch 2.0 and above
2025-03-02(日)