horovod/horovod

Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.

解决的问题

Horovod 简化了将深度学习训练从单 GPU 扩展到多 GPU 和多主机的过程。它消除了管理参数服务器的复杂性,并减少了使训练脚本分布式化所需的代码更改量。

工作原理

Horovod 使用基于 MPI(消息传递接口)的模型以及 allreduce、allgather 和 broadcast 等集合通信操作。它与 TensorFlow、Keras、PyTorch 和 Apache MXNet 等主要框架集成。

主要技术特性包括:

  • Tensor Fusion:将小型 allreduce 操作批量处理,以交错通信和计算,从而提升性能。
  • Distributed Optimizer:一种在应用梯度之前跨工作节点平均梯度的封装器。
  • Autotuning:一个用于优化 Tensor Fusion 和其他功能性能设置的自动化系统。

适用人群

需要在 GPU 或 CPU 集群上训练大型模型的机器学习工程师和研究人员,以及希望以一致的方式在不同深度学习框架中处理分布式训练的人员。

亮点

  • 框架无关性:支持 TensorFlow、PyTorch、Keras 和 MXNet。
  • 高扩展效率:在数百个 GPU 上实现高扩展效率(对于某些模型高达 90%)。
  • 灵活部署:可在本地机器、Docker、Kubernetes、Spark、Ray 和 HPC 集群上运行。
  • MPI/Gloo 支持:支持用于高性能通信的 MPI,以及用于未安装 MPI 环境的 Gloo。

相关

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