このページは Cloud Translation API によって翻訳されました。
Switch to English

MLIR

概観

MLIR、またはマルチレベルの中間表現は、モデル表現とハードウェア固有のコードを生成する低レベルのコンパイラ/エグゼキュータの間に位置するコンパイラユーティリティの表現形式とライブラリです。

MLIRは、本質的に、最新の最適化コンパイラーのための柔軟なインフラストラクチャーです。これは、中間表現(IR)の仕様と、その表現に対して変換を実行するためのコードツールキットで構成されていることを意味します。 (コンパイラ用語では、上位レベルの表現から下位レベルの表現に移行すると、これらの変換は「低下」と呼ばれます)

MLIRはLLVMの影響を強く受けており、そこから多くの優れたアイデアを思い切って再利用しています。柔軟な型システムがあり、同じコンパイル単位で複数レベルの抽象化を組み合わせてグラフを表現、分析、変換できます。これらの抽象化には、TensorFlow演算、ネストされた多面体ループ領域、さらにはLLVM命令、固定ハードウェア演算およびタイプが含まれます。

MLIRは、次のような多くのグループに関心があると期待しています。

  • 機械学習モデルのパフォーマンスとメモリ消費の最適化を目指すコンパイラーの研究者と実装者
  • TPU、携帯電話のポータブルニューラルハードウェア、その他のカスタムASICなど、ハードウェアをTensorFlowに接続する方法を探しているハードウェアメーカー
  • コンパイラとハードウェアアクセラレーションの最適化を利用したい言語バインディングを書いている人。

TensorFlowエコシステムには、ソフトウェアとハ​​ードウェアスタックの複数のレベルで動作するコンパイラとオプティマイザが多数含まれています。 MLIRを段階的に採用することで、このスタックのあらゆる側面が簡素化されることを期待しています。

MLIRの概要図