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をサポートします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト