SPIRAL: Code Generation for DSP Transforms
Top Cited Papers
- 27 June 2005
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in Proceedings of the IEEE
- Vol. 93 (2) , 232-275
- https://doi.org/10.1109/jproc.2004.840306
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.Keywords
This publication has 53 references indexed in Scilit:
- Experience in the automatic parallelization of four Perfect-Benchmark programsPublished by Springer Nature ,2006
- Sparsity: Optimization Framework for Sparse Matrix KernelsThe International Journal of High Performance Computing Applications, 2004
- Spiral: A Generator for Platform-Adapted Libraries of Signal Processing AlogorithmsThe International Journal of High Performance Computing Applications, 2004
- Automating the modeling and optimization of the performance of signal transformsIEEE Transactions on Signal Processing, 2002
- On the automatic parallelization of the Perfect Benchmarks(R)IEEE Transactions on Parallel and Distributed Systems, 1998
- Implementation of Efficient FFT Algorithms on Fused Multiply- Add ArchitecturesIEEE Transactions on Signal Processing, 1993
- Engineering a simple, efficient code-generator generatorACM Letters on Programming Languages and Systems, 1992
- Profile‐guided automatic inline expansion for C programsSoftware: Practice and Experience, 1992
- A methodology for designing, modifying, and implementing Fourier transform algorithms on various architecturesCircuits, Systems, and Signal Processing, 1990
- Some complexity issues in digital signal processingIEEE Transactions on Acoustics, Speech, and Signal Processing, 1984