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 optimiza tion 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 autotuners 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.
翻译:我们引入了贝叶斯编译器优化框架(BaCO),这是一个针对CPU、GPU和FPGA的通用自动调谐器。BaCO提供了处理现代自动调谐任务所需的灵活性。特别地,它处理排列、有序和连续参数类型以及已知和未知参数约束。为了推理这些参数类型并高效地提供高质量的代码,BaCO使用针对自动调谐领域的贝叶斯优化算法。我们在三个现代编译器系统上展示了 BaCO的有效性:针对 CPU、 GPU 和 FPGA 的 TACO、RISE&ELEVATE 和 HPVM2FPGA。在这些领域中,BaCO通过快速的搜索获得了平均1.36x-1.56x的更快速的代码,并能够在2.9x-3.9x更快的时间内达到专家级别的性能。