Skip to main content
QUICK REVIEW

[論文レビュー] Scheduling Computation Graphs of Deep Learning Models on Manycore CPUs

Linpeng Tang, Yida Wang|arXiv (Cornell University)|Jul 16, 2018
Advanced Neural Network Applications参考文献 50被引用数 13
ひとこと要約

本稿では、プロファイリングを用いて最適な並列化を特定し、クリティカルパス優先スケジューリングを適用することで、リソース干渉を最小限に抑えることで、多くのコアを備えたCPU上でディープラーニングの計算グラフスケジューリングを最適化する高パフォーマンス実行エンジン「Graphi」を提案する。Graphiは、4つのニューラルネットワークを対象に68コアのIntel Xeon Phiプロセッサ上でTensorFlowと比較して2.1×から9.5×の高速化を達成した。

ABSTRACT

For a deep learning model, efficient execution of its computation graph is key to achieving high performance. Previous work has focused on improving the performance for individual nodes of the computation graph, while ignoring the parallelization of the graph as a whole. However, we observe that running multiple operations simultaneously without interference is critical to efficiently perform parallelizable small operations. The attempt of executing the computation graph in parallel in deep learning frameworks usually involves much resource contention among concurrent operations, leading to inferior performance on manycore CPUs. To address these issues, in this paper, we propose Graphi, a generic and high-performance execution engine to efficiently execute a computation graph in parallel on manycore CPUs. Specifically, Graphi minimizes the interference on both software/hardware resources, discovers the best parallel setting with a profiler, and further optimizes graph execution with the critical-path first scheduling. Our experiments show that the parallel execution consistently outperforms the sequential one. The training times on four different neural networks with Graphi are 2.1x to 9.5x faster than those with TensorFlow on a 68-core Intel Xeon Phi processor.

研究の動機と目的

  • ディープラーニングワークロードにおける多くのコアCPUの未利用化を、スケジューリングの不適切さやスレッド干渉によって是正する。
  • 多くのコアCPU上で既存のフレームワーク(例:TensorFlow)が直列実行や単純な並列実行にとどまっている制限を克服する。
  • 多様なディープラーニング計算グラフに適応可能な、動的並列化とスケジューリング最適化を実現する汎用実行エンジンを設計する。
  • 同時に実行される処理間におけるソフトウェアおよびハードウェアリソースの競合を最小限に抑え、CPUの利用率を最大化する。
  • 知能的なスケジューリングとプロファイリングが、現代の多くのコアアーキテクチャにおいて顕著なパフォーマンス向上をもたらすことを実証する。

提案手法

  • スケジューラーおよびエグゼキューターのための最適な並列化設定とリソース割り当てを特定するため、計算グラフをプロファイリングする。
  • クリティカルパス優先スケジューリングを適用する集中型スケジューラを実装し、依存関係の高い処理を優先することで、無駄な待機時間を削減する。
  • CPUおよびメモリリソースを非重複的に割り当てることで、スレッド間の干渉を最小限に抑えるリソース隔離技術を用いる。
  • 専用エグゼキューターと中央スケジューラを備えたマルチエージェントアーキテクチャを採用し、実行を調整することで競合を低減する。
  • Intel Xeon Phi(68コア、MICアーキテクチャ)のハードウェア固有の特性を活用し、プロファイリングとスケジューリングを通じてパフォーマンスを最適化する。
  • モデル特化なしにさまざまなニューラルネットワーク構造をサポートする汎用インターフェースを設計することで、既存のディープラーニングフレームワークと統合する。

実験結果

リサーチクエスチョン

  • RQ1多くのコアCPU上で計算グラフスケジューリングを最適化することで、スレッド干渉とリソース競合をどのように低減できるか?
  • RQ2多くのコアCPU上で、ディープラーニング計算グラフ内の小規模で独立した演算の最適な並列度は何か?
  • RQ3集中型で知的なスケジューラは、単純な並列化や直列実行に比べ、スループットとレイテンシの面で優れているか?
  • RQ4プロファイリングと動的設定が、多様なディープラーニングモデルにおいてどれほどパフォーマンス向上に寄与するか?
  • RQ5モデル特化なしに、汎用実行エンジンがさまざまなニューラルネットワークアーキテクチャで高いパフォーマンスを達成できるか?

主な発見

  • Graphiは、68コアのIntel Xeon Phiプロセッサ上で4つの異なるニューラルネットワークに対して、TensorFlowと比較して2.1×から9.5×の高速化を達成した。
  • 干渉のない並列実行は、同じハードウェア上で直列実行と比較して最大3.4倍のパフォーマンス向上を示した。
  • クリティカルパス優先スケジューリング戦略は、単純なスケジューリング手法と比較して8%から19%のパフォーマンス向上をもたらした。
  • 行列乗算や要素演算などの演算は、Xeon Phi上で8コアまたは16コアで飽和し、これ以上のコア数では競合による損失が利得を上回ることが示された。
  • Graphiは、LSTMネットワーク向けにcuDNNで実装された手動最適化並列化と同等のパフォーマンスを自動で回復・達成した。
  • フレームワークは広範に一般化でき、Intel Xeon Platinum 8180のような現代のマルチコアCPUでも良好なスループット向上を示し、Xeon Phiに限定されない広範な適用可能性を確認した。

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

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

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

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