# Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimization (extended version)

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

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 9 of its 106 references that are in the map.
- First posted on arXiv 27 Apr 2021.

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

- [A Survey on Compiler Autotuning using Machine Learning](https://mlsanity.com/paper/1801.04405/) (2018)
- [CLTune: A Generic Auto-Tuner for OpenCL Kernels](https://mlsanity.com/paper/1703.06503/) (2017)
- [BOAH: A Tool Suite for Multi-Fidelity Bayesian Optimization & Analysis of Hyperparameters](https://mlsanity.com/paper/1908.06756/) (2019)
- [ProTuner: Tuning Programs with Monte Carlo Tree Search](https://mlsanity.com/paper/2005.13685/) (2020)
- [Autotuning Search Space for Loop Transformations](https://mlsanity.com/paper/2010.06521/) (2020)
- [Towards Autotuning of OpenMP Applications on Multicore Architectures](https://mlsanity.com/paper/1401.4063/) (2014)
- [User-Directed Loop-Transformations in Clang](https://mlsanity.com/paper/1811.00624/) (2018)
- [On the Representation of Partially Specified Implementations and its Application to the Optimization of Linear Algebra Kernels on GPU](https://mlsanity.com/paper/1904.03383/) (2019)
- [Toward an End-to-End Auto-tuning Framework in HPC PowerStack](https://mlsanity.com/paper/2008.06571/) (2020)

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

- [Bayesian Optimization for auto-tuning GPU kernels](https://mlsanity.com/paper/2111.14991/) (2021)

## Abstract (arXiv)

In this paper, we develop a ytopt autotuning framework that leverages Bayesian optimization to explore the parameter space search and compare four different supervised learning methods within Bayesian optimization and evaluate their effectiveness. We select six of the most complex PolyBench benchmarks and apply the newly developed LLVM Clang/Polly loop optimization pragmas to the benchmarks to optimize them. We then use the autotuning framework to optimize the pragma parameters to improve their performance. The experimental results show that our autotuning approach outperforms the other compiling methods to provide the smallest execution time for the benchmarks syr2k, 3mm, heat-3d, lu, and covariance with two large datasets in 200 code evaluations for effectively searching the parameter spaces with up to 170,368 different configurations. We find that the Floyd-Warshall benchmark did not benefit from autotuning because Polly uses heuristics to optimize the benchmark to make it run much slower. To cope with this issue, we provide some compiler option solutions to improve the performance. Then we present loop autotuning without a user's knowledge using a simple mctree autotuning framework to further improve the performance of the Floyd-Warshall benchmark. We also extend the ytopt autotuning framework to tune a deep learning application.
