LOOPer: A Learned Automatic Code Optimizer For Polyhedral Compilers

要約

多面体コンパイラは高度なコード変換の実装に成功を示していますが、最高のスピードアップにつながる最も収益性の高い変換を選択する際には依然として課題があります。
これにより、多面体最適化の探索をガイドするコスト モデルを構築するために機械学習が使用されるようになりました。
最先端の多面体コンパイラは、このアプローチの実行可能な概念実証を実証しました。
このような概念実証には有望性が示されていますが、依然として重大な制限があります。
深層学習コスト モデルを使用する最先端の多面体コンパイラーは、アフィン変換の小さなサブセットのみをサポートしており、複雑なコード変換を適用する能力が制限されています。
また、単一のループ ネストと長方形の反復ドメインを持つ単純なプログラムのみをサポートするため、多くのプログラムへの適用が制限されます。
これらの制限は、そのようなコンパイラやオートスケジューラの汎用性に大きな影響を与え、アプローチ全体に疑問を投げかけます。
このペーパーでは、深層学習ベースのコスト モデルを使用し、大規模なアフィン変換とプログラムをカバーする初の多面体オートスケジューラーである LOOPer を紹介します。
これは、大規模なアフィン変換セットの探索をサポートし、多面体変換の複雑なシーケンスの適用を可能にします。
また、複数のループ ネストや長方形および非長方形の反復ドメインを含むプログラムの最適化もサポートしており、広範なプログラムのセットを最適化できます。
私たちは LOOPer を実装して評価し、それが最先端技術を上回る高速化を達成することを示します。
Polybench ベンチマークでは、LOOPer は Tiramisu と比較して 1.59 倍の幾何平均速度向上を達成しました。
LOOPer はまた、機械学習ベースのコスト モデルを使用しない最先端の多面体コンパイラーである Pluto と比較して幾何平均 1.34 倍という競争力のある高速化を実現します。

要約(オリジナル)

While polyhedral compilers have shown success in implementing advanced code transformations, they still have challenges in selecting the most profitable transformations that lead to the best speedups. This has motivated the use of machine learning to build cost models to guide the search for polyhedral optimizations. State-of-the-art polyhedral compilers have demonstrated a viable proof-of-concept of this approach. While such a proof-of-concept has shown promise, it still has significant limitations. State-of-the-art polyhedral compilers that use a deep-learning cost model only support a small subset of affine transformations, limiting their ability to apply complex code transformations. They also only support simple programs that have a single loop nest and a rectangular iteration domain, limiting their applicability to many programs. These limitations significantly impact the generality of such compilers and autoschedulers and put into question the whole approach. In this paper, we introduce LOOPer, the first polyhedral autoscheduler that uses a deep-learning based cost model and covers a large set of affine transformations and programs. It supports the exploration of a large set of affine transformations, allowing the application of complex sequences of polyhedral transformations. It also supports the optimization of programs with multiple loop nests and with rectangular and non-rectangular iteration domains, allowing the optimization of an extensive set of programs. We implement and evaluate LOOPer and show that it achieves speedups over the state-of-the-art. On the Polybench benchmark, LOOPer achieves a geometric mean speedup of 1.59x over Tiramisu. LOOPer also achieves competitive speedups with a geometric mean speedup of 1.34x over Pluto, a state-of-the-art polyhedral compiler that does not use a machine-learning based cost model.

arxiv情報

著者 Massinissa Merouani,Khaled Afif Boudaoud,Iheb Nassim Aouadj,Nassim Tchoulak,Islam Kara Bernou,Hamza Benyamina,Fatima Benbouzid-Si Tayeb,Karima Benatchba,Hugh Leather,Riyadh Baghdadi
発行日 2024-03-18 07:22:31+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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