TY - JOUR
T1 - SPIRAL
T2 - Code generation for DSP transforms
AU - Püschel, Markus
AU - Moura, José M.F.
AU - Johnson, Jeremy R.
AU - Padua, David
AU - Veloso, Manuela M.
AU - Singer, Bryan W.
AU - Xiong, Jianxin
AU - Franchetti, Franz
AU - Gačić, Aca
AU - Voronenko, Yevgen
AU - Chen, Kang
AU - Johnson, Robert W.
AU - Rizzolo, Nicholas
N1 - Funding Information:
Manuscript received April 29, 2004; revised October 15, 2004. This work was supported in part by the Defense Advanced Research Projects Agency (DARPA) under Grant DABT63-98-1-0004 administered by the Army Directorate of Contracting and in part by the National Science Foundation under Awards ACR-0234293, ITR/NGS-0325687, and SYS-310941.
PY - 2005/2
Y1 - 2005/2
N2 - 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.
AB - 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.
KW - Adaptation
KW - Automatic performance tuning
KW - Code optimization
KW - Discrete Fourier transform (DFT)
KW - Discrete cosine transform (DCT)
KW - Fast Fourier transform (FFT)
KW - Filter
KW - Genetic and evolutionary algorithm
KW - High-performance computing
KW - Learning
KW - Library generation
UR - http://www.scopus.com/inward/record.url?scp=19344368072&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=19344368072&partnerID=8YFLogxK
U2 - 10.1109/JPROC.2004.840306
DO - 10.1109/JPROC.2004.840306
M3 - Article
AN - SCOPUS:19344368072
SN - 0018-9219
VL - 93
SP - 232
EP - 273
JO - Proceedings of the Institute of Radio Engineers
JF - Proceedings of the Institute of Radio Engineers
IS - 2
ER -