SPIRAL: Code Generation for DSP Transforms
Abstract
Fast changing, increasingly complex, and diverse computing platforms pose central problems in scientific computing: How to achieve, with reasonable effort, portable optimal performance? We present SPIRAL, which considers this problem for the performance-critical domain of linear digital signal processing (DSP) transforms. For a specified transform, SPIRAL automatically generates high-performance code that is tuned to the given platform. SPIRAL formulates the tuning as an optimization problem and exploits the domain-specific mathematical structure of transform algorithms to implement a feedback-driven optimizer. Similar to a human expert, for a specified transform, SPIRAL "intelligently" generates and explores algorithmic and implementation choices to find the best match to the computer's microarchitecture. The "intelligence" is provided by search and learning techniques that exploit the structure of the algorithm and implementation space to guide the exploration and optimization. SPIRAL generates high-performance code for a broad set of DSP transforms, including the discrete Fourier transform, other trigonometric transforms, filter transforms, and discrete wavelet transforms. Experimental results show that the code generated by SPIRAL competes with, and sometimes outperforms, the best available human tuned transform library code.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Cites
Automated empirical optimizations of software and the ATLAS project
Clint Whaley, R., Petitet, A., & Dongarra, J. J. (2001) · Parallel Computing · doi:10.1016/s0167-8191(00)00087-9 · Cited by 1,317 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
A modified split-radix fft with fewer arithmetic operations
Johnson, S. G., & Frigo, M. (2007) · IEEE Transactions on Signal Processing · doi:10.1109/tsp.2006.882087 · Cited by 380 · see citing works
An auto-tuning framework for parallel multicore stencil computations
Kamil, S., Chan, C., Oliker, L., Shalf, J., & Williams, S. (2010) · 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS) · doi:10.1109/ipdps.2010.5470421 · Cited by 209 · see citing works
- Authors
- Puschel, M., Moura, J. M. F., Johnson, J. R., Padua, D., Veloso, M. M., Singer, B. W., Xiong, J., Franchetti, F., Gacic, A., Voronenko, Y., Chen, K., Johnson, R. W., & Rizzolo, N.
- Affiliations
- Carnegie Mellon University (US)
- Drexel University (US)
- University of Illinois Urbana-Champaign (US)
- Venue
- Proceedings of the IEEE
- Published
- 2005-02
- Volume
- 93
- Issue
- 2
- Pages
- 232-275
- ISSN
- 0018-9219 (ISSN-L)
- OpenAlex
- W2136952590
- Cited by
- 826
- References
- 1
- Citations by year
- 2026: 13 · 2025: 12 · 2024: 14 · 2023: 18 · 2022: 17 · 2021: 22 · 2020: 35 · 2019: 24 · 2018: 47 · 2017: 36 · 2016: 34 · 2015: 51 · 2014: 56 · 2013: 58 · 2012: 62
- FWCI
- 75.56
- Type
- journal article
- Language
- en
- Open access
- closed
- Locations
- Proceedings of the IEEE (publishedVersion)
- Topics
- Physical Sciences › Computer Science › Hardware and Architecture › Parallel Computing and Optimization Techniques
- Physical Sciences › Computer Science › Hardware and Architecture › Embedded Systems Design Techniques
- Physical Sciences › Computer Science › Signal Processing › Digital Filter Design and Implementation
- Keywords
- spirals, automatic code generation, performance tuning, feedback-driven optimization, discrete Fourier transform, discrete wavelet transform, trigonometric transforms
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review