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

Formal loop merging for signal transforms

Published: 12 June 2005 Publication History

Abstract

A critical optimization in the domain of linear signal transforms, such as the discrete Fourier transform (DFT), is loop merging, which increases data locality and reuse and thus performance. In particular, this includes the conversion of shuffle operations into array reindexings. To date, loop merging is well understood only for the DFT, and only for Cooley-Tukey FFT based algorithms, which excludes DFT sizes divisible by large primes. In this paper, we present a formal loop merging framework for general signal transforms and its implementation within the SPIRAL code generator. The framework consists of Ε-SPL, a mathematical language to express loops and index mappings; a rewriting system to merge loops in Ε-SPL and a compiler that translates Ε-SPL into code. We apply the framework to DFT sizes that cannot be handled using only the Cooley-Tukey FFT and compare our method to FFTW 3.0.1 and the vendor library Intel MKL 7.2.1. Compared to FFTW our generated code is a factor of 2--4 faster under equal implementation conditions (same algorithms, same unrolling threshold). For some sizes we show a speed-up of a factor of 9 using Bluestein's algorithm. Further, we give a detailed comparison against the Intel vendor library MKL; our generated code is between 2 times faster and 4.5 times slower.

References

[1]
A. Darte. On the complexity of loop fusion. Parallel Computing, 26(9):1175--1193, 2000.
[2]
FFTW web site. www.fftw.org.
[3]
M. Frigo. A fast Fourier transform compiler. In Proc. PLDI, pages 169--180, 1999.
[4]
M. Frigo and S. G. Johnson. The design and implementation of FFTW3. Proc. of the IEEE, 93(2):216--231, 2005. Special issue on Program Generation, Optimization, and Adaptation.
[5]
J. Johnson, R. W. Johnson, D. Rodriguez, and R. Tolimieri. A methodology for designing, modifying, and implementing Fourier transform algorithms on various architectures. IEEE Trans. Circuits and Systems, 9, 1990.
[6]
K. Kennedy and K. S. McKinley. Maximizing loop parallelism and improving data locality via loop fusion and distribution. In 1993 Workshop on Languages and Compilers for Parallel Computing, number 768, pages 301--320, Portland, Ore., 1993. Berlin: Springer Verlag.
[7]
W. Pugh and D. Wonnacott. Constraint-based array dependence analysis. ACM Trans. Progr. Lang. Syst., 20(3):635--678, 1998.
[8]
M. Püschel, J. M. F. Moura, J. Johnson, D. Padua, M. Veloso, B. W. Singer, J. Xiong, F. Franchetti, A. Gačić, Y. Voronenko, K. Chen, R. W. Johnson, and N. Rizzolo. SPIRAL: Code generation for DSP transforms. Proc. of the IEEE, 93(2):232--275, 2005. Special issue on Program Generation, Optimization, and Adaptation.
[9]
SPIRAL web site. www.spiral.net.
[10]
C. Van Loan. Computational Framework of the Fast Fourier Transform. SIAM, 1992.
[11]
J. Xiong, J. Johnson, R. Johnson, and D. Padua. SPL: A language and compiler for DSP algorithms. In Proc. PLDI, pages 298--308, 2001.

Cited By

View all
  • (2020)Verified Translation Between Purely Functional and Imperative Domain Specific Languages in HELIXSoftware Verification10.1007/978-3-030-63618-0_3(33-49)Online publication date: 6-Dec-2020
  • (2018)HELIX: a case study of a formal verification of high performance program generationProceedings of the 7th ACM SIGPLAN International Workshop on Functional High-Performance Computing10.1145/3264738.3264739(1-9)Online publication date: 17-Sep-2018
  • (2018)Large Bandwidth-Efficient FFTs on Multicore and Multi-socket Systems2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS.2018.00048(379-388)Online publication date: May-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
June 2005
338 pages
ISBN:1595930566
DOI:10.1145/1065010
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 40, Issue 6
    Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
    June 2005
    325 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1064978
    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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 June 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. DFT
  2. automatic performance tuning
  3. discrete Fourier transform
  4. domain-specific language
  5. linear signal transform
  6. loop optimization

Qualifiers

  • Article

Conference

PLDI05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Verified Translation Between Purely Functional and Imperative Domain Specific Languages in HELIXSoftware Verification10.1007/978-3-030-63618-0_3(33-49)Online publication date: 6-Dec-2020
  • (2018)HELIX: a case study of a formal verification of high performance program generationProceedings of the 7th ACM SIGPLAN International Workshop on Functional High-Performance Computing10.1145/3264738.3264739(1-9)Online publication date: 17-Sep-2018
  • (2018)Large Bandwidth-Efficient FFTs on Multicore and Multi-socket Systems2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS.2018.00048(379-388)Online publication date: May-2018
  • (2017)A Haskell compiler for signal transformsACM SIGPLAN Notices10.1145/3170492.313605652:12(219-232)Online publication date: 23-Oct-2017
  • (2017)A Haskell compiler for signal transformsProceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3136040.3136056(219-232)Online publication date: 23-Oct-2017
  • (2015)High performance implementation of the inverse TFTProceedings of the 2015 International Workshop on Parallel Symbolic Computation10.1145/2790282.2790292(87-94)Online publication date: 10-Jul-2015
  • (2014)Abstracting Vector Architectures in Library GeneratorsProceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming10.1145/2627373.2627376(14-19)Online publication date: 9-Jun-2014
  • (2014)High performance implementation of the TFTProceedings of the 39th International Symposium on Symbolic and Algebraic Computation10.1145/2608628.2608661(328-334)Online publication date: 23-Jul-2014
  • (2014)A Basic Linear Algebra CompilerProceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization10.1145/2581122.2544155(23-32)Online publication date: 15-Feb-2014
  • (2014)A Basic Linear Algebra CompilerProceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization10.1145/2544137.2544155(23-32)Online publication date: 15-Feb-2014
  • Show More Cited By

View Options

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