GRAPHITE Two Years After First Lessons Learned From Real-World Polyhedral Compilation

Modern compilers are responsible for adapting the semantics of source programs into a form that makes ecient use of a highly complex, hetero- geneous machine. This adaptation amounts to solve an optimization problem in a huge and unstructured search space, while predicting the performance outcome of complex sequences of program transformations. The polyhedral model of com- pilation is aimed at these challenges. Its geometrical, non-inductive semantics enables the construction of better-structured optimization problems and pre- cise analytical models. Recent work demonstrated the scalability of the main polyhedral algorithms to real-world programs. Its integration into production compilers is under way, pioneered by the graphite branch of the GNU Compiler Collection (GCC). Two years after the eective beginning of the project, this paper reports on original questions and innovative solutions that arose during the design and implementation of graphite.

[1]  Uday Bondhugula,et al.  Compact multi-dimensional kernel extraction for register tiling , 2009, Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis.

[2]  William Pugh,et al.  Optimization within a unified transformation framework , 1996 .

[3]  Albert Cohen,et al.  Induction Variable Analysis with Delayed Abstractions , 2005, HiPEAC.

[4]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[5]  David Parello,et al.  Semi-Automatic Composition of Loop Transformations for Deep Parallelism and Memory Hierarchies , 2006, International Journal of Parallel Programming.

[6]  Cédric Bastoul,et al.  Productivity via Automatic Code Generation for PGAS Platforms with the R-Stream Compiler , 2009 .

[7]  Michael F. P. O'Boyle,et al.  MARS: A Distributed Memory Approach to Shared Memory Compilation , 1998, LCR.

[8]  Lars Ole Andersen,et al.  Program Analysis and Specialization for the C Programming Language , 2005 .

[9]  Albert Cohen,et al.  Polyhedral-Model Guided Loop-Nest Auto-Vectorization , 2009, 2009 18th International Conference on Parallel Architectures and Compilation Techniques.

[10]  Roberto Bagnara,et al.  The Parma Polyhedra Library: Toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems , 2006, Sci. Comput. Program..

[11]  Allen,et al.  Optimizing Compilers for Modern Architectures , 2004 .

[12]  R. Möhring Algorithmic graph theory and perfect graphs , 1986 .

[13]  Chris Hankin,et al.  Efficient field-sensitive pointer analysis of C , 2007, TOPL.

[14]  Albert Cohen,et al.  Violated dependence analysis , 2006, ICS '06.

[15]  Cédric Bastoul,et al.  Code generation in the polyhedral model is easier than you think , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[16]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[17]  Christian Lengauer,et al.  Loop Parallelization in the Polytope Model , 1993, CONCUR.

[18]  Paul Feautrier,et al.  Some efficient solutions to the affine scheduling problem. Part II. Multidimensional time , 1992, International Journal of Parallel Programming.

[19]  Chun Chen,et al.  A scalable auto-tuning framework for compiler optimization , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[20]  Rolf Niedermeier,et al.  Data reduction and exact algorithms for clique cover , 2009, JEAL.

[21]  Pierre Jouvelot,et al.  Semantical interprocedural parallelization: an overview of the PIPS project , 1991 .

[22]  Monica S. Lam,et al.  Maximizing Multiprocessor Performance with the SUIF Compiler , 1996, Digit. Tech. J..

[23]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[24]  Keshav Pingali,et al.  A singular loop transformation framework based on non-singular matrices , 1992, International Journal of Parallel Programming.

[25]  W. Pugh,et al.  A framework for unifying reordering transformations , 1993 .

[26]  Albert Cohen,et al.  Automatic Correction of Loop Transformations , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[27]  Ken Kennedy,et al.  Parascope:a Parallel Programming Environment , 1988 .

[28]  Albert Cohen,et al.  Iterative optimization in the polyhedral model: part ii, multidimensional time , 2008, PLDI '08.

[29]  D. Novillo OpenMP and automatic parallelization in GCC Diego , 2006 .

[30]  David Parello,et al.  Facilitating the search for compositions of program transformations , 2005, ICS '05.

[31]  Albert Cohen,et al.  GRAPHITE: Loop Optimizations Based on the Polyhedral Model for GCC , 2006 .

[32]  Mary W. Hall,et al.  CHiLL : A Framework for Composing High-Level Loop Transformations , 2007 .

[33]  W. Kelly,et al.  Code generation for multiple mappings , 1995, Proceedings Frontiers '95. The Fifth Symposium on the Frontiers of Massively Parallel Computation.

[34]  Keshav Pingali,et al.  The program structure tree: computing control regions in linear time , 1994, PLDI '94.