# All-to-All通信
## 定義
All-to-All通信(All-to-All communication、全対全通信)は、並列分散システムに参加するすべてのプロセス(GPU)が、相互に異なるデータを送受信する集合通信プリミティブである。MPI規格では `MPI_Alltoall`、可変長データを扱う変種として `MPI_Alltoallv` が定義され、NVIDIA NCCLでは `ncclAllToAll` 等として提供される。
全プロセスが同一データを集約する AllReduce や All-Gather と異なり、プロセス対ごとに異なる個別メッセージが網羅的に行き交うため、ネットワークファブリック全体に対して最大の二分帯域幅(bisection bandwidth)と高スループットなクロスバー/ファットツリー接続を要求する。
## 分散機械学習における役割
近年の大規模モデルおよび分散深層学習において、All-to-All通信は以下の主要領域で中心的な役割を担っている。
### 1. Mixture-of-Experts (MoE) のトークンディスパッチ・コンバイン
MoEアーキテクチャでは、入力トークンがルーター(ゲーティングネットワーク)によって最適な専門家(エキスパート)に振り分けられる。
エキスパートが異なるGPUに分散配置されている場合、各GPUは自ノードで処理したトークンを担当GPUへ送信する**ディスパッチ(Dispatch)**段階と、計算結果を元のGPUに集約する**コンバイン(Combine)**段階の双方で AllToAllv 通信を実行する。MoE層ごとに2回発生し、MoEモデルの総学習時間の30〜56%を占める最大のボトルネックとなる。
### 2. シーケンス並列(DeepSpeed-Ulysses等)のテンソル再配置
長文脈(Long Context)LLM学習を支えるシーケンス並列化手法であるDeepSpeed-Ulyssesでは、シーケンス次元に沿って分割されたテンソルをアテンション計算時にヘッド次元の分割へと再配置(Transposition)する際、およびアテンション計算後に元のシーケンス分割に戻す際に All-to-All 通信を使用する。
### 3. 並列化次元間のデータ再配分
テンソル並列(TP)、シーケンス並列(SP)、パイプライン並列(PP)、エキスパート並列(EP)など、複数の並列化次元を組み合わせるハイブリッド並列において、層の切り替え時にテンソルのシャーディング構造を変換するデータ再配分プリミティブとして用いられる。
## 設計上の課題と最適化
1. **ワークロードの偏り(Skew)とインキャスト輻輳**:
MoEでは特定の人気エキスパートにトークンが集中するため、GPU対間の通信量に10倍以上の不均衡が生じ、受信バッファの溢れやインキャスト輻輳、一部ノードの待機(ストラグラー)を引き起こす。FAST ([[@2026__NSDI__FAST - An Efficient Scheduler for All-to-All GPU Communication]]) のような多項式時間オンライントラフィックスケジューリングが研究されている。
2. **トポロジ依存性と階層型All-to-All**:
ノード内の高帯域NVLinkとノード間のスケールアウトネットワーク(InfiniBand/RoCE)の速度差を吸収するため、ノード内での中間集約を行ってからノード間転送を行う階層型All-to-All(2-step All-to-All)や、NVSwitchのスイッチ内転送機能を活用した高速化が図られている。
## 未編纂の観察
- [MoEおよび層間データ再配置におけるAll-to-All通信の重要性] テンソル並列やシーケンス並列における層間データ再配置やMoEのトークンルーティングにおいて、All-to-All通信は主要なデータ交換パターンであり、インターコネクトのトポロジ(NVSwitchスター型全結合や階層型ネットワーク)に応じたトラフィックスケジューリングが全体の訓練効率を左右する。(Source: [[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]], [[@2026__NSDI__FAST - An Efficient Scheduler for All-to-All GPU Communication]])
## 未解決の問い
- MoEの動的なトークンルーティングによるAll-to-Allトラフィックの偏りと、NVLinkフルメッシュ接続ノードにおける物理リンク利用率の低下はどのように相互作用するか。ノード内フルメッシュ上で不均衡All-to-Allを実行する際の最適ルーティング設計は何か。
## 関連
- ソース: [[@2026__NSDI__FAST - An Efficient Scheduler for All-to-All GPU Communication]] / [[@2022__NVIDIA Developer Blog__Doubling all2all Performance with NVIDIA Collective Communication Library 2.12]] / [[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]]
- 概念: [[集合通信]] / [[Mixture-of-Experts]] / [[並列化戦略]] / [[ストラグラー]] / [[LLM分散学習]]
- エンティティ: [[NVIDIA]] / [[MangoBoost]]
- 関連 MOC: [[分散深層学習 - MOC]]
## 出典
- [[@2026__NSDI__FAST - An Efficient Scheduler for All-to-All GPU Communication]](MoE不均衡All-to-Allv通信のBirkhoff分解を用いたオンライン高速スケジューラ)
- [[@2022__NVIDIA Developer Blog__Doubling all2all Performance with NVIDIA Collective Communication Library 2.12]](NCCLにおけるPXNを用いたAll-to-All通信の倍速化)
- [[@2026__HPCA__Optimizing Intra-Layer Parallel Communication for LLM Training on Systems with Fully-Connected Mesh GPU Topology]](層内並列におけるデータ再配置通信パターンとしてのAll-to-Allの言及)