skip to main content
article

SMO: an integrated approach to intra-array and inter-array storage optimization

Published:11 January 2016Publication History
Skip Abstract Section

Abstract

The polyhedral model provides an expressive intermediate representation that is convenient for the analysis and subsequent transformation of affine loop nests. Several heuristics exist for achieving complex program transformations in this model. However, there is also considerable scope to utilize this model to tackle the problem of automatic memory footprint optimization. In this paper, we present a new automatic storage optimization technique which can be used to achieve both intra-array as well as inter-array storage reuse with a pre-determined schedule for the computation. Our approach works by finding statement-wise storage partitioning hyperplanes that partition a unified global array space so that values with overlapping live ranges are not mapped to the same partition. Our heuristic is driven by a fourfold objective function which not only minimizes the dimensionality and storage requirements of arrays required for each high-level statement, but also maximizes inter-statement storage reuse. The storage mappings obtained using our heuristic can be asymptotically better than those obtained by any existing technique. We implement our technique and demonstrate its practical impact by evaluating its effectiveness on several benchmarks chosen from the domains of image processing, stencil computations, and high-performance computing.

References

  1. S. Abu-Mahmeed, C. McCosh, Z. Budimli, K. Kennedy, K. Ravindran, K. Hogan, P. Austin, S. Rogers, and J. Kornerup. Scheduling tasks to maximize usage of aggregate variables in place. In Intl. Conference on Compiler Construction (CC), pages 204–219, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. V. Aho, R. Sethi, J. D. Ullman, and M. S. Lam. Compilers: Principles, Techniques, and Tools Second Edition. Prentice Hall, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Alias, F. Baray, and A. Darte. [email protected]: an implementation of lattice-based array contraction in the source-to-source translator Rose. In Languages Compilers and Tools for Embedded Systems, pages 73– 82, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. G. Bhaskaracharya, U. Bondhugula, and A. Cohen. Automatic Storage Optimization for Arrays. ACM Transactions on Programming Languages and Systems, accepted in 2015.Google ScholarGoogle Scholar
  5. A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. IEEE Transactions on Computers, 54(10):1242–1257, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Feautrier. Some efficient solutions to the affine scheduling problem: Part I, one-dimensional time. Intl. Journal of Parallel Programming, 21(5):313–348, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Ghysels and W. Vanroose. Modeling the performance of geometric multigrid stencils on multicore computer architectures. SIAM J. Scientific Computing, 37(2):C194–C216, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  8. GNU. Gnu linear programming kit (glpk), 2010. https://www.gnu.org/software/glpk/.Google ScholarGoogle Scholar
  9. E. D. Greef, F. Catthoor, and H. D. Man. Array placement for storage size reduction in embedded multimedia systems. Intl. Conf. on Application Specific Systems, Architectures, and Processors, pages 66–75, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. D. Greef, F. Catthoor, and H. D. Man. Memory size reduction through storage order optimization for embedded parallel multimedia applications. Parallel Computing, 23(12):1811–1837, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. LabVIEW Compiler. NI LabVIEW Compiler: Under the Hood. http://www.ni.com/white-paper/11472/en.Google ScholarGoogle Scholar
  12. V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Parallel Computing, 24(3-4):649–671, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. T. Mullapudi, V. Vasista, and U. Bondhugula. Polymage: Automatic optimization for image processing pipelines. In Intl. Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS ’15, pages 429–443, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. F. Quilleré and S. Rajopadhye. Optimizing memory usage in the polyhedral model. ACM Transactions on Programming Languages and Systems, 22(5):773–815, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Ragan-Kelley, C. Barnes, A. Adams, S. Paris, F. Durand, and S. P. Amarasinghe. Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In ACM SIGPLAN symposium on Programming Languages Design and Implementation, pages 519–530, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Schrijver. Theory of Linear and Integer Programming. John Wiley & Sons, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Strout, L. Carter, J. Ferrante, and B. Simon. Schedule-independent storage mapping for loops. In Intl. conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 24–33, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. W. Thies, F. Vivien, J. Sheldon, and S. P. Amarasinghe. A unified framework for schedule and storage optimization. In ACM SIGPLAN symposium on Programming Languages Design and Implementation, pages 232–242, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. W. Thies, F. Vivien, and S. Amarasinghe. A step towards unifying schedule and storage optimization. ACM Trans. Program. Lang. Syst., 29(6), Oct. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Verdoolaege. isl: An integer set library for the polyhedral model. In K. Fukuda, J. Hoeven, M. Joswig, and N. Takayama, editors, Mathematical Software - ICMS 2010, volume 6327, pages 299–302. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Wilde and S. V. Rajopadhye. Memory reuse analysis in the polyhedral model. In Intl. Euro-Par Conference on Parallel Processing, pages 389–397, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. SMO: an integrated approach to intra-array and inter-array storage optimization

    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

    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!