[論文レビュー] Efficient Training of Convolutional Neural Nets on Large Distributed Systems
この論文は、畳み込みニューラルネットワークの効率的な分散学習のための3つの主要な最適化を提案する:I/Oバッファのボトル neck を解消するメモリ内データロード、通信オーバーヘッドを低減するマルチカラーMPI Allreduceアルゴリズム、Torchのデータ並列テーブルにおけるスレッドレベル最適化。これらの技術により、256 GPU を用いた ImageNet-1k 上の ResNet-50 の学習を48分で実行可能となり、前人最高の65分より18%高速であり、ピーク精度を維持した。
Deep Neural Networks (DNNs) have achieved im- pressive accuracy in many application domains including im- age classification. Training of DNNs is an extremely compute- intensive process and is solved using variants of the stochastic gradient descent (SGD) algorithm. A lot of recent research has focussed on improving the performance of DNN training. In this paper, we present optimization techniques to improve the performance of the data parallel synchronous SGD algorithm using the Torch framework: (i) we maintain data in-memory to avoid file I/O overheads, (ii) we present a multi-color based MPI Allreduce algorithm to minimize communication overheads, and (iii) we propose optimizations to the Torch data parallel table framework that handles multi-threading. We evaluate the performance of our optimizations on a Power 8 Minsky cluster with 32 nodes and 128 NVidia Pascal P100 GPUs. With our optimizations, we are able to train 90 epochs of the ResNet-50 model on the Imagenet-1k dataset using 256 GPUs in just 48 minutes. This significantly improves on the previously best known performance of training 90 epochs of the ResNet-50 model on the same dataset using 256 GPUs in 65 minutes. To the best of our knowledge, this is the best known training performance demonstrated for the Imagenet- 1k dataset.
研究の動機と目的
- 分散DNN学習におけるミニバッチデータロード時の遅いファイルI/Oによって引き起こされるパフォーマンスボトル neck を解消すること。
- 同期的データ並列SGDにおける通信オーバーヘッドを低減するために、MPI Allreduce集合的演算を最適化すること。
- マルチGPUシステムをより効果的に活用するために、Torchフレームワークのデータ並列テーブルにおけるマルチスレッド効率を向上させること。
- 大規模なモデル(例:ResNet-50 や GoogLeNet)を大規模GPUクラスタ上で、モデル精度を損なわずにより高速に学習すること。
- 256 GPU を用いた ImageNet-1k における、これまでにない最高のトレーニングパフォーマンスを実証し、分散DNN学習における新たなパフォーマンス基準を確立すること。
提案手法
- 学習反復中における繰り返しのディスクI/Oを排除するために、ImageNet-1k データセット全体を分散システムメモリに事前にロードするメモリ内データ配布戦略を実装する。
- GPUノード間の計算と通信フェーズを重ねることで通信遅延を低減する、マルチカラーに基づくMPI Allreduceアルゴリズムを設計する。
- マルチGPU・マルチノード環境におけるスレッドレベルの負荷分散を向上させ、競合状態を低減するために、Torchフレームワークのデータ並列テーブルモジュールを最適化する。
- 効率的な低レベル計算を可能にするLuaスクリプティングおよびCベースのFFIを備えたTorchディープラーニングフレームワークを用い、高性能な分散学習を実現する。
- OpenMPIを用いて最適化を分散Torchアプリケーションに統合し、POWER8 Minskyクラスタ(128台のP100 GPU)上でパフォーマンスを評価する。
- ノード数(8、16、32)を変化させながら、1エポックあたりのトレーニング時間と検証精度を測定し、スケーラビリティと正しさを評価する。
実験結果
リサーチクエスチョン
- RQ1大規模データセット(例:ImageNet-1k)を用いた分散DNN学習において、ファイルI/Oオーバーヘッドをどのように最小限に抑えることができるか?
- RQ2同期的データ並列SGDにおけるMPI Allreduceステップの通信遅延を顕著に低減する通信最適化技術は何か?
- RQ3Torchのデータ並列テーブルフレームワークにおけるスレッドレベルの非効率性が、マルチGPUシステムにおける学習パフォーマンスに及ぼす影響はどの程度か?
- RQ4I/O、通信、スレッド最適化の組み合わせによって、精度を損なわずに大規模モデル(例:ResNet-50)の学習を顕著に高速化できるか?
- RQ5同じハードウェアとデータセットにおいて、提案手法は、前人最高の実装と比較して、トレーニング時間とモデル精度の両面でどのように差をつけるか?
主な発見
- メモリ内データロード戦略により、ファイルI/Oオーバーヘッドが低減され、データスルーレートが著しく向上し、1エポックあたりのトレーニング時間が短縮された。
- マルチカラーMPI Allreduceアルゴリズムにより通信遅延が低減され、GoogLeNetおよびResNet-50の両モデルで1エポックあたり15–18%の時間短縮が達成された。
- 最適化されたTorchのデータ並列テーブルにより、スレッドの利用効率が向上し、特にノード数が増加した場合の同期ボトル neck が軽減された。
- すべての最適化を適用した結果、256 GPU を用いたImageNet-1k 上のResNet-50の90エポックのトレーニングが48分で完了した。これは、前人最高の65分より18%高速である。
- 最適化された環境で達成されたピーク検証精度は75.4%であり、前人最高で報告された76.2%と同等であり、精度の低下がないことが確認された。
- ノード数を変化させたさまざまな条件下で、ResNet-50では110–130%、GoogLeNetBNでは58–72%のスループット向上が達成され、強力なスケーラビリティとパフォーマンス向上が示された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。