Skip to main content
QUICK REVIEW

[論文レビュー] TIRAMISU: A Polyhedral Compiler for Dense and Sparse Deep Learning

Riyadh Baghdadi, Abdelkader Nadir Debbagh|arXiv (Cornell University)|May 7, 2020
Parallel Computing and Optimization Techniques参考文献 37被引用数 10
ひとこと要約

Tiramisu は、多面体モデルとユーザーによるスケジューリング・コマンドを活用することで、マルチコアCPU上でのスパースおよび再帰的ニューラルネットワーク(RNN)向けに高度に最適化されたコードを生成する多面体コンパイラです。Intel MKL-DNN より最大5倍の高速化を達成し、ディープラーニングベンチマークにおいて最先端のコンパイラを最大2倍の性能で上回り、非構造的重みスパarsityを効率的に活用できる最初のDNNコンパイラであることを実証しています。また、未定のアンロール要因を持つ一般RNNをサポートしています。

ABSTRACT

In this paper, we demonstrate a compiler that can optimize sparse and recurrent neural networks, both of which are currently outside of the scope of existing neural network compilers (sparse neural networks here stand for networks that can be accelerated with sparse tensor algebra techniques). Our demonstration includes a mapping of sparse and recurrent neural networks to the polyhedral model along with an implementation of our approach in TIRAMISU, our state-of-the-art polyhedral compiler. We evaluate our approach on a set of deep learning benchmarks and compare our results with hand-optimized industrial libraries. Our results show that our approach at least matches Intel MKL-DNN and in some cases outperforms it by 5x (on multicore-CPUs).

研究の動機と目的

  • 既存のディープラーニングコンパイラにおけるスパースおよび再帰的ニューラルネットワークのサポート不足に対処すること。
  • 従来のコンパイラでは加速が難しい非構造的重みスパarsity向けの高性能コード生成を可能にすること。
  • コンパイル時に未定のアンロール要因を持つ一般RNNのサポートを可能にすること。これは、非循環データフロー・コンパイラでは表現できない。
  • 高度なループおよびデータレイアウト変換を用いて、マルチコアCPU上で既存の産業界および学術的コンパイラを上回る性能を達成すること。
  • 多面体コンパイラにユーザーによるスケジューリングを組み合わせることで、完全自動または制限された構造を持つコンパイラよりも優れた性能を達成できることを示すこと。

提案手法

  • コンパイラはC++に埋め込まれたドメイン固有言語(DSL)を用いて、アルゴリズムとスケジューリング・コマンドを別々に表現し、アーキテクチャに依存しない高レベルの仕様を可能にしている。
  • スパースおよび再帰的ニューラルネットワークを多面体モデルにマッピングすることで、ループタイリング、統合、ベクタライゼーション、イテレーション空間のずれといった複雑なアフィン変換を可能にしている。
  • スケジューリング・コマンドを用いてコード生成をガイドし、配列パッケージング、レジスタブロッキング、データプリフェッチなどの最適化に対して細かく制御できる。
  • 多面体表現により依存関係の正しく分析が可能となり、不正なコード生成を避けるために安全な統合や変換の意思決定が可能になる。
  • 非長方形のイテレーション空間および循環データフローチャートをサポートしており、未定のアンロール要因を持つ一般RNNのモデル化が可能になっている。
  • PyTorch などのハイレベルフレームワークと統合され、マルチコアCPUをターゲットとする最適化されたC++コードを生成する。

実験結果

リサーチクエスチョン

  • RQ1非構造的重みスパarsityを持つディープニューラルネットワークを、多面体コンパイラが効果的に最適化できるか?(既存のDNNコンパイラでは通常無視される。)
  • RQ2コンパイル時に未定のアンロール要因を持つ一般RNNを、コンパイラがどのように表現・最適化できるか?
  • RQ3多面体コンパイラにおけるユーザーによるスケジューリングが、完全自動スケジューラーや産業界用ライブラリと比較してCPUアーキテクチャ上で優れた性能を発揮できるか?
  • RQ4多面体フレームワークを介して適用された、配列パッケージング、レジスタブロッキング、プリフェッチングといった高度な最適化が、スパースおよび再帰的DNNに与える影響は何か?
  • RQ5多面体モデルに基づくコンパイラは、Intel MKL-DNN のような手動最適化ライブラリと同等またはそれ以上の性能を達成できるか、その範囲はどの程度か?

主な発見

  • Tiramisu は、マルチコアCPU上でのスパースおよび再帰的DNNに対して、Intel MKL-DNN より最大5倍の高速化を達成し、顕著な性能向上を示している。
  • すべてのベンチマークでIntel MKL-DNN と同等の性能を達成し、特に非構造的スパarsityの状況ではそれを上回っている。
  • Tiramisu は、非構造的重みスパarsity向けに効率的なコードを生成できる最初のDNNコンパイラであり、計算量とメモリアクセスの削減によるパフォーマンス向上を可能にしている。
  • 未定のアンロール要因を持つ一般RNNを成功裏に表現・最適化できており、これはHalide や他の非循環データフロー・コンパイラではサポートされていない能力である。
  • スケジューリング・コマンドの使用により、配列パッケージングやプリフェッチングといった最適化に対して細かく制御でき、完全自動多面体コンパイラには欠落している機能である。
  • Tiramisu は、最先端のコンパイラを最大2倍の性能で上回っており、多面体フレームワークにおけるユーザーによるスケジューリングが、完全自動アプローチを凌駆する可能性を示している。

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

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

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

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