# DualPipe
[[DeepSeek-AI]] が [[DeepSeek-V3]] の訓練のために設計したパイプライン並列化アルゴリズム。MoE のクロスノードエキスパート並列化で生じる約 1:1 の計算対通信比率の課題を、計算と通信の完全なオーバーラップにより解決する。
## 設計
### チャンク分解
各パイプラインチャンクを 4 構成要素に分割する:
1. **アテンション**
2. **All-to-All ディスパッチ**(MoE トークン送信)
3. **MLP**(MoE 計算)
4. **All-to-All コンバイン**(MoE 結果結合)
逆伝播では、アテンションと MLP をさらに「入力に対する逆伝播」と「重みに対する逆伝播」に分割する(ZeroBubble と同様)。
### オーバーラップ戦略
フォワードとバックワードのチャンクペアを再配置し、通信と計算に割り当てる SM の比率を手動で調整する。All-to-All 通信と PP 通信の両方を計算実行中に完全に隠蔽する。
### 双方向スケジューリング
パイプラインの両端からマイクロバッチを同時に投入する。これにより通信の大部分をオーバーラップさせる。
## 性能特性
| 手法 | バブル | パラメータ | アクティベーション |
|---|---|---|---|
| 1F1B | $(PP - 1)(F + B)$ | 1x | $PP$ |
| ZB1P | $(PP - 1)(F + B - 2W)$ | 1x | $PP$ |
| **DualPipe** | $(PP/2 - 1)(F\&B + B - 3W)$ | 2x | $PP + 1$ |
- パラメータのコピーは 2 倍になるが、大きな EP サイズ(64-way)使用時のメモリ増加は軽微
- マイクロバッチ数が増えてもバブルとアクティベーションメモリは増加しない
- パイプラインステージとマイクロバッチが 2 で割り切れることのみ要求(Chimera より制約が緩い)
## スケーラビリティ
モデルをさらにスケーリングする際、計算対通信比率を一定に保てば、ノードをまたいだ細粒度エキスパートの利用を維持しつつ、All-to-All 通信オーバーヘッドをほぼゼロにできる。
## 産業での採用判断
[[Kimi K2]](1.04T パラメータ)は DualPipe を採用せず interleaved 1F1B を選択した。運用の複雑性と障害復旧の困難さが理由として挙げられている。(Source: [[@2025__arXiv__Kimi K2 - Open Agentic Intelligence]])
## 出典
- [[@2024__arXiv__DeepSeek-V3 Technical Report]](§3.2.1)
- [[@2025__arXiv__Kimi K2 - Open Agentic Intelligence]](DualPipe 不採用の判断)