# A model-driven approach for a new generation of adaptive libraries

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

## Key facts

- Cited by 3 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 19 Jun 2018.

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

- [A new method for binary classification of proteins with Machine Learning](https://mlsanity.com/paper/2111.01976/) (2021)
- [Bayesian Optimization for auto-tuning GPU kernels](https://mlsanity.com/paper/2111.14991/) (2021)
- [Towards a learning-based performance modeling for accelerating Deep Neural Networks](https://mlsanity.com/paper/2212.05031/) (2022)

## Abstract (arXiv)

Efficient high-performance libraries often expose multiple tunable parameters to provide highly optimized routines. These can range from simple loop unroll factors or vector sizes all the way to algorithmic changes, given that some implementations can be more suitable for certain devices by exploiting hardware characteristics such as local memories and vector units. Traditionally, such parameters and algorithmic choices are tuned and then hard-coded for a specific architecture and for certain characteristics of the inputs. However, emerging applications are often data-driven, thus traditional approaches are not effective across the wide range of inputs and architectures used in practice. In this paper, we present a new adaptive framework for data-driven applications which uses a predictive model to select the optimal algorithmic parameters by training with synthetic and real datasets. We demonstrate the effectiveness of a BLAS library and specifically on its matrix multiplication routine. We present experimental results for two GPU architectures and show significant performance gains of up to 3x (on a high-end NVIDIA Pascal GPU) and 2.5x (on an embedded ARM Mali GPU) when compared to a traditionally optimized library.
