## 定義 メッシュ並列は、プロセッサ集合を n 次元の配列(メッシュ)として捉え、計算グラフ中のテンソルが持つ任意の次元を、そのメッシュの任意の次元へ分割して SPMD(Single-Program-Multiple-Data)プログラムへコンパイルする並列化方式である。データ並列は「batch」という 1 つの次元を 1 次元メッシュへ分割する特殊ケースとして、この枠組みに包含される。[[Mesh-TensorFlow]]([[@2018__NeurIPS__Mesh-TensorFlow - Deep Learning for Supercomputers]])が導入した。 ## 未解決の問い - 最適な計算レイアウト(どのテンソル次元をどのメッシュ次元へ写すか)を自動探索する手法は、Mesh-TensorFlow 論文自身が将来課題としており、その後どのように解決されたか。 - Mesh-TensorFlow のテンソル次元単位の分割記述は、後継の GSPMD・Alpa のような自動並列化システムにどのように継承・拡張されたか。両者との設計上の対応関係(名前付き次元 vs 自動シャーディング推論)を具体的に突き合わせる必要がある。 - メッシュの物理トポロジ(トーラス等)と論理メッシュ形状の不一致が性能に与える影響は、Mesh-TensorFlow の枠組みでどこまで扱われているか。 ## 未編纂の観察 - Mesh-TensorFlow は、テンソル次元に名前を付け、その名前付き次元をプロセッサメッシュの任意の次元へ写す「計算レイアウト」という単一の抽象で、データ並列・モデル並列・両者の任意次元数での混合を統一的に表現した。(Source: [[@2018__NeurIPS__Mesh-TensorFlow - Deep Learning for Supercomputers]]) - 2 次元・3 次元メッシュへの分割は、プロセッサ数を二乗・三乗のオーダーで増やしても、通信/計算比を一定に保つためのバッチサイズ・モデル次元サイズの増加を線形に抑えられることを、全結合 2 層の例で定量的に示した。(Source: [[@2018__NeurIPS__Mesh-TensorFlow - Deep Learning for Supercomputers]]) - 2018 年時点で、TPUv2 の 512 コアメッシュ上で 50 億パラメータの Transformer を学習しており、これは単一の並列化次元(バッチ)を超えて、フィードフォワード隠れ次元・注意ヘッド数という複数のモデル次元を同時にメッシュへ分割した初期の実証例である。(Source: [[@2018__NeurIPS__Mesh-TensorFlow - Deep Learning for Supercomputers]]) - [Mesh-TensorFlow から Alpa への継承] Alpa は、Mesh-TensorFlow のデバイスメッシュの考え方を「高帯域で接続されたデバイスの集合」として引き継ぎつつ、単一の SPMD メッシュではなく、複数のデバイスメッシュ間をパイプライン化する(inter-operator 並列)という新しい階層を追加した。各メッシュ内では SPMD 形式の intra-op 並列(ILP で自動シャーディング)を、メッシュ間では動的計画法(DP)でステージ・メッシュ割り当てを最適化する。この観察は、本ページの未解決の問い「Mesh-TensorFlow のテンソル次元単位の分割記述は GSPMD・Alpa にどのように継承・拡張されたか」に部分的に答える。(Source: [[@2022__OSDI__Alpa - Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning]]) ## 関連 - [[テンソル並列]] — レイヤー内の行列演算を分割する点でメッシュ並列の 1 次元的な特殊ケースに近いが、Megatron-LM は分割対象を MLP・注意ブロックの特定の軸に限定する。 - [[パイプライン並列化]] — レイヤー間を分割する方式で、メッシュ並列がレイヤー内の任意次元分割を扱うのと直交する。 - [[LLM分散学習]] - [[Mesh-TensorFlow]] - ソース: [[@2022__OSDI__Alpa - Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning]] - 概念: [[自動並列化]] ## 出典 - [[@2018__NeurIPS__Mesh-TensorFlow - Deep Learning for Supercomputers]]