# Bayesian Optimization for auto-tuning GPU kernels

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

## Key facts

- No citing papers in the map yet (data through 14 Oct 2026).
- Builds on 3 of its 56 references that are in the map.
- First posted on arXiv 26 Nov 2021.

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

- [CLTune: A Generic Auto-Tuner for OpenCL Kernels](https://mlsanity.com/paper/1703.06503/) (2017)
- [A model-driven approach for a new generation of adaptive libraries](https://mlsanity.com/paper/1806.07060/) (2018)
- [Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimization (extended version)](https://mlsanity.com/paper/2104.13242/) (2021)

## Abstract (arXiv)

Finding optimal parameter configurations for tunable GPU kernels is a non-trivial exercise for large search spaces, even when automated. This poses an optimization task on a non-convex search space, using an expensive to evaluate function with unknown derivative. These characteristics make a good candidate for Bayesian Optimization, which has not been applied to this problem before. However, the application of Bayesian Optimization to this problem is challenging. We demonstrate how to deal with the rough, discrete, constrained search spaces, containing invalid configurations. We introduce a novel contextual variance exploration factor, as well as new acquisition functions with improved scalability, combined with an informed acquisition function selection mechanism. By comparing the performance of our Bayesian Optimization implementation on various test cases to the existing search strategies in Kernel Tuner, as well as other Bayesian Optimization implementations, we demonstrate that our search strategies generalize well and consistently outperform other search strategies by a wide margin.
