arrow
返回

A Multiple Compiler Framework for Improved Performance

delete2026-01-01
delete0
PRE
AI
A
Aniket Shivam *
A
Alexander V. Veidenbaum
DOI:10.1007/978-3-032-02436-7_12delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
生产型编译器在生成高效代码方面已达到很高的成熟度。任何两个生产型编译器生成的代码可能基于各自中间表示(IR)、实现的循环变换及其顺序、使用的成本模型甚至指令选择(如向量指令)和调度等因素而截然不同。因此,给定编译器为某程序段生成的代码性能未必能被其他编译器匹配。本文提出一个元编译框架MCompiler,允许使用不同的编译器/优化器编译程序的不同段并组合成单个可执行文件。它将各编译器间编译过程和性能优化的差异从劣势转变为优势。利用各段的最优代码可显著提升整体性能。本研究以循环嵌套为段,但也可采用其他选择。关键问题是,哪个编译器能为某段生成最佳代码。本研究随后提出一种机器学习方法实现此目标。它学习循环嵌套的固有特征,并在编译时预测应用程序中每个循环嵌套最适合的代码优化器。结果表明,本框架在自动向量化代码方面相比当前最先进的编译器(等效于-O3编译)提升了1.97倍的几何平均性能,在自动并行化代码方面提升了2.62倍,对含OpenMP指令的并行应用也提升了1.13倍的几何平均性能。机器学习预测的性能接近探索性搜索选择最优优化器的性能:自动向量化代码在4%以内,自动并行化代码在8%以内。
Keyword:
Compiler Optimizations
Loop Transformations
Compilation Framework
Machine Learning

期刊

L
LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2023
IF:
0
论文数:
14
被引数:
0

机构

N
nvidia corporation
学者数:
767
论文数: 439
被引数: 1
University of California System 封面图
University of California System
学者数:
37.7W
论文数: 33.8W
被引数: 6.6K
引用论文

引用论文

OpenTuner
err2014-08-24
err0
errOAAI
errJason Ansel; Shoaib Kamil; Kalyan Veeramachaneni; Jonathan Ragan-Kelley; Jeffrey Bosboom; Una-May O'Reilly; Saman Amarasinghe
err分享
err收藏
Vectorizing compilers: a test suite and results
err2024-09-07
err0
errOAAI
errD. Callahan; J. Dongarra; D. Levine
err分享
err收藏
Scheduling and Automatic Parallelization
err
IF0
err2000-01-01
err0
errOAAI
errAlain Darte; Yves Robert; Frédéric Vivien
err分享
err收藏
The NAS parallel benchmarks---summary and preliminary results
err1991-01-01
err0
PREAI
errD. H. Bailey; R. S. Schreiber; H. D. Simon; V. Venkatakrishnan; S. K. Weeratunga; E. Barszcz; J. T. Barton; D. S. Browning; R. L. Carter; L. Dagum; R. A. Fatoohi; P. O. Frederickson; T. A. Lasinski
err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
An Evaluation of Vectorizing Compilers
err2011-10-01
err0
PREAI
errSaeed Maleki; Yaoqing Gao; María J. Garzarán; Tommy Wong; David A. Padua
err分享
err收藏
学者 查看更多内容