skip to main content
research-article

Polyhedral auto-transformation with no integer linear programming

Published:11 June 2018Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

p529-acharya.webm

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. Cédric Bastoul. 2004. Clan: The Chunky Loop Analyzer. (2004). The Clan user guide.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. GNU. 2000. GLPK (GNU Linear Programming Kit). (2000). https://www.gnu.org/software/glpk/.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. Inc. Gurobi Optimization. 2016. Gurobi Optimizer Reference Manual. (2016). http://www.gurobi.comGoogle ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Lim and Monica S. Lam. 1998. Maximizing parallelism and minimizing synchronization with affine partitions. Parallel Comput. 24, 3-4 (1998), 445–475. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. Pluto 2008. PLUTO: A polyhedral automatic parallelizer and locality optimizer for multicores. (2008). http://plutocompiler.sourceforge.net.Google ScholarGoogle Scholar
  20. Pluto. 2008. Pluto: An automatic polyhedral parallelizer and locality optimzer. (2008). https://github.com/bondhugula/pluto commit:b5eedac65a8614b74168c27e578ecc780d84bd98, Dec 18, 2017.Google ScholarGoogle Scholar
  21. Polybench v4.2 2016. Polybench suite. (2016). http://polybench.sourceforge.net.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. SNU. 2011. SNU NPB Suite. (2011). http://aces.snu.ac.kr/software/snunpb/.Google ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle Scholar
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sven Verdoolaege and Tobias Grosser. 2012. Polyhedral Extraction Tool. In International workshop on Polyhedral Compilation Techniques (IMPACT).Google ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar

Index Terms

  1. Polyhedral auto-transformation with no integer linear programming

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 53, Issue 4
      PLDI '18
      April 2018
      834 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/3296979
      Issue’s Table of Contents
      • cover image ACM Conferences
        PLDI 2018: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2018
        825 pages
        ISBN:9781450356985
        DOI:10.1145/3192366

      Copyright © 2018 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 11 June 2018

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!