Litcius/Paper detail

BaCO: A Fast and Portable Bayesian Compiler Optimization Framework

Erik Orm Hellsten, Artur Souza, Johannes Lenfers, Rubens Lacouture, Olivia Hsu, Adel Ejjeh, Fredrik Kjølstad, Michel Steuwer, Kunle Olukotun, Luigi Nardi

202319 citationsDOIOpen Access PDF

Abstract

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.

Topics & Concepts

CompilerComputer scienceBayesian optimizationField-programmable gate arrayParallel computingPermutation (music)Flexibility (engineering)Optimizing compilerDomain (mathematical analysis)Bayesian probabilityCode generationProgramming languageEmbedded systemArtificial intelligenceOperating systemStatisticsKey (lock)MathematicsMathematical analysisPhysicsAcousticsMachine Learning and Data ClassificationParallel Computing and Optimization TechniquesMachine Learning and Algorithms
BaCO: A Fast and Portable Bayesian Compiler Optimization Framework | Litcius