skip to main content
10.1145/1254766.1254778acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

[email protected]: an implementation of lattice-based array contraction in the source-to-source translator rose

Authors Info & Claims
Published:13 June 2007Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. J.-F. Collard, D. Barthou, and P. Feautrier. Fuzzy array dataflow analysis. In ACM SIGPLAN PLDI'95, Santa Barbara, CA, July 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. In ACM CASES'03, pp. 298--308, San Jose, USA, Oct. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Darte, R. Schreiber, and G. Villard. Lattice-based memory allocation. IEEE Transactions on Computers, 54(10):1242--1257, Oct. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22(3):243--268, 1988.Google ScholarGoogle ScholarCross RefCross Ref
  10. P. Feautrier. Data flow analysis of scalar and array references. International Journal of Parallel Programming, 20(1):23--53, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  11. GNU Free Software. GLPK (GNU Linear Programming Kit). http://www.gnu.org/software/glpk.Google ScholarGoogle Scholar
  12. P.M. Gruber and C.G. Lekkerkerker. Geometry of Numbers. North Holland, second edition, 1987.Google ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Parallel Computing, 24:649--671, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. L. Lovász and H.E. Scarf. The generalized basis reduction algorithm. Mathematics of Operations Research, 17(3):751--764, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Newman. Integral Matrices. Academic Press, 1972.Google ScholarGoogle Scholar
  17. PIP/Polylib: http://www.piplib.org.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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
  20. D.J. Quinlan. ROSE: Compiler support for object-oriented frameworks. Parallel Proc. Letters, 10(2/3):215--226, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle Scholar
  30. M.E. Wolf and M.S. Lam. A data locality optimizing algorithm. In ACM SIGPLAN PLDI'91, pp. 30--44, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Y. Zhao and S. Malik. Exact memory size estimation for array computations without loop unrolling. In Design automation (DAC), pp. 811--816, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. [email protected]: an implementation of lattice-based array contraction in the source-to-source translator rose

    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
      LCTES '07: Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
      June 2007
      258 pages
      ISBN:9781595936325
      DOI:10.1145/1254766
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 42, Issue 7
        Proceedings of the 2007 LCTES conference
        July 2007
        241 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1273444
        Issue’s Table of Contents

      Copyright © 2007 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 13 June 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate116of438submissions,26%

    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!