skip to main content
10.1145/2854038.2854048acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
research-article

Opening polyhedral compiler's black box

Published:29 February 2016Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. W. Kelly and W. Pugh. A framework for unifying reordering transformations. Technical Report UMIACS-TR-92-126.1, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarCross RefCross Ref
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Wolfe. High performance compilers for parallel computing. Addison-Wesley Publishing Company, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarCross RefCross Ref
  24. 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 ScholarGoogle Scholar

Index Terms

  1. Opening polyhedral compiler's black box

    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
    • Published in

      cover image ACM Conferences
      CGO '16: Proceedings of the 2016 International Symposium on Code Generation and Optimization
      February 2016
      283 pages
      ISBN:9781450337786
      DOI:10.1145/2854038

      Copyright © 2016 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 29 February 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      CGO '16 Paper Acceptance Rate25of108submissions,23%Overall Acceptance Rate312of1,061submissions,29%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader