# 非同期分散データフロー ## 定義 非同期分散データフローとは、機械学習の分散実行において、コントロールプレーン(スケジューリング・リソース割当・協調メッセージング)をデータプレーン(アクセラレータ上の実データ依存の演算)の依存関係から切り離し、future を消費・生成する非同期演算子からなるシャーディングされたデータフローグラフとして両者を並行実行させる設計である。[[@2022__MLSys__Pathways - Asynchronous Distributed Dataflow for ML]] がこの設計を明示的に定式化し、[[TensorFlow]] v1 が持っていた一般的な分散データフローモデルを、数千アクセラレータ規模へ拡張しつつ、単一コントローラ方式に典型的だったディスパッチオーバーヘッドを並列非同期ディスパッチで隠蔽した。 ## 未解決の問い - 非同期分散データフローの設計を、閉じたソースの PLAQUE ではなく Ray のようなオープンな分散フレームワークで再実装した場合、HBM オブジェクトストアや GPU インターコネクト経由の効率的な転送プリミティブをどこまで補えば同等の性能に達するか。 - データ依存のベクトル化制御フロー(Mixture of Experts のようなサブサンプル単位のルーティング)を、非同期分散データフローの静的リソース要求の前提とどう両立させるか。 - TPU 以外のアクセラレータ(GPU 等)でこの設計を実装した場合、ホスト側ドライバコードの負担がどこまで並列非同期ディスパッチの利得を損なうか。 ## 未編纂の観察 - Pathways は、TensorFlow v1 が単一の排他所有アイランドに過度に特化していたためギャングスケジューリングの一貫した順序付けを分散スケジューラで実現できなかった問題を、アイランドごとの中央集権スケジューラと、静的に既知なリソース要求を持つ「コンパイル済み関数」の単位でのスケジューリングによって解決した。(Source: [[@2022__MLSys__Pathways - Asynchronous Distributed Dataflow for ML]]) - 非同期分散データフローの利得は計算サイズに強く依存する。16 ホスト・128 TPU 構成では 2.3ms、512 ホスト・2048 TPU 構成では 35ms 以上の計算時間があれば単一コントローラのオーバーヘッドが実質的に隠蔽され、複数コントローラ方式(JAX)とスループットが一致する。(Source: [[@2022__MLSys__Pathways - Asynchronous Distributed Dataflow for ML]]) ## 関連 - ソース: [[@2022__MLSys__Pathways - Asynchronous Distributed Dataflow for ML]] - エンティティ: [[Pathways]] / [[TensorFlow]] - 概念: [[Parameter Server]] / [[パイプライン並列化]] / [[LLM分散学習]] ## 出典 - [[@2022__MLSys__Pathways - Asynchronous Distributed Dataflow for ML]]