mlirSynth: Automatic, Retargetable Program Raising in Multi-Level IR using Program Synthesis

要約

MLIR は最新のハードウェア向けの新しいコンパイラ インフラストラクチャですが、既存のプログラムが低レベルの汎用言語で記述されている場合、既存のプログラムは MLIR の高性能コンパイルを利用できません。
その結果、プログラムを手動で書き直す必要を避けるために、MLIR で低レベルの方言を自動的に高レベルの方言に引き上げる取り組みが行われました。
ただし、現在の方法は手動で定義された引き上げルールに依存しているため、適用性が制限され、MLIR 方言が進化するにつれて維持することが困難になります。
私たちは、mlirSynth を紹介します。これは、手動でルールを定義せずに、プログラムを低レベルの MLIR 方言から高レベルの方言に変換する新しいアプローチです。
代わりに、利用可能な方言定義を使用してプログラム空間を構築し、型制約と等価性を使用してそれを効果的に検索します。
\revi{C プログラムを 2 つの異なる高レベル MLIR 方言に変換することにより、その有効性を実証します。これにより、既存の高レベル方言固有のコンパイル フローを使用できるようになります。
Polybench では、以前のアプローチよりも広いカバレッジを示し、その結果、C プログラミング言語の最先端のコンパイル フローと比べて幾何平均速度が 2.5 倍 (Intel)、3.4 倍 (AMD) 向上しました。
mlirSynth では、ドメイン固有のアクセラレータへの再ターゲットも可能になり、TPU 上で地理平均速度が 21.6 倍向上します。

要約(オリジナル)

MLIR is an emerging compiler infrastructure for modern hardware, but existing programs cannot take advantage of MLIR’s high-performance compilation if they are described in lower-level general purpose languages. Consequently, to avoid programs needing to be rewritten manually, this has led to efforts to automatically raise lower-level to higher-level dialects in MLIR. However, current methods rely on manually-defined raising rules, which limit their applicability and make them challenging to maintain as MLIR dialects evolve. We present mlirSynth — a novel approach which translates programs from lower-level MLIR dialects to high-level ones without manually defined rules. Instead, it uses available dialect definitions to construct a program space and searches it effectively using type constraints and equivalences. We demonstrate its effectiveness \revi{by raising C programs} to two distinct high-level MLIR dialects, which enables us to use existing high-level dialect specific compilation flows. On Polybench, we show a greater coverage than previous approaches, resulting in geomean speedups of 2.5x (Intel) and 3.4x (AMD) over state-of-the-art compilation flows for the C programming language. mlirSynth also enables retargetability to domain-specific accelerators, resulting in a geomean speedup of 21.6x on a TPU.

arxiv情報

著者 Alexander Brauckmann,Elizabeth Polgreen,Tobias Grosser,Michael F. P. O’Boyle
発行日 2023-10-06 12:21:50+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL, cs.DC, cs.PF, cs.PL パーマリンク