skip to main content
10.1145/781131.781134acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Linear analysis and optimization of stream programs

Published:09 May 2003Publication History

ABSTRACT

As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input language is StreamIt, which represents programs as a hierarchical graph of autonomous filters. A filter is linear if each of its outputs can be represented as an affine combination of its inputs. Linearity is common in DSP components; examples include FIR filters, expanders, compressors, FFTs and DCTs.We demonstrate that several algorithmic transformations, traditionally hand-tuned by DSP experts, can be completely automated by the compiler. First, we present a linear extraction analysis that automatically detects linear filters from the C-like code in their work function. Then, we give a procedure for combining adjacent linear filters into a single filter, as well as for translating a linear filter to operate in the frequency domain. We also present an optimization selection algorithm, which finds the sequence of combination and frequency transformations that will give the maximal benefit.We have completed a fully-automatic implementation of the above techniques as part of the StreamIt compiler, and we demonstrate a 450% performance improvement over our benchmark suite.

References

  1. V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A transparent dynamic optimization system. In PLDI, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. In POPL, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. M. Covell. An Algorithm Design Environment for Signal Processing. PhD thesis, MIT, 1989.Google ScholarGoogle Scholar
  4. S. Egner, J. Johnson, D. Padua, M. Püschel, and J. Xiong. Automatic derivation and implementation of signal processing algorithms. SIGSAM Bulletin, 35(2):1--19, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Frigo. A Fast Fourier Transform Compiler. In PLDI, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Gordon. A stream-aware compiler for communication-exposed architectures. Master's thesis, MIT Laboratory for Computer Science, August 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Gordon, W. Thies, M. Karczmarek, J. Lin, A. S. Meli, A. A. Lamb, C. Leger, J. Wong, H. Hoffmann, D. Maze, and S. Amarasinghe. A Stream Compiler for Communication-Exposed Architectures. ASPLOS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Johnson, R. W. Johnson, D. A. Padua, and J. Xiong. SPIRAL Home Page. http://www.ece.cmu.edu/˜spiral/.Google ScholarGoogle Scholar
  9. J. Johnson, R. W. Johnson, D. A. Padua, and J. Xiong. Searching for the best FFT formulas with the SPL compiler. LNCS, 2017, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. A. Karczmarek. Constrained and phased scheduling of synchronous data flow graphs for the streamit language. Master's thesis, MIT LCS, October 2002.Google ScholarGoogle Scholar
  11. M. Karr. Affine relationships among variables of a program. Acta Informatica, pages 133--155, 1976.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Lebak. Polymorphous Computing Architecture (PCA) Example Applications and Description. External Report, Lincoln Laboratory, Mass. Inst. of Technology, 2001.Google ScholarGoogle Scholar
  13. M.B. Taylor et. al . The raw microprocessor: a computational fabric for software circuits and general-purpose programs. IEEE Micro, 22(2):25--35, March/April 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. V. Oppenheim and S. H. Nawab, editors. Symbolic and Knowledge-Based Signal Processing. Prentice Hall, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. V. Oppenheim, R. W. Shafer, and J. R. Buck. Discrete-Time Signal Processing. Prentice Hall, second edition, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Ryan. Linear data flow analysis. ACM SIGPLAN Notices, 27(4):59--67, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Stephens. A Survey of Stream Processing. Acta Informatica, 34(7), 1997.Google ScholarGoogle ScholarCross RefCross Ref
  18. Texas Instruments. TMS320C54x DSP Reference Set, volume 2: Mnemonic Instruction Set. 2001.Google ScholarGoogle Scholar
  19. W. Thies, M. Karczmarek, and S. Amarasinghe. StreamIt: A Language for Streaming Applications. In Proc. of the Int. Conf. on Compiler Construction (CC), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. C. Whaley, A. Petitet, and J. J. Dongarra. Automated empirical optimizations of software and the ATLAS project. Parallel Computing, 27(1--2):3--35, 2001.Google ScholarGoogle Scholar
  21. J. Xiong. Automatic Optimization of DSP Algorithms. PhD thesis, Univ. of Illinois at Urbana-Champaign, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Xiong, J. Johnson, R. W. Johnson, and D. A. Padua. SPL: A language and compiler for DSP algorithms. In PLDI, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Linear analysis and optimization of stream programs

            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
              PLDI '03: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
              June 2003
              360 pages
              ISBN:1581136625
              DOI:10.1145/781131

              Copyright © 2003 ACM

              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]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 9 May 2003

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              PLDI '03 Paper Acceptance Rate28of131submissions,21%Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader