# BaCO: A Fast and Portable Bayesian Compiler Optimization Framework

arXiv: https://arxiv.org/abs/2212.11142 · HTML: https://mlsanity.com/paper/2212.11142/

## Key facts

- Cited by 11 papers in the map (data through 14 Oct 2026).
- Builds on 22 of its 64 references that are in the map.
- First posted on arXiv 1 Dec 2022.

## Builds on (most cited first, 22 of 22)

- [A Tutorial on Bayesian Optimization](https://mlsanity.com/paper/1807.02811/) (2018)
- [SMAC3: A Versatile Bayesian Optimization Package for Hyperparameter Optimization](https://mlsanity.com/paper/2109.09831/) (2021)
- [Sparse GPU Kernels for Deep Learning](https://mlsanity.com/paper/2006.10901/) (2020)
- [Fast Bayesian Optimization of Machine Learning Hyperparameters on Large Datasets](https://mlsanity.com/paper/1605.07079/) (2016)
- [Dealing with Integer-valued Variables in Bayesian Optimization with Gaussian Processes](https://mlsanity.com/paper/1706.03673/) (2017)
- [Practical Design Space Exploration](https://mlsanity.com/paper/1810.05236/) (2018)
- [IronMan: GNN-assisted Design Space Exploration in High-Level Synthesis via Reinforcement Learning](https://mlsanity.com/paper/2102.08138/) (2021)
- [BOAH: A Tool Suite for Multi-Fidelity Bayesian Optimization & Analysis of Hyperparameters](https://mlsanity.com/paper/1908.06756/) (2019)
- [AutoPhase: Juggling HLS Phase Orderings in Random Forests with Deep Reinforcement Learning](https://mlsanity.com/paper/2003.00671/) (2020)
- [GPflowOpt: A Bayesian Optimization Library using TensorFlow](https://mlsanity.com/paper/1711.03845/) (2017)
- [Format Abstraction for Sparse Tensor Algebra Compilers](https://mlsanity.com/paper/1804.10112/) (2018)
- [Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimization](https://mlsanity.com/paper/2010.08040/) (2020)
- [Antithetic and Monte Carlo kernel estimators for partial rankings](https://mlsanity.com/paper/1807.00400/) (2018)
- [ProTuner: Tuning Programs with Monte Carlo Tree Search](https://mlsanity.com/paper/2005.13685/) (2020)
- [Multitask and Transfer Learning for Autotuning Exascale Applications](https://mlsanity.com/paper/1908.05792/) (2019)
- [A Benchmark Set of Highly-efficient CUDA and OpenCL Kernels and its Dynamic Autotuning with Kernel Tuning Toolkit](https://mlsanity.com/paper/1910.08498/) (2019)
- [Autotuning Search Space for Loop Transformations](https://mlsanity.com/paper/2010.06521/) (2020)
- [A comparison of mixed-variables Bayesian optimization approaches](https://mlsanity.com/paper/2111.01533/) (2021)
- [Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations](https://mlsanity.com/paper/2105.04555/) (2021)
- [HPC Storage Service Autotuning Using Variational-Autoencoder-Guided Asynchronous Bayesian Optimization](https://mlsanity.com/paper/2210.00798/) (2022)
- [RISE & Shine: Language-Oriented Compiler Design](https://mlsanity.com/paper/2201.03611/) (2022)
- [A Graph Deep Learning Framework for High-Level Synthesis Design Space Exploration](https://mlsanity.com/paper/2111.14767/) (2021)

## Built on by (most cited first, 11 of 11)

- [Bounce: Reliable High-Dimensional Bayesian Optimization for Combinatorial and Mixed Spaces](https://mlsanity.com/paper/2307.00618/) (2023)
- [STARK: Strategic Team of Agents for Refining Kernels](https://mlsanity.com/paper/2510.16996/) (2025)
- [Bayesian Optimization over High-Dimensional Combinatorial Spaces via Dictionary-based Embeddings](https://mlsanity.com/paper/2303.01774/) (2023)
- [SCOOT: SLO-Oriented Performance Tuning for LLM Inference Engines](https://mlsanity.com/paper/2408.04323/) (2024)
- [REASONING COMPILER: LLM-Guided Optimizations for Efficient Model Serving](https://mlsanity.com/paper/2506.01374/) (2025)
- [Kareus: Joint Reduction of Dynamic and Static Energy in Large Model Training](https://mlsanity.com/paper/2601.17654/) (2026)
- [CATBench: A Compiler Autotuning Benchmarking Suite for Black-box Optimization](https://mlsanity.com/paper/2406.17811/) (2024)
- [CoTune: Co-evolutionary Configuration Tuning](https://mlsanity.com/paper/2509.24694/) (2025)
- [Tuning the Tuner: Introducing Hyperparameter Optimization for Auto-Tuning](https://mlsanity.com/paper/2509.26300/) (2025)
- [Automated Algorithm Design for Auto-Tuning Optimizers](https://mlsanity.com/paper/2510.17899/) (2025)
- [Accelerating Transfer-Learning-Based Autotuning with Predictive LLVM IR Performance Ranking](https://mlsanity.com/paper/2609.15807/) (2026)

## Abstract (arXiv)

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.
