# 通信計算オーバーラップ
## 定義
通信計算オーバーラップ(communication-computation overlap)は、分散機械学習(大規模言語モデルの学習および推論)において、通信レイテンシによるGPU/プロセッサのアイドル待機を隠蔽するため、通信操作(集合通信や点対点通信)と計算カーネル(GEMMや活性化関数等の演算)を同一デバイス上で並行して実行する最適化手法の総称である。
計算ストリームと通信ストリームを分離し、ハードウェアの実行リソース(SM、メモリ帯域、DMA/コピーエンジン、NIC)を同時に稼働させることで、訓練イテレーション時間や推論レイテンシを理論限界($\max(T_{ ext{comp}}, T_{ ext{comm}})$)に近づけることを目指す。
## 主要なオーバーラップ手法の分類
通信と計算の依存関係およびスケジューリングの方式に基づき、大きく以下の3系統に分類される。
### 1. バルク通信オーバーラップ(Bulk Communication Overlap)
互いに直接のデータ依存関係を持たない計算と通信を、そのまま別ストリームで同時に発行する方式。
- **代表例**: Transformerブロックの逆伝播において、列並列Linear層(`qkv` や `fc1`)の重み勾配計算(wgrad GEMM)は後続の逆伝播演算に対して独立しているため、先行する活性化勾配の集合通信(Reduce-Scatter)と並行実行される(TransformerEngine等で標準採用)。
### 2. パイプライン化通信オーバーラップ(Pipelined Communication Overlap)
演算結果が通信の入力となる(または通信結果が演算の入力となる)データ依存関係が存在する場合に、テンソルを複数のスライス(チャンク)に分割し、先行チャンクの処理完了に合わせて後続チャンクの処理とパイプライン実行する方式。
- **GEMM-RS**: GEMMの部分出力をチャンクごとに順次Reduce-Scatter通信に投入する(MegaScale, Domino)。
- **AG-GEMM**: All-Gather通信を部分的な通信ステップ(P2P転送等)に分割し、受信したデータスライスから順次部分GEMMを実行する。
- **制約**: 通信プリミティブの分割(特にP2P分解)は、NVSwitchのようなスイッチ型環境では有効だが、直接リンク接続のフルメッシュトポロジでは物理リンクの利用率を低下させ、かえって通信時間を倍増させる場合がある。
### 3. 再スケジューリング型オーバーラップ(Rescheduled Overlap)
通信カーネル自体を分割せず(高スループットなネイティブ集合通信を維持)、計算グラフ上でクリティカルパスから外れている演算(下流依存のない演算)を遅延させて次段の集合通信と並行実行させる方式。
- **代表例 (AG-WGRAD)**: Hosoki et al. ([[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]]) が提案した手法。行並列Linear層のwgrad GEMMを遅延させ、次段のAll-Gather集合通信と並行実行させることで、NCCLのマルチリング集合通信アルゴリズムを損なわずに後向き通信を完全隠蔽する。
## 実装上の主要課題とトレードオフ
1. **SMおよびメモリ帯域の競合**:
GEMMカーネルと通信カーネル(NCCL)が同一GPU上で同時実行されると、Streaming Multiprocessor(SM)およびHBMメモリ帯域が競合し、カーネル単体の実行時間がそれぞれ延伸する(NCCLで約10%、GEMMで30〜90%のオーバーヘッド)。両者を足し合わせた総合時間が単体直列実行よりも短縮されるバランスが必要である。
2. **ウェーブ量子化とテイル効果(Tail Effect)**:
cuBLAS GEMMは全SM数に合わせてスレッドブロックを投入するが、NCCLに一部SM(例: 24 SM)が占有されると、端数スレッドブロックが追加のウェーブとしてスケジュールされテイル遅延が発生する。NCCLが使用しないSM数に合わせたブロック割り当て調整が重要となる。
3. **メモリオーバーヘッド**:
計算の再スケジューリング(遅延実行)は、入力テンソル(アクティベーションや勾配)の生存期間(lifetime)を延伸させるため、一時的なGPUメモリ消費量を増加させる。
## 未編纂の観察
- [再スケジューリングによる集合通信無分割オーバーラップの優位性] 通信カーネルをP2Pに分解する既存パイプライン手法はフルメッシュGPU環境でリンク利用率を悪化させるが、計算グラフ解析に基づき下流依存のない重み勾配GEMMを遅延させて次段のAll-Gatherと並行実行するAG-WGRADオーバーラップは、NCCLの全帯域集合通信を維持したまま逆伝播通信を隠蔽し、3D並列学習を含む大規模LLM訓練で一貫した高速化をもたらす。(Source: [[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]])
- オーバーラップは利用率向上の手段である一方、余分なカーネルや Wait Event が期待された重なりを崩して NCCL Allreduce の開始を遅らせる。Weaver は「失われた期待される重なり」と「有害な重なり」を異常の 2 類型として診断対象にする (Source: [[@2026__SIGCOMM__POSTER - Weaver - Diagnosing Extra Kernel and Synchronization Interference in GPU Workloads]])
- GPU への移植でも通信計算オーバーラップは設計の一部になる。S3D は Titan 向けのリファクタリングで、非ブロッキング MPI によるハロー交換を、計算と通信が重なるように再設計した。あわせて OpenACC で GPU に計算を移し、GPU 加速は最小のオーバーヘッドで得られたと報告する(Source: [[@2012__CUG__Titan - Early experience with the Cray XK6 at Oak Ridge National Laboratory]])
## 未解決の問い
- 順伝播(Forward)パスにおける層内並列通信(列並列LinearのAll-Gatherや行並列LinearのReduce-Scatter)のように、即座に次の計算が通信結果を必要とする強依存関係下において、トポロジアウェアな高帯域集合通信を維持したまま通信を完全隠蔽する再スケジューリングまたは先読み計算手法は成立するか。
- DualPipe(DeepSeek-V3)のようなパイプライン並列・データ並列レベルでの粗粒度オーバーラップと、層内並列レベルでの細粒度オーバーラップを多層に組み合わせた場合、SMリソース競合やメモリ帯域の飽和はどのように進行するか。
- 期待される重なりの崩れを、通信計算オーバーラップの実装側で防ぐ手法と診断側で見つける手法をどう組むか
## 関連
- ソース: [[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]] / [[@2024__NSDI__MegaScale - Scaling Large Language Model Training to More Than 10,000 GPUs]] / [[@2025__arXiv__TokenWeave - Efficient Compute-Communication Overlap for Distributed LLM Inference]] / [[@2026__SIGCOMM__POSTER - Weaver - Diagnosing Extra Kernel and Synchronization Interference in GPU Workloads]] / [[@2012__CUG__Titan - Early experience with the Cray XK6 at Oak Ridge National Laboratory]]
- 概念: [[テンソル並列]] / [[集合通信]] / [[並列化戦略]] / [[LLM分散学習]] / [[メッシュトポロジ]]
- エンティティ: [[NVIDIA]] / [[Megatron-LM]]
- 関連 MOC: [[分散深層学習 - MOC]]
## 出典
- [[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]](バルクオーバーラップ、パイプライン化AG-GEMM/GEMM-RS、およびAG-WGRADオーバーラップの比較分析と実測検証)
- [[@2024__NSDI__MegaScale - Scaling Large Language Model Training to More Than 10,000 GPUs]](大規模LLM訓練における通信計算オーバーラップの実運用アーキテクチャ)
- [[@2025__arXiv__TokenWeave - Efficient Compute-Communication Overlap for Distributed LLM Inference]](LLM推論におけるwave-awareなトークン分割通信計算オーバーラップ)
- [[@2026__SIGCOMM__POSTER - Weaver - Diagnosing Extra Kernel and Synchronization Interference in GPU Workloads]](カーネルレベルの因果診断ポスター)