# 通信隠蔽
## 定義
通信隠蔽(Communication Hiding / 通信と計算のオーバーラップ)は、分散並列計算においてネットワーク通信(ノード間データ転送)に要する時間を、独立して実行可能な計算処理の背後で並行実行させることにより、通信待ちによるプロセッサのアイドル時間を削減または完全に隠蔽する並列化・性能最適化技法である。
## 実現機構と技術課題
### 1. 非同期通信と計算の分離
分散計算を「通信を要する部分」と「局所データのみで完結する部分」に明確に分離する。例えば分散疎行列ベクトル積([[疎行列ベクトル積|SpMV]])では、行列を局所部分 $A_{I,I}$ と非局所部分 $A_{I,O}$ に分割し、他ノードからの境界値受信(非同期通信: `MPI_Ialltoallv` や `MPI_Isend` / `MPI_Irecv`)を行っている間に、通信を必要としない局所積 $A_{I,I} x_I$ を並行実行する。
### 2. GPU アクセラレータにおける非同期実行モデル
GPU を用いた計算では、CPU ホストと GPU デバイスが非同期に動作する。CUDA ストリームや CUDA イベントを用いることで、データ転送カーネル、計算カーネル、およびネットワーク通信要求を異なるキューに並行投入できる。
### 3. GPU-Aware MPI におけるストリーム非対応の課題
近年の MPI 実装(例: OpenMPI)は GPU デバイスメモリのアドレスを直接渡せる [[GPU-Aware MPI]] を備えているが、すべての集団通信ルーチンが CUDA ストリームと直接協調動作(stream-aware MPI)できるわけではない。通信関数を呼ぶ前にホスト側でストリーム同期(`cudaStreamSynchronize`)が必要な場合、CPU による同期完了待ちおよび MPI メッセージ発行オーバーヘッドにより、GPU 上で先行カーネルの終了から局所計算カーネルの開始までに数十マイクロ秒の非活動時間(GPU inactivity gap)が生じる。
### 4. CUDA イベントによる先行投入イディオム
このギャップを排除するための技法として、通信バッファ準備カーネルの直後にストリームへ CUDA イベントを記録し、直ちに局所計算カーネルを GPU ストリームへ投入した上で、ホスト CPU 側でイベント待機を行ってから非同期 MPI を発行するパターンが有効である。これにより、ホスト側のディスパッチおよび通信処理がすべて局所計算の実行背後へ押し込まれ、GPU をアイドルにすることなく完全なオーバーラップが成立する。
## 未編纂の観察
- [GPU 非活動ギャップの半減と高速化] JUPITER 上の 8 基の GH200 を用いた分散 SpMV において、従来の「データ準備 → ストリーム同期 → MPI発行 → 局所SpMV」というワークフローでは、同期と発行オーバーヘッドにより 54 $\mu$s(実行全体の 24%)の GPU アイドルギャップが存在した。CUDA イベントを用いて局所 SpMV を即時先行投入する新ワークフローを採用した結果、ギャップが 18 $\mu$s まで短縮され、全体の実行時間が 224 $\mu$s から 186 $\mu$s へ 1.2 倍高速化された(Source: [[@2026__HPCAsia__What Will the Grace Hopper-Powered Jupiter Supercomputer Bring for Sparse Linear Algebra?]])。
- [大規模弱スケーリングにおける効果] 最大 8,192 基の GH200(2,048 ノード)にスケールさせた際にも、通信隠蔽を適用した新アルゴリズムは従来実装に対して 1.06〜1.44 倍の持続的な速度向上をもたらした(Source: [[@2026__HPCAsia__What Will the Grace Hopper-Powered Jupiter Supercomputer Bring for Sparse Linear Algebra?]])。
## 未解決の問い
- stream-aware な GPU 集合通信ライブラリ(NCCL 等)が不規則な point-to-point / all-to-all 通信(`Ialltoallv`)を完全にサポートした場合、CUDA イベントを用いた手動の先行投入パターンはライブラリ内部で完全に抽象化・自動化可能か。
- 強スケーリング極限において局所計算時間が極端に短縮した際、局所計算で通信全体を隠蔽しきれなくなる臨界点(通信バウンドへの反転点)をどのように数理モデル化すべきか。
## 関連
- ソース: [[@2026__HPCAsia__What Will the Grace Hopper-Powered Jupiter Supercomputer Bring for Sparse Linear Algebra?]]
- 概念: [[GPU-Aware MPI]] / [[疎行列ベクトル積]] / [[集合通信]] / [[GPU最適化]]
- エンティティ: [[Ginkgo]] / [[NVIDIA GH200]] / [[JUPITER (スーパーコンピュータ)]]
## 出典
- [[@2026__HPCAsia__What Will the Grace Hopper-Powered Jupiter Supercomputer Bring for Sparse Linear Algebra?]] — JUPITER 上の GH200 における GPU-aware MPI の同期ギャップ解明と、CUDA イベントによる局所 SpMV 先行投入による通信隠蔽。