一句话:提出通用贝叶斯自动调优框架 BaCO,支持多种参数类型与约束,在 CPU、GPU、FPGA 上快速产出高质量代码。
现代编译器自动调优需要同时处理排列型、有序型和连续型参数,以及已知与未知的参数约束,这对调优器的通用性和搜索效率提出了很高要求。本文提出 BaCO(Bayesian Compiler Optimization)框架,它是一个面向现代编译器的通用自动调优器,覆盖 CPU、GPU 与 FPGA 目标。BaCO 支持上述多种参数类型与约束,并采用专为自动调优领域定制的贝叶斯优化算法,以在有限搜索预算下高效获得高质量代码。作者在 TACO、RISE & ELEVATE 以及 HPVM2FPGA 三个现代编译器系统上分别针对 CPU、GPU 和 FPGA 进行实验,结果表明 BaCO 在极小搜索预算下平均比现有最先进自动调优器生成快 1.36×–1.56× 的代码,并且达到专家级性能的速度快 2.9×–3.9×。
We introduce the Bayesian Compiler Optimization framework (BaCO), a general purpose autotuner for modern compilers targeting CPUs, GPUs, and FPGAs. BaCO provides the flexibility needed to handle the requirements of modern autotuning tasks. Particularly, it deals with permutation, ordered, and continuous parameter types along with both known and unknown parameter constraints. To reason about these parameter types and efficiently deliver high-quality code, BaCO uses Bayesian optimization algorithms specialized towards the autotuning domain. We demonstrate BaCO's effectiveness on three modern compiler systems: TACO, RISE & ELEVATE, and HPVM2FPGA for CPUs, GPUs, and FPGAs respectively. For these domains, BaCO outperforms current state-of-the-art auto-tuners by delivering on average 1.36X--1.56X faster code with a tiny search budget, and BaCO is able to reach expert-level performance 2.9X--3.9X faster.
@inproceedings{paperbot10118,
title = {BaCO: A Fast and Portable Bayesian Compiler Optimization Framework},
author = {Erik Orm Hellsten and Artur Souza and Johannes Lenfers and Rubens Lacouture and Olivia Hsu and Adel Ejjeh and Fredrik Kjolstad and Michel Steuwer and Kunle Olukotun and Luigi Nardi},
booktitle = {ASPLOS},
year = {2023},
doi = {10.1145/3623278.3624770}
}