ABSTRACT
While compilers offer a fair trade-off between productivity and executable performance in single-threaded execution, their optimizations remain fragile when addressing compute-intensive code for parallel architectures with deep memory hierarchies. Moreover, these optimizations operate as black boxes, impenetrable for the user, leaving them with no alternative to time-consuming and error-prone manual optimization in cases where an imprecise cost model or a weak analysis resulted in a bad optimization decision. To address this issue, we propose a technique allowing to automatically translate an arbitrary polyhedral optimization, used internally by loop-level optimization frameworks of several modern compilers, into a sequence of comprehensible syntactic transformations as long as this optimization focuses on scheduling loop iterations. This approach opens the black box of the polyhedral frameworks enabling users to examine, refine, replay and even design complex optimizations semi-automatically in partnership with the compiler.
- C. Bastoul. Code generation in the polyhedral model is easier than you think. In IEEE PACT Intl. Conf. on Parallel Architecture and Compilation Techniques, France, 2004. Google ScholarDigital Library
- M.-W. Benabderrahmane, L.-N. Pouchet, A. Cohen, and C. Bastoul. The polyhedral model is more widely applicable than you think. In CC Intl. Conf. on Compiler Construction, 2010. Google ScholarDigital Library
- U. Bondhugula, A. Hartono, J. Ramanujam, and P. Sadayappan. A practical automatic polyhedral parallelizer and locality optimizer. In PLDI’08 ACM Conf. on Programming language design and implementation, Tucson, USA, June 2008. Google ScholarDigital Library
- U. Bondhugula, O. Gunluk, S. Dash, and L. Renganarayanan. A model for fusion and code motion in an automatic parallelizing compiler. In Proc. of the 19th Intl. Conf. on Parallel Architectures and Compilation Techniques, PACT’10, 2010. Google ScholarDigital Library
- C. Chen, J. Chame, and M. Hall. CHiLL: a framework for composing high-level loop transformations. Technical Report 08-897, USC Computer Science, June 2008.Google Scholar
- S. Donadio, J. Brodman, T. Roeder, K. Yotov, D. Barthou, A. Cohen, M. Garzaran, D. Padua, and K. Pingali. A language for the compact representation of multiple program versions. In Intl. Workshop on Languages and Compilers for Parallel Computing (LCPC), volume 4339 of Lect. Notes in Computer Science, pages 136–151, Hawthorne, New York, Oct. 2005. Google ScholarDigital Library
- P. Feautrier. Some efficient solutions to the affine scheduling problem: one dimensional time. Intl. Journal of Parallel Programming, 21(5):313–348, october 1992. Google ScholarDigital Library
- P. Feautrier. Some efficient solutions to the affine scheduling problem, part II: multidimensional time. Intl. Journal of Parallel Programming, 21(6):389–420, Dec. 1992. Google ScholarDigital Library
- S. Girbal, N. Vasilache, C. Bastoul, A. Cohen, D. Parello, M. Sigler, and O. Temam. Semi-automatic composition of loop transformations for deep parallelism and memory hierarchies. Int. J. of Parallel Programming, 34(3):261–317, 2006. Google ScholarDigital Library
- D. Göhringer and J. Tepelmann. An interactive tool based on polly for detection and parallelization of loops. In Proc. of Intl. Workshop PARMA-DITAM, Austria, 2014. Google ScholarDigital Library
- T. Grosser, H. Zheng, R. Aloor, A. Simbürger, A. Grösslinger, and L.-N. Pouchet. Polly-polyhedral optimization in llvm. In IMPACT 2011 First Intl. Workshop on Polyhedral Compilation Techniques, Chamonix, France, 2011.Google Scholar
- N. B. Jensen, S. Karlsson, and C. W. Probst. Compiler feedback using continuous dynamic compilation during development. In Intl. W. on Dynamic Compilation Everywhere, 2014.Google Scholar
- W. Kelly and W. Pugh. A framework for unifying reordering transformations. Technical Report UMIACS-TR-92-126.1, 1993. Google ScholarDigital Library
- M. Kim, H. Kim, and C.-K. Luk. Prospector: A dynamic data-dependence profiler to help parallel programming. In HotPar’10: Proceedings of the USENIX workshop on Hot Topics in parallelism, 2010.Google Scholar
- P. Larsen, R. Ladelsky, J. Lidman, S. McKee, S. Karlsson, and A. Zaks. Parallelizing more loops with compiler guided refactoring. In Parallel Processing (ICPP), Intl. Conf., 2012. Google ScholarDigital Library
- R. Müller-Pfefferkorn, W. Nagel, and B. Trenkler. Optimizing cache access: A tool for source-to-source transformations and real-life compiler tests. In 10th Intl. Euro-Par Conf., 2004.Google ScholarCross Ref
- S. Pop, A. Cohen, C. Bastoul, S. Girbal, P. Jouvelot, G.-A. Silber, and N. Vasilache. GRAPHITE: Loop optimizations based on the polyhedral model for GCC. In Proc. of the 4th GCC Developper’s Summit, pages 179–198, Canada, 2006.Google Scholar
- L.-N. Pouchet, C. Bastoul, A. Cohen, and J. Cavazos. Iterative optimization in the polyhedral model: Part II, multidimensional time. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI’08), Arizona, 2008. Google ScholarDigital Library
- G. Rudy, M. Murtaza Khan, M. Hall, C. Chen, and J. Chame. A programming language interface to describe transformations and code generation. In Languages and Compilers for Parallel Computing, volume 6548 of Lecture Notes in Computer Science, pages 136–150, Houston, TX, 2010. Google ScholarDigital Library
- H. Vandierendonck, S. Rul, and K. De Bosschere. The paralax infrastructure: automatic parallelization with a helping hand. In PACT’19 IEEE Intl. Conference on Parallel Architectures and Compilation Techniques, pages 389–400, 2010. Google ScholarDigital Library
- S. Verdoolaege. isl: An integer set library for the polyhedral model. In Mathematical Software - ICMS 2010, Third Intl. Congress on Mathematical Software, pages 299–302, Japan. Google ScholarDigital Library
- M. Wolfe. High performance compilers for parallel computing. Addison-Wesley Publishing Company, 1995. Google ScholarDigital Library
- Q. Yi, K. Seymour, H. You, R. Vuduc, and D. Quinlan. Poet: Parameterized optimizations for empirical tuning. In Intl. Parallel and Distributed Processing Symposium IPDPS 2007.Google ScholarCross Ref
- O. Zinenko, S. Huot, and C. Bastoul. Clint: A direct manipulation tool for parallelizing compute-intensive program parts. In Visual Languages and Human-Centric Computing (VL/HCC), 2014 IEEE Symposium on, pages 109–112. IEEE, 2014.Google Scholar
Index Terms
- Opening polyhedral compiler's black box
Recommendations
Polyhedral parallel code generation for CUDA
Special Issue on High-Performance Embedded Architectures and CompilersThis article addresses the compilation of a sequential program for parallel execution on a modern GPU. To this end, we present a novel source-to-source compiler called PPCG. PPCG singles out for its ability to accelerate computations from any static ...
A practical automatic polyhedral parallelizer and locality optimizer
PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe present the design and implementation of an automatic polyhedral source-to-source transformation framework that can optimize regular programs (sequences of possibly imperfectly nested loops) for parallelism and locality simultaneously. Through this ...
A practical automatic polyhedral parallelizer and locality optimizer
PLDI '08We present the design and implementation of an automatic polyhedral source-to-source transformation framework that can optimize regular programs (sequences of possibly imperfectly nested loops) for parallelism and locality simultaneously. Through this ...
Comments