LOOPer: A Learned Automatic Code Optimizer For Polyhedral Compilers

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Merouani, Massinissa, Boudaoud, Afif, Aouadj, Iheb Nassim, Tchoulak, Nassim, Bernou, Islem Kara, Benyamina, Hamza, Tayeb, Fatima Benbouzid-Si, Benatchba, Karima, Leather, Hugh, Baghdadi, Riyadh
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866908732979412992
author Merouani, Massinissa
Boudaoud, Afif
Aouadj, Iheb Nassim
Tchoulak, Nassim
Bernou, Islem Kara
Benyamina, Hamza
Tayeb, Fatima Benbouzid-Si
Benatchba, Karima
Leather, Hugh
Baghdadi, Riyadh
author_facet Merouani, Massinissa
Boudaoud, Afif
Aouadj, Iheb Nassim
Tchoulak, Nassim
Bernou, Islem Kara
Benyamina, Hamza
Tayeb, Fatima Benbouzid-Si
Benatchba, Karima
Leather, Hugh
Baghdadi, Riyadh
contents While polyhedral compilers have shown success in implementing advanced code transformations, they still face challenges in selecting the ones that lead to the most profitable speedups. This has motivated the use of machine learning based cost models to guide the search for polyhedral optimizations. State-of-the-art polyhedral compilers have demonstrated a viable proof-of-concept of such an approach. While promising, this approach still faces 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 explore complex code transformations. Furthermore, their applicability does not scale beyond simple programs, thus excluding many program classes from their scope, such as those with non-rectangular iteration domains or multiple loop nests. 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 space of affine transformations and programs. LOOPer allows the optimization of an extensive set of programs while being effective at applying complex sequences of polyhedral transformations. We implement and evaluate LOOPer and show that it achieves competitive speedups over the state-of-the-art. On the PolyBench benchmarks, LOOPer achieves a geometric mean speedup of 1.84x over Tiramisu and 1.42x over Pluto, two state-of-the-art polyhedral autoschedulers.
format Preprint
id arxiv_https___arxiv_org_abs_2403_11522
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle LOOPer: A Learned Automatic Code Optimizer For Polyhedral Compilers
Merouani, Massinissa
Boudaoud, Afif
Aouadj, Iheb Nassim
Tchoulak, Nassim
Bernou, Islem Kara
Benyamina, Hamza
Tayeb, Fatima Benbouzid-Si
Benatchba, Karima
Leather, Hugh
Baghdadi, Riyadh
Programming Languages
Distributed, Parallel, and Cluster Computing
Machine Learning
While polyhedral compilers have shown success in implementing advanced code transformations, they still face challenges in selecting the ones that lead to the most profitable speedups. This has motivated the use of machine learning based cost models to guide the search for polyhedral optimizations. State-of-the-art polyhedral compilers have demonstrated a viable proof-of-concept of such an approach. While promising, this approach still faces 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 explore complex code transformations. Furthermore, their applicability does not scale beyond simple programs, thus excluding many program classes from their scope, such as those with non-rectangular iteration domains or multiple loop nests. 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 space of affine transformations and programs. LOOPer allows the optimization of an extensive set of programs while being effective at applying complex sequences of polyhedral transformations. We implement and evaluate LOOPer and show that it achieves competitive speedups over the state-of-the-art. On the PolyBench benchmarks, LOOPer achieves a geometric mean speedup of 1.84x over Tiramisu and 1.42x over Pluto, two state-of-the-art polyhedral autoschedulers.
title LOOPer: A Learned Automatic Code Optimizer For Polyhedral Compilers
topic Programming Languages
Distributed, Parallel, and Cluster Computing
Machine Learning
url https://arxiv.org/abs/2403.11522