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.
- 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 Scholar
Digital Library
- A. V. Aho, R. Sethi, J. D. Ullman, and M. S. Lam. Compilers: Principles, Techniques, and Tools Second Edition. Prentice Hall, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- S. G. Bhaskaracharya, U. Bondhugula, and A. Cohen. Automatic Storage Optimization for Arrays. ACM Transactions on Programming Languages and Systems, accepted in 2015.Google Scholar
- A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. IEEE Transactions on Computers, 54(10):1242–1257, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- GNU. Gnu linear programming kit (glpk), 2010. https://www.gnu.org/software/glpk/.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- LabVIEW Compiler. NI LabVIEW Compiler: Under the Hood. http://www.ni.com/white-paper/11472/en.Google Scholar
- V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Parallel Computing, 24(3-4):649–671, 1998. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Schrijver. Theory of Linear and Integer Programming. John Wiley & Sons, 1986. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
SMO: an integrated approach to intra-array and inter-array storage optimization
Recommendations
SMO: an integrated approach to intra-array and inter-array storage optimization
POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesThe 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. ...
Automatic Storage Optimization for Arrays
Efficient memory allocation is crucial for data-intensive applications, as a smaller memory footprint ensures better cache performance and allows one to run a larger problem size given a fixed amount of main memory. In this article, we describe a new ...
Improving Data Locality by Array Contraction
Array contraction is a program transformation which reduces array size while preserving the correct output. In this paper, we present an aggressive array-contraction technique and study its impact on memory system performance. This technique, called ...






Comments