ABSTRACT
We build on prior work on intra-array memory reuse, for which a general theoretical framework was proposed based on lattice theory. Intra-array memory reuse is a way of reducing the size of a temporary array by folding, thanks to affine mappings and modulo operations, reusing memory locations when they contain a value not used later. We describe the algorithms needed to implement such a strategy. Our implementation has two parts. The first part, Bee, uses the source-to-source transformer ROSE to extract from the program all necessary information on the lifetime of array elements and to generate the code after memory reduction. The second part, [email protected], is a stand-alone mathematical tool dedicated to optimizations on polyhedra, in particular the computation of successive minima and the computation of good admissible lattices, which are the basis for lattice-based memory reuse. Both tools are developed in C++ and use linear programming and polyhedra manipulations. They can be used either for embedded program optimizations, e.g., to limit memory expansion introduced for parallelization, or in high-level synthesis, e.g., to design memories between communicating hardware accelerators.
- F. Balasa, F. Catthoor, and H. De Man. Exact evaluation of memory size for multi-dimensional signal processing systems. In IEEE/ACM International Conference on Computer-Aided Design (ICCAD '93), Santa Clara, CA, USA, 1993. Google Scholar
Digital Library
- F. Balasa, P.G. Kjeldsberg, M. Palkovic, A. Vandecappelle, and F. Catthoor. Loop transformation methodologies for array-oriented memory management. In IEEE ASAP'06, pp. 205--212, Washington, DC, USA, 2006. Google Scholar
Digital Library
- P. Clauss, F.J. Fernandez, D. Gabervetsky, and S. Verdoolaege. Symbolic polynomial maximization over convex sets and its application to memory requirement estimation. T.R. ICPS number 06-04, Université L. Pasteur, Oct. 2006.Google Scholar
- J.-F. Collard, D. Barthou, and P. Feautrier. Fuzzy array dataflow analysis. In ACM SIGPLAN PLDI'95, Santa Barbara, CA, July 1995. Google Scholar
Digital Library
- A. Darte and G. Huard. New complexity results on array contraction and related problems. Journal of VLSI Signal Processing-Systems for Signal, Image, and Video Technology, 40(1):35--55, 2005. Google Scholar
Digital Library
- A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. In ACM CASES'03, pp. 298--308, San Jose, USA, Oct. 2003. Google Scholar
Digital Library
- A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. IEEE Transactions on Computers, 54(10):1242--1257, Oct. 2005. Google Scholar
Digital Library
- E. De Greef, F. Catthoor, and H. De Man. Memory size reduction through storage order optimization for embedded parallel multimedia applications. Parallel Computing, 23:1811--1837, 1997. Google Scholar
Digital Library
- P. Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22(3):243--268, 1988.Google Scholar
Cross Ref
- P. Feautrier. Data flow analysis of scalar and array references. International Journal of Parallel Programming, 20(1):23--53, 1991.Google Scholar
Cross Ref
- GNU Free Software. GLPK (GNU Linear Programming Kit). http://www.gnu.org/software/glpk.Google Scholar
- P.M. Gruber and C.G. Lekkerkerker. Geometry of Numbers. North Holland, second edition, 1987.Google Scholar
- V. Kathail, S. Aditya, R. Schreiber, B.R. Rau, D.C. Cronquist, and M. Sivaraman. PICO: Automatically designing custom computers. IEEE Computer, 35(9):39--47, Sept. 2002. Google Scholar
Digital Library
- V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Parallel Computing, 24:649--671, 1998. Google Scholar
Digital Library
- L. Lovász and H.E. Scarf. The generalized basis reduction algorithm. Mathematics of Operations Research, 17(3):751--764, 1992. Google Scholar
Digital Library
- M. Newman. Integral Matrices. Academic Press, 1972.Google Scholar
- PIP/Polylib: http://www.piplib.org.Google Scholar
- W. Pugh. The Omega test: A fast and practical integer programming algorithm for dependence analysis. Communications of the ACM, 8:102--114, Aug. 1992. 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
- D.J. Quinlan. ROSE: Compiler support for object-oriented frameworks. Parallel Proc. Letters, 10(2/3):215--226, 2000.Google Scholar
Cross Ref
- J. Ramanujam, J. Hong, M. Kandemir, and A. Narayan. Reducing memory requirements of nested loops for embedded systems. In Design Automation (DAC), pp. 359--364, 2001. Google Scholar
Digital Library
- G.-A. Silber and A. Darte. The Nestor library: A tool for implementing Fortran source to source transformations. In HPCN'99, LNCS 1593, pp. 653--662. Springer Verlag, 1999. Google Scholar
Digital Library
- Y. Song, R. Xu, C. Wang, and Z. Li. Improving data locality by array contraction. IEEE Transactions on Computers, 53(9):1073--1084, 2004. Google Scholar
Digital Library
- M.M. Strout, L. Carter, J. Ferrante, and B. Simon. Schedule-independent storage mapping for loops. In ACM ASPLOS'98, pp. 24--33, San Jose, USA, 1998. Google Scholar
Digital Library
- W. Thies, F. Vivien, J. Sheldon, and S. Amarasinghe. A unified framework for schedule and storage optimization. In ACM SIGPLAN PLDI'01, pp. 232--242, 2001. Google Scholar
Digital Library
- R. Tronƒon, M. Bruynooghe, G. Janssens, and F. Catthoor. Storage size reduction by in-place mapping of arrays. In ACortesi, editor, VMCAI'02, LNCS 2294, pp. 167--181. Springer Verlag, 2002. Google Scholar
Digital Library
- A. Turjan, B. Kienhuis, and E. Deprettere. Translating affine nested-loop programs to process networks. In ACM CASES'04, pp. 220--229, Washington DC, USA, Sept. 2004. Google Scholar
Digital Library
- S. Udayakumaran, A. Dominguez, and R. Barua. Dynamic allocation for scratch-pad memory using compile-time decisions. ACM Transactions on Embedded Computing Systems, 5(2):472--511, 2006. Google Scholar
Digital Library
- S. Verdoolaege, H. Nikolov, and T. Stefanov. Improved derivation of process networks. In Workshop on Opt. for DSP and Embedded Systems (ODES-4), Mar. 2006.Google Scholar
- M.E. Wolf and M.S. Lam. A data locality optimizing algorithm. In ACM SIGPLAN PLDI'91, pp. 30--44, 1991. Google Scholar
Digital Library
- Y. Zhao and S. Malik. Exact memory size estimation for array computations without loop unrolling. In Design automation (DAC), pp. 811--816, 1999. Google Scholar
Digital Library
- H. Zhu, II. Luican, and F. Balasa. Memory size computation for multimedia processing applications. In ASP-DAC'06: Asia South Pacific Design Automation, pp. 802--807, 2006. Google Scholar
Digital Library
Index Terms
[email protected]: an implementation of lattice-based array contraction in the source-to-source translator rose
Recommendations
[email protected]: an implementation of lattice-based array contraction in the source-to-source translator rose
Proceedings of the 2007 LCTES conferenceWe build on prior work on intra-array memory reuse, for which a general theoretical framework was proposed based on lattice theory. Intra-array memory reuse is a way of reducing the size of a temporary array by folding, thanks to affine mappings and ...
Subalgebras of Heyting and De Morgan Heyting Algebras
In this paper we obtain characterizations of subalgebras of Heyting algebras and De Morgan Heyting algebras. In both cases we obtain these characterizations by defining certain equivalence relations on the Priestley-type topological representations of ...
Correspondences between the Heyting arrow lattices of a distributive lattice and its sublattices in relational biologic systems
Qualitative relations in biological systems were studied by means of lattices. The first representations gave place to finite pseudo-Boolean algebras. The Heyting arrow operation relating noncomparable elements of the lattices (L) allowed the definition ...







Comments