pytorch/gloo
Collective communications library with various primitives for multi-machine training.
解決的問題
Gloo 是一個為機器學習應用設計的集體通訊庫,旨在促進多機訓練。它提供了必要的原語,以高效地在叢集中的多台機器之間同步和傳輸資料。
工作原理
實現了多種集體演算法,例如 barrier、broadcast 和 allreduce。該庫抽象了底層資料傳輸,支援使用標準 IP(TCP)或 InfiniBand/RoCE 以獲得更高效能。對於 GPU 加速的工作負載,它支援 GPUDirect,從而實現跨機器的 GPU 到 GPU 直接記憶體傳輸,減少在主機記憶體和裝置記憶體之間複製資料的需求。
適用對象
需要在多個計算節點之間可靠協調資料交換的分散式機器學習訓練開發者與研究人員。
特點
- 集體原語:包含 allreduce、broadcast 和 barrier 等基本操作。
- 硬體加速:支援 InfiniBand、RoCE 和 GPUDirect,實現高速 GPU 傳輸。
- 靈活傳輸:支援標準 IP/TCP,同時為系統記憶體和 NVIDIA GPU 記憶體緩衝區提供優化路徑。
- 整合性:通常與 PyTorch Distributed 結合使用,實現多節點擴展。
相關
- 專案
- 專案
- 專案
- 專案
- 專案