Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations
Not on the map. Why?
Abstract (arXiv)
Polly is the LLVM project's polyhedral loop nest optimizer. Recently, user-directed loop transformation pragmas were proposed based on LLVM/Clang and Polly. The search space exposed by the transformation pragmas is a tree, wherein each node represents a specific combination of loop transformations that can be applied to the code resulting from the parent node's loop transformations. We have developed a search algorithm based on Monte Carlo tree search (MCTS) to find the best combination of loop transformations. Our algorithm consists of two phases: exploring loop transformations at different depths of the tree to identify promising regions in the tree search space and exploiting those regions by performing a local search. Moreover, a restart mechanism is used to avoid the MCTS getting trapped in a local solution. The best and worst solutions are transferred from the previous phases of the restarts to leverage the search history. We compare our approach with random, greedy, and breadth-first search methods on PolyBench kernels and ECP proxy applications. Experimental results show that our MCTS algorithm finds pragma combinations with a speedup of 2.3x over Polly's heuristic optimizations on average.
Key facts. Cited by 4 papers in the map (data through 7 Oct 2026). Builds on 10 of its 45 references that are in the map. First posted on arXiv 10 May 2021.
Builds on
10 of 45 references.
References · 10
- 2018code2vec: Learning Distributed Representations of Codecited by 249
- 2018Learning to Optimize Tensor Programscited by 138
- 2019NeuroVectorizer: End-to-End Vectorization with Deep Reinforcement Learningcited by 37
- 2020Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimizationcited by 13
- 2019Reinforcement Learning and Adaptive Sampling for Optimized DNN Compilationcited by 9
- 2020ProTuner: Tuning Programs with Monte Carlo Tree Searchcited by 9
- 2020Autotuning Search Space for Loop Transformationscited by 6
- 2018User-Directed Loop-Transformations in Clangcited by 3
- 2019On the Representation of Partially Specified Implementations and its Application to the Optimization of Linear Algebra Kernels on GPUcited by 3
- 2019Design and Use of Loop-Transformation Pragmascited by 1
Built on by
Citing papers per year: 2022: 2; 2023: 2.
4 papers.
- 2023ytopt: Autotuning Scientific Applications for Energy Efficiency at Large Scalescited by 13
- 2022BaCO: A Fast and Portable Bayesian Compiler Optimization Frameworkcited by 11
- 2023Performance Optimization using Multimodal Modeling and Heterogeneous GNNcited by 7
- 2022Machine Learning for CUDA+MPI Design Rulescited by 0
- 2023Performance Optimization using Multimodal Modeling and Heterogeneous GNN25 Apr 2023
- 2023ytopt: Autotuning Scientific Applications for Energy Efficiency at Large Scales28 Mar 2023
- 2022BaCO: A Fast and Portable Bayesian Compiler Optimization Framework1 Dec 2022
- 2022Machine Learning for CUDA+MPI Design Rules4 Mar 2022