Skip to main content
QUICK REVIEW

[論文レビュー] MLIR: A Compiler Infrastructure for the End of Moore's Law

Chris Lattner, Mehdi Amini|arXiv (Cornell University)|Feb 25, 2020
Parallel Computing and Optimization Techniques参考文献 47被引用数 120
ひとこと要約

MLIR は再利用可能で拡張性のあるコンパイラ基盤を提供し、モジュラーな SSAベースの IR とディダレクツ(dialects)を用いて異種ハードウェアとドメイン特化コンパイラをサポートし、断片化を減らしコンパイラ開発を加速することを目的としています。

ABSTRACT

This work presents MLIR, a novel approach to building reusable and extensible compiler infrastructure. MLIR aims to address software fragmentation, improve compilation for heterogeneous hardware, significantly reduce the cost of building domain specific compilers, and aid in connecting existing compilers together. MLIR facilitates the design and implementation of code generators, translators and optimizers at different levels of abstraction and also across application domains, hardware targets and execution environments. The contribution of this work includes (1) discussion of MLIR as a research artifact, built for extension and evolution, and identifying the challenges and opportunities posed by this novel design point in design, semantics, optimization specification, system, and engineering. (2) evaluation of MLIR as a generalized infrastructure that reduces the cost of building compilers-describing diverse use-cases to show research and educational opportunities for future programming languages, compilers, execution environments, and computer architecture. The paper also presents the rationale for MLIR, its original design principles, structures and semantics.

研究の動機と目的

  • ドメイン間およびハードウェアターゲット間の断片化を減らす、一般的で拡張可能なコンパイラ基盤を提案する。
  • 複数の抽象レベルをサポートするカスタマイズ可能なダイアレクトを備えた標準的な SSAベースの IR を提供する。
  • コンパイラ開発を容易にするための解析、検証、変換、デバッグのインフラストラクチャを提供する。
  • MLIR が多様なコンパイルスタックを統一し、研究・教育・ツール群の促進できることを示す。

提案手法

  • MLIR の核となる抽象概念を紹介: SSAベースの IR、region、operation (Ops)、および dialects。
  • 最小限の組み込み概念、漸進的な lowering を用い、高レベルの意味論を保持するという設計原則を説明する。
  • Operation Descriptions (ODS) と Declarative Rewrite Rules (DRR) を用いた宣言型 IR 定義を提示する。
  • ダイアレクト、パス、検証、およびマルチレベル IR 管理のための MLIR インフラストラクチャを説明する。
  • マルチスレッド対応、ラウンドトリップ可能なテキストIR形式、および豊富な位置情報/トレースデータのサポートを示す。

実験結果

リサーチクエスチョン

  • RQ1単一の IR フレームワークが、概念をハードコードせずに複数の高レベル抽象(例:ML グラフ、AST、ポリヘドラル形など)をどのようにサポートできるか?
  • RQ2漸進的な lowering と dialect の組み合わせは、多様なハードウェアターゲットに対して効率的で異種のコンパイルを可能にするか?
  • RQ3拡張可能なエコシステムにおいて、MLIR はモジュール化された再利用可能なコンパイラパスと信頼性の高い検証をどのように実現するか?
  • RQ4宣言型 rewrite パターンと TableGen-based Op の記述が拡張性とツールの面でどのような利点をもたらすか?

主な発見

  • MLIR はモジュール式の dialects と再利用可能な passes を可能にする一般化されたインフラストラクチャを提供し、コンパイラ構築のコストを削減します。
  • 設計は高レベルの抽象からハードウェアターゲットへの漸進的な lowering をサポートし、必要な意味論を保持します。
  • ダイアレクトの混成と region ベースの IR は領域を超えた再利用を可能にし、異種のコンパイルを促進します。
  • Declarative rewrite patterns および DRR/ODS は、より容易で検証可能な変換と拡張可能な最適化を可能にします。
  • このインフラストラクチャには検証、ドキュメント生成、ラウンドトリップ可能なテキスト IR が含まれ、デバッグと教育を支援します。

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

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

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

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