Skip to main content
QUICK REVIEW

[論文レビュー] Hoard: A Distributed Data Caching System to Accelerate Deep Learning Training on the Cloud

Christian Pinto, Yiannis Gkoufas|arXiv (Cornell University)|Dec 3, 2018
Advanced Neural Network Applications参考文献 10被引用数 15
ひとこと要約

Hoard は、複数の GPU ノードに分散して配置されたローカルの NVMe ディスクに分散ファイルシステムを用いてデータセットをキャッシュすることで、クラウドクラスタ上のディープラーニング学習の速度を向上させる分散データキャッシュシステムです。10Gb/s の NFS よりも 2.1 倍高速化され、共存キャッシュと POSIX 合致アクセスにより I/O ボトルneckを排除することで、システム利用率を倍増させます。

ABSTRACT

Deep Learning system architects strive to design a balanced system where the computational accelerator -- FPGA, GPU, etc, is not starved for data. Feeding training data fast enough to effectively keep the accelerator utilization high is difficult when utilizing dedicated hardware like GPUs. As accelerators are getting faster, the storage media \& data buses feeding the data have not kept pace and the ever increasing size of training data further compounds the problem. We describe the design and implementation of a distributed caching system called Hoard that stripes the data across fast local disks of multiple GPU nodes using a distributed file system that efficiently feeds the data to ensure minimal degradation in GPU utilization due to I/O starvation. Hoard can cache the data from a central storage system before the start of the job or during the initial execution of the job and feeds the cached data for subsequent epochs of the same job and for different invocations of the jobs that share the same data requirements, e.g. hyper-parameter tuning. Hoard exposes a POSIX file system interface so the existing deep learning frameworks can take advantage of the cache without any modifications. We show that Hoard, using two NVMe disks per node and a distributed file system for caching, achieves a 2.1x speed-up over a 10Gb/s NFS central storage system on a 16 GPU (4 nodes, 4 GPUs per node) cluster for a challenging AlexNet ImageNet image classification benchmark with 150GB of input dataset. As a result of the caching, Hoard eliminates the I/O bottlenecks introduced by the shared storage and increases the utilization of the system by 2x compared to using the shared storage without the cache.

研究の動機と目的

  • GPU などの高速アクセcelレータに対して遅い中央ストレージに起因するディープラーニング学習における I/O ボトルneckを解消すること。
  • データをローカルディスクにコピーする作業が非効率でリソース競合が激しい、マルチ GPU およびマルチジョブのクラウド環境におけるシステム利用率を向上させること。
  • 中央ストレージから再コピーを行わずに、複数のトレーニングジョブやハイパラメータチューニング実験間でキャッシュデータを効率的に再利用できること。
  • 既存のディープラーニングフレームワークとシームレスに統合できる、透明で即時利用可能なキャッシュソリューションを提供すること。
  • データセットのライフサイクルとジョブのライフサイクルを分離することで、より高いリソース効率を実現するスケーラブルでクラウドネイティブなキャッシュミドルウェアを設計すること。

提案手法

  • Hoard は分散ファイルシステムを用いて、複数の GPU ノードのローカル NVMe ディスクにトレーニングデータをストライプしキャッシュします。
  • キャッシュ作成、ジョブスケジューリングの共存配置、および独立したデータライフサイクル管理を調整するためのマイクロサービス群を採用します。
  • システムは POSIX 合致のファイルシステムインターフェースを公開しており、既存のディープラーニングフレームワークがコード変更なしにキャッシュデータにアクセスできます。
  • データはジョブ実行前または実行中に中央ストレージシステム(例:NFS、S3)から事前にキャッシュされ、エポックおよびジョブ間での再利用が可能になります。
  • ネットワーク干渉を低減するため、ラックを意識したスケジューリングをサポートします。
  • トレーニングジョブとそのデータを同じノードまたはラックに共存させることで、I/O レイテンシとネットワーク負荷を最小限に抑えます。

実験結果

リサーチクエスチョン

  • RQ1分散キャッシュシステムは、GPU クラスタ上でのディープラーニング学習における I/O ボトルneckを軽減できるか?
  • RQ2ローカルの NVMe ストレージを用いて複数ノードに分散してキャッシュする方法と、中央の NFS やオブジェクトストレージに依存する方法とを比較すると、どのような差が出るか?
  • RQ3マルチジョブおよびマルチ GPU クラウド環境において、キャッシュシステムはシステム利用率とトレーニングスループットをどの程度向上できるか?
  • RQ4フレームワークの変更なしに、透明で POSIX 合致のキャッシュレイヤーをディープラーニングワークフローで効果的に使用できるか?
  • RQ5データセットのライフサイクルとジョブのライフサイクルを分離することで、ハイパラメータチューニングワークロードにおけるパフォーマンスとリソース再利用にどのような影響を与えるか?

主な発見

  • 16 GPU クラスタ上での AlexNet ImageNet ベンチマークにおいて、150GB のデータセットを対象に、10Gb/s の NFS ストレージよりも 2.1 倍高速化を達成した。
  • 共有ストレージをキャッシュなしで使用する場合と比較して、I/O 競合の低減と高速なデータアクセスにより、システム利用率が 2 倍向上した。
  • キャッシュ機構により I/O スターヴェーションが解消され、トレーニング中を通して GPU が高い利用率を維持できるようになった。
  • キャッシュされたデータは複数のエポックおよび同じデータ要件を持つ異なるジョブ間で再利用可能であり、重複したデータ転送が削減された。
  • より大きなクラスタへのスケーリングも効率的であり、共有ストレージの負荷が増加するほど想定されるパフォーマンス向上が顕著になる。
  • POSIX インターフェースにより、既存のディープラーニングフレームワークにコード変更なしにシームレスに統合できる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。