Salvato in:
Dettagli Bibliografici
Autori principali: Ashouri, Amir H., Manzoor, Muhammad Asif, Vu, Duc Minh, Zhang, Raymond, Toft, Colin, Wang, Ziwen, Zhang, Angel, Chan, Bryan, Czajkowski, Tomasz S., Gao, Yaoqing
Natura: Preprint
Pubblicazione: 2023
Soggetti:
Accesso online:https://arxiv.org/abs/2312.09982
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866915101379919872
author Ashouri, Amir H.
Manzoor, Muhammad Asif
Vu, Duc Minh
Zhang, Raymond
Toft, Colin
Wang, Ziwen
Zhang, Angel
Chan, Bryan
Czajkowski, Tomasz S.
Gao, Yaoqing
author_facet Ashouri, Amir H.
Manzoor, Muhammad Asif
Vu, Duc Minh
Zhang, Raymond
Toft, Colin
Wang, Ziwen
Zhang, Angel
Chan, Bryan
Czajkowski, Tomasz S.
Gao, Yaoqing
contents The key to performance optimization of a program is to decide correctly when a certain transformation should be applied by a compiler. This is an ideal opportunity to apply machine-learning models to speed up the tuning process; while this realization has been around since the late 90s, only recent advancements in ML enabled a practical application of ML to compilers as an end-to-end framework. This paper presents ACPO: An AI-Enabled Compiler Framework, a novel framework that provides LLVM with simple and comprehensive tools to benefit from employing ML models for different optimization passes. We first showcase the high-level view, class hierarchy, and functionalities of ACPO and subsequently, demonstrate \taco{a couple of use cases of ACPO by ML-enabling the Loop Unroll and Function Inlining passes used in LLVM's O3. and finally, describe how ACPO can be leveraged to optimize other passes. Experimental results reveal that the ACPO model for Loop Unroll can gain on average 4%, 3%, 5.4%, and 0.2% compared to LLVM's vanilla O3 optimization when deployed on Polybench, Coral-2, CoreMark, and Graph-500, respectively. Furthermore, by including both Function Inlining and Loop Unroll models, ACPO can provide a combined speedup of 4.5% on Polybench and 2.4% on Cbench when compared with LLVM's O3, respectively.
format Preprint
id arxiv_https___arxiv_org_abs_2312_09982
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle ACPO: AI-Enabled Compiler Framework
Ashouri, Amir H.
Manzoor, Muhammad Asif
Vu, Duc Minh
Zhang, Raymond
Toft, Colin
Wang, Ziwen
Zhang, Angel
Chan, Bryan
Czajkowski, Tomasz S.
Gao, Yaoqing
Programming Languages
Artificial Intelligence
Machine Learning
Performance
I.2.5; D.3.0; I.2.6
The key to performance optimization of a program is to decide correctly when a certain transformation should be applied by a compiler. This is an ideal opportunity to apply machine-learning models to speed up the tuning process; while this realization has been around since the late 90s, only recent advancements in ML enabled a practical application of ML to compilers as an end-to-end framework. This paper presents ACPO: An AI-Enabled Compiler Framework, a novel framework that provides LLVM with simple and comprehensive tools to benefit from employing ML models for different optimization passes. We first showcase the high-level view, class hierarchy, and functionalities of ACPO and subsequently, demonstrate \taco{a couple of use cases of ACPO by ML-enabling the Loop Unroll and Function Inlining passes used in LLVM's O3. and finally, describe how ACPO can be leveraged to optimize other passes. Experimental results reveal that the ACPO model for Loop Unroll can gain on average 4%, 3%, 5.4%, and 0.2% compared to LLVM's vanilla O3 optimization when deployed on Polybench, Coral-2, CoreMark, and Graph-500, respectively. Furthermore, by including both Function Inlining and Loop Unroll models, ACPO can provide a combined speedup of 4.5% on Polybench and 2.4% on Cbench when compared with LLVM's O3, respectively.
title ACPO: AI-Enabled Compiler Framework
topic Programming Languages
Artificial Intelligence
Machine Learning
Performance
I.2.5; D.3.0; I.2.6
url https://arxiv.org/abs/2312.09982