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 環境。
相關
- 專案
- 專案
- 專案
- 專案
- 專案