Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2837614.2837636acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

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

Published: 11 January 2016 Publication History
  • Get Citation Alerts
  • 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.
    [2]
    A. V. Aho, R. Sethi, J. D. Ullman, and M. S. Lam. Compilers: Principles, Techniques, and Tools Second Edition. Prentice Hall, 2006.
    [3]
    C. Alias, F. Baray, and A. Darte. Bee+Cl@k: 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.
    [4]
    S. G. Bhaskaracharya, U. Bondhugula, and A. Cohen. Automatic Storage Optimization for Arrays. ACM Transactions on Programming Languages and Systems, accepted in 2015.
    [5]
    A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. IEEE Transactions on Computers, 54(10):1242–1257, 2005.
    [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.
    [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.
    [8]
    GNU. Gnu linear programming kit (glpk), 2010. https://www.gnu.org/software/glpk/.
    [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.
    [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.
    [11]
    LabVIEW Compiler. NI LabVIEW Compiler: Under the Hood. http://www.ni.com/white-paper/11472/en.
    [12]
    V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Parallel Computing, 24(3-4):649–671, 1998.
    [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.
    [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.
    [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.
    [16]
    A. Schrijver. Theory of Linear and Integer Programming. John Wiley & Sons, 1986.
    [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.
    [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.
    [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.
    [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.
    [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.

    Cited By

    View all
    • (2023)Lightweight Array Contraction by Trace-Based Polyhedral AnalysisHigh Performance Computing. ISC High Performance 2022 International Workshops10.1007/978-3-031-23220-6_2(20-32)Online publication date: 4-Jan-2023
    • (2022)Memory optimizations in an array languageProceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis10.5555/3571885.3571926(1-15)Online publication date: 13-Nov-2022
    • (2022)Memory Optimizations in an Array LanguageSC22: International Conference for High Performance Computing, Networking, Storage and Analysis10.1109/SC41404.2022.00036(1-15)Online publication date: Nov-2022
    • Show More Cited By

    Index Terms

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

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
      January 2016
      815 pages
      ISBN:9781450335492
      DOI:10.1145/2837614
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 51, Issue 1
        POPL '16
        January 2016
        815 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2914770
        • Editor:
        • Andy Gill
        Issue’s Table of Contents
      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 ACM 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]

      Sponsors

      In-Cooperation

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 11 January 2016

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Compilers
      2. array contraction
      3. memory optimization
      4. polyhedral framework
      5. storage mapping optimization

      Qualifiers

      • Research-article

      Conference

      POPL '16
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 824 of 4,130 submissions, 20%

      Upcoming Conference

      POPL '25

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)10
      • Downloads (Last 6 weeks)3

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)Lightweight Array Contraction by Trace-Based Polyhedral AnalysisHigh Performance Computing. ISC High Performance 2022 International Workshops10.1007/978-3-031-23220-6_2(20-32)Online publication date: 4-Jan-2023
      • (2022)Memory optimizations in an array languageProceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis10.5555/3571885.3571926(1-15)Online publication date: 13-Nov-2022
      • (2022)Memory Optimizations in an Array LanguageSC22: International Conference for High Performance Computing, Networking, Storage and Analysis10.1109/SC41404.2022.00036(1-15)Online publication date: Nov-2022
      • (2019)A Unified Approach to Variable Renaming for Enhanced VectorizationLanguages and Compilers for Parallel Computing10.1007/978-3-030-34627-0_1(1-20)Online publication date: 13-Nov-2019
      • (2018)DeLICM: scalar dependence removal at zero memory costProceedings of the 2018 International Symposium on Code Generation and Optimization - CGO 201810.1145/3179541.3168815(241-253)Online publication date: 2018
      • (2018)Polyhedral expression propagationProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179529(25-36)Online publication date: 24-Feb-2018
      • (2018)DeLICM: scalar dependence removal at zero memory costProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168815(241-253)Online publication date: 24-Feb-2018
      • (2018)Harris corner detection on a NUMA manycoreFuture Generation Computer Systems10.1016/j.future.2018.01.04888(442-452)Online publication date: Nov-2018
      • (2016)Extended lattice-based memory allocationProceedings of the 25th International Conference on Compiler Construction10.1145/2892208.2892213(218-228)Online publication date: 17-Mar-2016

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media