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 结合使用,实现多节点扩展。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目