Skip to main content
QUICK REVIEW

[論文レビュー] Tiramisu: a polyhedral compiler for expressing fast and portable code

Riyadh Baghdadi, Jessica M. Ray|arXiv (Cornell University)|Feb 16, 2019
Parallel Computing and Optimization Techniques参考文献 43被引用数 104
ひとこと要約

Tiramisu は、柔軟な多面体表現と豊富なスケジューリング言語を組み合わせることで、マルチコア CPU、GPU、分散システム向けに高パフォーマンスでポータブルなコードを生成する多面体コンパイラです。4段階の中間表現を用いることで、アルゴリズム、ループ変換、データレイアウト、通信を分離し、画像処理、ステンシル計算、線形代数、ディープラーニングの分野で、多様なアーキテクチャにおいて最先端のパフォーマンスを達成しています。

ABSTRACT

This paper introduces Tiramisu, a polyhedral framework designed to generate high performance code for multiple platforms including multicores, GPUs, and distributed machines. Tiramisu introduces a scheduling language with novel extensions to explicitly manage the complexities that arise when targeting these systems. The framework is designed for the areas of image processing, stencils, linear algebra and deep learning. Tiramisu has two main features: it relies on a flexible representation based on the polyhedral model and it has a rich scheduling language allowing fine-grained control of optimizations. Tiramisu uses a four-level intermediate representation that allows full separation between the algorithms, loop transformations, data layouts, and communication. This separation simplifies targeting multiple hardware architectures with the same algorithm. We evaluate Tiramisu by writing a set of image processing, deep learning, and linear algebra benchmarks and compare them with state-of-the-art compilers and hand-tuned libraries. We show that Tiramisu matches or outperforms existing compilers and libraries on different hardware architectures, including multicore CPUs, GPUs, and distributed machines.

研究の動機と目的

  • 画像処理、ステンシル、線形代数、ディープラーニングなどのパフォーマンスが求められる分野において、異種アーキテクチャ向けにポータブルで高パフォーマンスなコードを書く課題に対処すること。
  • スケジューリングやデータレイアウトといった低レベルの実装詳細から離れて、ループ最適化やデータレイアウト変換に対して細かく制御可能でありながら、多様なハードウェアプラットフォーム間でポータブルを維持すること。
  • 4段階の中間表現を通じて、アルゴリズムの定義をスケジューリングやデータレイアウトの詳細から分離すること。
  • 自動的かつ正確な最適化を通じて、マルチコア CPU、GPU、分散システムにおいて、既存のコンパイラや手動チューニング済みライブラリを上回る性能を達成すること。
  • コアアルゴリズムの再実装なしに、複数のアーキテクチャを簡素にターゲット化できる統合フレームワークを提供すること。

提案手法

  • フレームワークは、アルゴリズム定義、ループ変換、データレイアウト、通信パターンを分離する4段階の中間表現を使用している。
  • マルチコア、GPU、分散システム向けに複雑な最適化を表現できる拡張を施した新しいスケジューリング言語を採用している。
  • 多面体モデルを柔軟な基盤として用い、ネストされたループとデータ依存関係を表現・変換している。
  • CPU、GPU、分散クラスタを含む複数のバックエンド向けに自動コード生成をサポートしている。
  • タイリング、並列化、ベクタライゼーション、データレイアウト変換などの最適化は、すべてスケジューリング言語を通じて表現されている。
  • 高レベルのアルゴリズム設計と低レベルのハードウェア固有の詳細を分離することで、ポータブルなパフォーマンスを実現している。

実験結果

リサーチクエスチョン

  • RQ1多面体コンパイラは、多様なアーキテクチャにおいて、手動チューニング済みライブラリや最先端のコンパイラと同等またはそれ以上のパフォーマンスを達成できるか?
  • RQ21つのアルゴリズムが、統一された中間表現を用いて、マルチコア CPU、GPU、分散システムに効率的にターゲット化できる範囲はどの程度か?
  • RQ3提案されたスケジューリング言語は、異種システム向けに複雑な最適化を表現するのにどの程度有効か?
  • RQ44段階の IR における責任の分離は、パフォーマンスを損なうことなく、移植性と最適化の簡素化を可能にするか?
  • RQ5フレームワークは、画像処理、ディープラーニング、線形代数などの分野で、ポータブルな高パフォーマンスコード生成を可能にするか?

主な発見

  • Tiramisu は、画像処理、ディープラーニング、線形代数のワークロードにおいて、マルチコア CPU、GPU、分散マシンのあらゆるアーキテクチャで、既存のコンパイラや手動チューニング済みライブラリと同等またはそれ以上のパフォーマンスを達成している。
  • 4段階の中間表現は、アルゴリズム論理とスケジューリング・データレイアウトの分離に成功しており、多様なアーキテクチャへの効率的な移植を可能にしている。
  • スケジューリング言語により、最適化に対する細かな制御が可能であり、異種システム向けに高パフォーマンスを発揮するための複雑な変換をサポートしている。
  • 手動での低レベルチューニングを必要とせず、自動的かつ表現力豊かな最適化パイプラインの有効性を示している。
  • Tiramisu は、複数のプラットフォームでポータブルで高パフォーマンスなコード生成を可能にし、アーキテクチャ固有の手動最適化の必要性を低減している。
  • 実世界のベンチマークでの評価により、Tiramisu がすべてのターゲット分野で最先端のツールと比較して競争力のある、あるいは優れたパフォーマンスを発揮することが確認された。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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