meta-pytorch/monarch

PyTorch Single Controller

何を解決するか

Monarchは、PyTorchにおける分散プログラミングの複雑さを簡素化します。大規模なAIトレーニングおよび推論ワークロードにおけるリモートプロセスの管理、それら間の通信の調整、ハードウェアレベルのメモリ転送および障害の処理といった課題に対処します。

動作方法

Monarchは、アクターを「メッシュ」にグループ化して効率的なブロードキャストを実現するスケーラブルなアクター基盤のメッセージングシステムを使用しています。障害耐性を管理するために監視ツリーを採用し、障害が上位に伝搬して構造化された回復を可能にします。高性能なデータ移動には、libibverbsを介したポイントツーポイントRDMA転送を統合し、複数のプロセスに分散されたテンソルを扱える分散テンソルAPIを提供しています。

対象ユーザー

大規模な分散PyTorchアプリケーションを開発する開発者向けに設計されており、堅牢な障害耐性、高性能なGPU/CPUメモリ転送、およびリモートアクターをスケーラブルに管理する必要がある方々に最適です。

主な特徴

  • スケーラブルなアクター・メッセージング: アクターをメッシュにグループ化して、効率的なメッセージのブロードキャストを実現。
  • 障害耐性: 監視ツリーを使用して構造化されたエラー動作と細粒度の回復を提供。
  • RDMAサポート: GPUまたはCPUメモリの安価な登録とワンサイド転送を可能に。
  • 分散テンソル: 異なるプロセスに分散されたテンソルに対するネイティブサポート。
  • 柔軟なビルド: CUDA、ROCm、およびCPUオンリー環境をサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト