SPIRAL: Code generation for DSP transforms

Markus Püschel, José M.F. Moura, Jeremy R. Johnson, David Padua, Manuela M. Veloso, Bryan W. Singer, Jianxin Xiong, Franz Franchetti, Aca Gačić, Yevgen Voronenko, Kang Chen, Robert W. Johnson, Nicholas Rizzolo

Research output: Contribution to journalArticlepeer-review


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.

Original languageEnglish (US)
Pages (from-to)232-273
Number of pages42
JournalProceedings of the IEEE
Issue number2
StatePublished - Feb 2005


  • Adaptation
  • Automatic performance tuning
  • Code optimization
  • Discrete Fourier transform (DFT)
  • Discrete cosine transform (DCT)
  • Fast Fourier transform (FFT)
  • Filter
  • Genetic and evolutionary algorithm
  • High-performance computing
  • Learning
  • Library generation

ASJC Scopus subject areas

  • Electrical and Electronic Engineering


Dive into the research topics of 'SPIRAL: Code generation for DSP transforms'. Together they form a unique fingerprint.

Cite this