Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations
Koo, Jaehoon, Balaprakash, Prasanna, Kruse, Michael, Wu, Xingfu, Hovland, Paul, Hall, Mary
–arXiv.org Artificial Intelligence
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.
arXiv.org Artificial Intelligence
May-10-2021
- Country:
- Europe > Germany (0.04)
- North America
- United States
- New York (0.04)
- Utah > Salt Lake County
- Salt Lake City (0.04)
- Texas > Dallas County
- Dallas (0.04)
- Oregon > Multnomah County
- Portland (0.04)
- Massachusetts > Middlesex County
- Cambridge (0.04)
- Illinois > Cook County
- Lemont (0.04)
- Canada > Alberta
- United States
- Asia > China
- Guangdong Province > Shenzhen (0.04)
- Genre:
- Research Report > New Finding (0.34)
- Industry:
- Technology: