Abstract
State-of-the-art algorithms used in automatic polyhedral transformation for parallelization and locality optimization typically rely on Integer Linear Programming (ILP). This poses a scalability issue when scaling to tens or hundreds of statements, and may be disconcerting in production compiler settings. In this work, we consider relaxing integrality in the ILP formulation of the Pluto algorithm, a popular algorithm used to find good affine transformations. We show that the rational solutions obtained from the relaxed LP formulation can easily be scaled to valid integral ones to obtain desired solutions, although with some caveats. We first present formal results connecting the solution of the relaxed LP to the original Pluto ILP. We then show that there are difficulties in realizing the above theoretical results in practice, and propose an alternate approach to overcome those while still leveraging linear programming. Our new approach obtains dramatic compile-time speedups for a range of large benchmarks. While achieving these compile-time improvements, we show that the performance of the transformed code is not sacrificed. Our approach to automatic transformation provides a mean compilation time improvement of 5.6× over state-of-the-art on relevant challenging benchmarks from the NAS PB, SPEC CPU 2006, and PolyBench suites. We also came across situations where prior frameworks failed to find a transformation in a reasonable amount of time, while our new approach did so instantaneously.
Supplemental Material
- Aravind Acharya, Uday Bondhugula, and Albert Cohen. 2018. An Approach for Finding Permutations Quickly: Fusion and Dimension matching. CoRR abs/1803.10726 (2018). arXiv: 1312.1070 http://arxiv.org/abs/1803.10726Google Scholar
- Mohamed Riyadh Baghdadi. 2015. Improving tiling, reducing compilation time, and extending the scope of polyhedral compilation. Ph.D. Dissertation. Université Pierre et Marie Curie - Paris VI. https://tel.archives-ouvertes.fr/tel-01270558Google Scholar
- Cédric Bastoul. 2004. Clan: The Chunky Loop Analyzer. (2004). The Clan user guide.Google Scholar
- Uday Bondhugula, Aravind Acharya, and Albert Cohen. 2016. The Pluto+ Algorithm: A Practical Approach for Parallelization and Locality Optimization of Affine Loop Nests. ACM Trans. Program. Lang. Syst. 38, 3, Article 12 (April 2016), 32 pages. Google Scholar
Digital Library
- Uday Bondhugula, M. Baskaran, Sriram Krishnamoorthy, J. Ramanujam, A. Rountev, and P. Sadayappan. 2008. Automatic Transformations for Communication-Minimized Parallelization and Locality Optimization in the Polyhedral Model. In International conference on Compiler Construction (ETAPS CC). Google Scholar
Digital Library
- Uday Bondhugula, Albert Hartono, J. Ramanujam, and P. Sadayappan. 2008. A practical automatic polyhedral parallelizer and locality optimizer. In ACM SIGPLAN symposium on Programming Languages Design and Implementation (PLDI). 101–113. Google Scholar
Digital Library
- P. Feautrier. 1992. Some efficient solutions to the affine scheduling problem: Part I, One-dimensional time. International Journal of Parallel Programming 21, 5 (1992), 313–348. Google Scholar
Digital Library
- P. Feautrier. 1992. Some efficient solutions to the affine scheduling problem: part II, multidimensional time. International Journal of Parallel Programming 21, 6 (1992), 389–420. Google Scholar
Digital Library
- GNU. 2000. GLPK (GNU Linear Programming Kit). (2000). https://www.gnu.org/software/glpk/.Google Scholar
- Tobias Grosser, Armin Groesslinger, and Christian Lengauer. 2012. Polly: Performing Polyhedral optimizations on a low-level intermediate representation. Parallel Processing Letters 22, 04 (2012).Google Scholar
Cross Ref
- Inc. Gurobi Optimization. 2016. Gurobi Optimizer Reference Manual. (2016). http://www.gurobi.comGoogle Scholar
- Martin Kong, Richard Veras, Kevin Stock, Franz Franchetti, LouisNoël Pouchet, and P. Sadayappan. 2013. When Polyhedral Transformations Meet SIMD Code Generation. In ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI). Google Scholar
Digital Library
- A. Lim, Gerald I. Cheong, and Monica S. Lam. 1999. An Affine Partitioning Algorithm to Maximize Parallelism and Minimize Communication. In ACM International Conference on Supercomputing (ICS). 228–237. Google Scholar
Digital Library
- A. Lim and Monica S. Lam. 1998. Maximizing parallelism and minimizing synchronization with affine partitions. Parallel Comput. 24, 3-4 (1998), 445–475. Google Scholar
Digital Library
- Sanyam Mehta and Pen-Chung Yew. 2015. Improving Compiler Scalability: Optimizing Large Programs at Small Price. In ACM SIGPLAN Conference on Programming Language Design and Implementation. 143–152. Google Scholar
Digital Library
- Sanyam Mehta and Pen-Chung Yew. 2016. Variable Liberalization. ACM Transactions on Archititecture and Code Optimizations 13, 3, Article 23 (Aug. 2016), 25 pages. Google Scholar
Digital Library
- Benoît Meister, Nicolas Vasilache, David Wohlford, Muthu Baskaran, Allen Leung, and Richard Lethin. 2011. R-Stream Compiler. In Encyclopedia of Parallel Computing. 1756–1765.Google Scholar
- Ravi Teja Mullapudi, Vinay Vasista, and Uday. Bondhugula. 2015. PolyMage: Automatic Optimization for Image Processing Pipelines. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Google Scholar
Digital Library
- Pluto 2008. PLUTO: A polyhedral automatic parallelizer and locality optimizer for multicores. (2008). http://plutocompiler.sourceforge.net.Google Scholar
- Pluto. 2008. Pluto: An automatic polyhedral parallelizer and locality optimzer. (2008). https://github.com/bondhugula/pluto commit:b5eedac65a8614b74168c27e578ecc780d84bd98, Dec 18, 2017.Google Scholar
- Polybench v4.2 2016. Polybench suite. (2016). http://polybench.sourceforge.net.Google Scholar
- B. Pradelle, B. Meister, M. Baskaran, A. Konstantinidis, T. Henretty, and R. Lethin. 2016. Scalable Hierarchical Polyhedral Compilation. In 2016 45th International Conference on Parallel Processing (ICPP). 432– 441.Google Scholar
- Jun Shirako, Louis-Noël Pouchet, and Vivek Sarkar. 2014. Oil and Water Can Mix: An Integration of Polyhedral and AST-based Transformations. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (Supercomputing). 287–298. Google Scholar
Digital Library
- SNU. 2011. SNU NPB Suite. (2011). http://aces.snu.ac.kr/software/snunpb/.Google Scholar
- Ramakrishna Upadrasta and Albert Cohen. 2013. Sub-Polyhedral Scheduling Using (Unit-)Two-Variable-Per-Inequality Polyhedra. In ACM SIGPLAN-SIGACT Symposium on Programming Languages (POPL). Rome, Italy. Google Scholar
Digital Library
- Nicolas Vasilache, Benoit Meister, Muthu Baskaran, and Richard Lethin. 2012. Joint Scheduling and Layout Optimization to Enable Multi-Level Vectorization. In International workshop on Polyhedral Compilation Techniques (IMPACT).Google Scholar
- Sven Verdoolaege. 2010. ISL: An Integer Set Library for the Polyhedral Model. In Mathematical Software - ICMS 2010, Komei Fukuda, Joris Hoeven, Michael Joswig, and Nobuki Takayama (Eds.). Vol. 6327. Springer, 299–302. Google Scholar
Digital Library
- Sven Verdoolaege and Tobias Grosser. 2012. Polyhedral Extraction Tool. In International workshop on Polyhedral Compilation Techniques (IMPACT).Google Scholar
- Oleksandr Zinenko, Sven Verdoolaege, Chandan Reddy, Jun Shirako, Tobias Grosser, Vivek Sarkar, and Albert Cohen. 2017. Unified Polyhedral Modeling of Temporal and Spatial Locality. Research Report RR-9110. Inria Paris. 41 pages. https://hal.inria.fr/hal-01628798Google Scholar
Index Terms
Polyhedral auto-transformation with no integer linear programming
Recommendations
Polyhedral auto-transformation with no integer linear programming
PLDI 2018: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and ImplementationState-of-the-art algorithms used in automatic polyhedral transformation for parallelization and locality optimization typically rely on Integer Linear Programming (ILP). This poses a scalability issue when scaling to tens or hundreds of statements, and ...
Tightening the Linear Relaxation of a Mixed Integer Nonlinear Program Using Constraint Programming
CPAIOR '09: Proceedings of the 6th International Conference on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization ProblemsThis paper aims at solving a nonconvex mixed integer nonlinear programming (MINLP) model used to solve a refinery crude-oil operations scheduling problem. The model is mostly linear but contains bilinear products of continuous variables in the objective ...
Mixed-integer quadratic programming
This paper considers mixed-integer quadratic programs in which the objective function is quadratic in the integer and in the continuous variables, and the constraints are linear in the variables of both types. The generalized Benders' decomposition is a ...







Comments