1. Variable Liberalization
- Author
-
Sanyam Mehta and Pen-Chung Yew
- Subjects
010302 applied physics ,Loop optimization ,Loop inversion ,Computer science ,Loop fusion ,020207 software engineering ,02 engineering and technology ,Parallel computing ,01 natural sciences ,Loop fission ,Loop splitting ,Hardware and Architecture ,Manifest expression ,0103 physical sciences ,Loop nest optimization ,0202 electrical engineering, electronic engineering, information engineering ,Loop interchange ,Software ,Information Systems - Abstract
In the wake of the current trend of increasing the number of cores on a chip, compiler optimizations for improving the memory performance have assumed increased importance. Loop fusion is one such key optimization that can alleviate memory and bandwidth wall and thus improve parallel performance. However, we find that loop fusion in interesting memory-intensive applications is prevented by the existence of dependences between temporary variables that appear in different loop nests. Furthermore, known techniques of allowing useful transformations in the presence of temporary variables, such as privatization and expansion, prove insufficient in such cases. In this work, we introduce variable liberalization , a technique that selectively removes dependences on temporary variables in different loop nests to achieve loop fusion while preserving the semantical correctness of the optimized program. This removal of extra-stringent dependences effectively amounts to variable expansion, thus achieving the benefit of an increased degree of freedom for program transformation but without an actual expansion. Hence, there is no corresponding increase in the memory footprint incurred. We implement liberalization in the Pluto polyhedral compiler and evaluate its performance on nine hot regions in five real applications. Results demonstrate parallel performance improvement of 1.92 × over the Intel compiler, averaged over the nine hot regions, and an overall improvement of as much as 2.17 × for an entire application, on an eight-core Intel Xeon processor.
- Published
- 2016
- Full Text
- View/download PDF