# CLTune: A Generic Auto-Tuner for OpenCL Kernels

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

## Key facts

- Cited by 27 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 19 Mar 2017.

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

- [Copula-based conformal prediction for Multi-Target Regression](https://mlsanity.com/paper/2101.12002/) (2021)
- [STARK: Strategic Team of Agents for Refining Kernels](https://mlsanity.com/paper/2510.16996/) (2025)
- [ytopt: Autotuning Scientific Applications for Energy Efficiency at Large Scales](https://mlsanity.com/paper/2303.16245/) (2023)
- [A Scalable Walsh-Hadamard Regularizer to Overcome the Low-degree Spectral Bias of Neural Networks](https://mlsanity.com/paper/2305.09779/) (2023)
- [SHAP values via sparse Fourier representation](https://mlsanity.com/paper/2410.06300/) (2024)
- [Guaranteed prediction sets for functional surrogate models](https://mlsanity.com/paper/2501.18426/) (2025)
- [Reliable Prediction Intervals with Directly Optimized Inductive Conformal Regression for Deep Learning](https://mlsanity.com/paper/2302.00872/) (2023)
- [A Convergence Theory Towards Practical Over-parameterized Deep Neural Networks](https://mlsanity.com/paper/2101.04243/) (2021)
- [MABSplit: Faster Forest Training Using Multi-Armed Bandits](https://mlsanity.com/paper/2212.07473/) (2022)
- [Optimizing PyTorch Inference with LLM-Based Multi-Agent Systems](https://mlsanity.com/paper/2511.16964/) (2025)
- [Feed-Forward Optimization With Delayed Feedback for Neural Network Training](https://mlsanity.com/paper/2304.13372/) (2023)
- [Leveraging LLMs to Automate Energy-Aware Refactoring of Parallel Scientific Codes](https://mlsanity.com/paper/2505.02184/) (2025)
- [Adaptive Distributed Kernel Ridge Regression: A Feasible Distributed Learning Scheme for Data Silos](https://mlsanity.com/paper/2309.04236/) (2023)
- [Using hardware performance counters to speed up autotuning convergence on GPUs](https://mlsanity.com/paper/2102.05297/) (2021)
- [Searching CUDA code autotuning spaces with hardware performance counters: data from benchmarks running on various GPU architectures](https://mlsanity.com/paper/2102.05299/) (2021)
- [Approximation to Object Conditional Validity with Inductive Conformal Predictors](https://mlsanity.com/paper/2102.07436/) (2021)
- [Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimization (extended version)](https://mlsanity.com/paper/2104.13242/) (2021)
- [Tuning the Tuner: Introducing Hyperparameter Optimization for Auto-Tuning](https://mlsanity.com/paper/2509.26300/) (2025)
- [Record-Remix-Replay: Hierarchical GPU Kernel Optimization using Evolutionary Search](https://mlsanity.com/paper/2604.11109/) (2026)
- [Bayesian Optimization for auto-tuning GPU kernels](https://mlsanity.com/paper/2111.14991/) (2021)
- [Differentially Private Multi-Party Data Release for Linear Regression](https://mlsanity.com/paper/2206.07998/) (2022)
- [Towards a learning-based performance modeling for accelerating Deep Neural Networks](https://mlsanity.com/paper/2212.05031/) (2022)
- [Machine Learning-Driven Adaptive OpenMP For Portable Performance on Heterogeneous Systems](https://mlsanity.com/paper/2303.08873/) (2023)
- [Optimal Kernel Tuning Parameter Prediction using Deep Sequence Models](https://mlsanity.com/paper/2404.10162/) (2024)
- [Automated Algorithm Design for Auto-Tuning Optimizers](https://mlsanity.com/paper/2510.17899/) (2025)
- [When Repeated Measurements Hurt Tabular Foundation Models](https://mlsanity.com/paper/2610.16801/) (2026)
- [GPU Goldmines: Tunable WebGPU Kernels for Edge LLM Inference](https://mlsanity.com/paper/2610.17321/) (2026)

## Abstract (arXiv)

This work presents CLTune, an auto-tuner for OpenCL kernels. It evaluates and tunes kernel performance of a generic, user-defined search space of possible parameter-value combinations. Example parameters include the OpenCL workgroup size, vector data-types, tile sizes, and loop unrolling factors. CLTune can be used in the following scenarios: 1) when there are too many tunable parameters to explore manually, 2) when performance portability across OpenCL devices is desired, or 3) when the optimal parameters change based on input argument values (e.g. matrix dimensions). The auto-tuner is generic, easy to use, open-source, and supports multiple search strategies including simulated annealing and particle swarm optimisation. CLTune is evaluated on two GPU case-studies inspired by the recent successes in deep learning: 2D convolution and matrix-multiplication (GEMM). For 2D convolution, we demonstrate the need for auto-tuning by optimizing for different filter sizes, achieving performance on-par or better than the state-of-the-art. For matrix-multiplication, we use CLTune to explore a parameter space of more than two-hundred thousand configurations, we show the need for device-specific tuning, and outperform the clBLAS library on NVIDIA, AMD and Intel GPUs.
