LGDCPFOCNov 26, 2021

Bayesian Optimization for auto-tuning GPU kernels

arXiv:2111.14991v11 citationsHas Code
Originality Incremental advance
AI Analysis

This work addresses the challenge of efficiently optimizing GPU kernel parameters for performance, which is incremental as it adapts Bayesian Optimization to a specific domain with new techniques.

The paper tackled the problem of auto-tuning GPU kernels by applying Bayesian Optimization to non-convex, discrete search spaces with invalid configurations, introducing novel methods like a contextual variance exploration factor and scalable acquisition functions, and demonstrated that their approach consistently outperforms existing search strategies by a wide margin in various test cases.

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.

Code Implementations2 repos
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes