meta-pytorch/monarch

PyTorch Single Controller

解決的問題

Monarch 簡化了 PyTorch 中分散式程式設計的複雜性。它解決了在大型 AI 訓練與推論工作負載中管理遠端程序、協調它們之間的通訊,以及處理硬體層級的記憶體傳輸與故障的挑戰。

工作原理

Monarch 使用可擴展的基於 Actor 的訊息系統,其中 Actor 被組織成「網格」以實現高效廣播。它採用監督樹來管理容錯,確保故障向上傳播以實現結構化恢復。為了實現高效率的資料移動,它整合點對點 RDMA 傳輸,透過 libibverbs 並提供分散式張量 API,讓 Actor 能夠處理跨多個程序分片的張量。

適用對象

專為需要強大容錯能力、高效率 GPU/CPU 記憶體傳輸,以及可擴展方式管理遠端 Actor 的大型分散式 PyTorch 應用開發者所設計。

主要特色

  • 可擴展的 Actor 訊息機制:將 Actor 分組為網格,以高效廣播訊息。
  • 容錯能力:使用監督樹提供結構化的錯誤行為與細粒度恢復。
  • RDMA 支援:支援 GPU 或 CPU 記憶體的低成本註冊與單邊傳輸。
  • 分散式張量:原生支援跨不同程序分片的張量。
  • 彈性建置:支援 CUDA、ROCm 與僅 CPU 環境。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案