Autotuning Search Space for Loop Transformations
This work addresses compiler optimization for programmers by enabling autotuning of loop transformations, but it is incremental as it builds on existing autotuning methods with a new search space representation.
The paper tackles the challenge of predicting optimal loop transformations for compiler optimization by proposing a tree-structured search space, and demonstrates its capability to represent all possible sequences of transformations on PolyBench kernels, though results indicate a need for improved search strategies like Monte Carlo tree search.
One of the challenges for optimizing compilers is to predict whether applying an optimization will improve its execution speed. Programmers may override the compiler's profitability heuristic using optimization directives such as pragmas in the source code. Machine learning in the form of autotuning can assist users in finding the best optimizations for each platform. In this paper we propose a loop transformation search space that takes the form of a tree, in contrast to previous approaches that usually use vector spaces to represent loop optimization configurations. We implemented a simple autotuner exploring the search space and applied it to a selected set of PolyBench kernels. While the autotuner is capable of representing every possible sequence of loop transformations and their relations, the results motivate the use of better search strategies such as Monte Carlo tree search to find sophisticated loop transformations such as multilevel tiling.