Definition
Spiral is a program generation system (software that generates other softwares) for linear transforms and an increasing list of other mathematical functions. The goal of Spiral is to automate the development and porting of performance libraries. Linear transforms include the discrete Fourier transform (DFT), discrete cosine transforms, convolution, and the discrete wavelet transform. The input to Spiral consists of a high-level mathematical algorithm specification and selected architectural and microarchitectural parameters. The output is performance-optimized code in a high-level language such as C, possibly augmented with vector intrinsics and threading instructions.
Discussion
Introduction
The advent of computers with multiple cores, SIMD (single-instruction multiple-data) vector instruction sets, and deep memory hierarchies has a dramatic effect on the development of high-performance software. The problem is particularly apparent for functions that perform mathematical...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Spiral project website.http://www.spiral.net
Bonelli A, Franchetti F, Lorenz J, PĆ¼schel M, Ueberhuber CW (2006) Automatic performance optimization of the discrete Fourier transform on distributed memory computers. In: International symposium on parallel and distributed processing and application (ISPA), Lecture notes in computer science, vol 4330. Springer, Berlin, pp 818ā832
Chellappa S, Franchetti F, PĆ¼schel M (2009) High performance linear transform program generation for the Cell BE. In: Proceedings of the high performance embedded computing (HPEC), Lexington, 22ā23 SeptemberĀ 2009
de Mesmay F, Chellappa S, Franchetti F, PĆ¼schel M (2010) Computer generation of efficient software Viterbi decoders. In: International conference on high performance embedded architectures and compilers (HiPEAC), Lecture notes in computer science, vol 5952. Springer, Berlin, ppĀ 353ā368
de Mesmay F, Rimmel A, Voronenko Y, PĆ¼schel M (2009) Bandit-based optimization on graphs with application to library performance tuning. In: International conference on machine learning (ICML), ACM international conference proceedings series, vol 382. ACM, New York, pp 729ā736
de Mesmay F, Voronenko Y, PĆ¼schel M (2010) Offline library adaptation using automatically generated heuristics. In: International parallel and distributed processing symposium (IPDPS)
Franchetti F, de Mesmay F, McFarlin D, PĆ¼schel M (2009) Operator language: a program generation framework for fast kernels. In: IFIP working conference on domain specific languages (DSL WC), Lecture notes in computer science, vol 5658. Springer, Berlin, pp 385ā410
Franchetti F, PĆ¼schel M (2002) A SIMD vectorizing compiler for digital signal processing algorithms. In: International parallel and distributed processing symposium (IPDPS). pp 20ā26
Franchetti F, PĆ¼schel M (2008) Generating SIMD vectorized permutations. In: International conference on compiler construction (CC), Lecture notes in computer science, vol 4959. Springer, Berlin, pp 116ā131
Franchetti F, PĆ¼schel M, Voronenko Y, Chellappa S, Moura JMF (2009) Discrete Fourier transform on multicore. IEEE Signal Proc Mag 26(6):90ā102
Franchetti F, Voronenko Y, PĆ¼schel M (2005) Formal loop merging for signal transforms. In: Programming languages design and implementation (PLDI). ACM, New York, pp 315ā326
Franchetti F, Voronenko Y, PĆ¼schel M (2006) FFT program generation for shared memory: SMP and multicore. In: Supercomputing (SC). ACM, New York
Franchetti F, Voronenko Y, PĆ¼schel M (2006) A rewriting system for the vectorization of signal transforms. In: High performance computing for computational science (VECPAR), Lecture notes in computer science, vol 4395. Springer, Berlin, ppĀ 363ā377
Frigo M (1999) A fast Fourier transform compiler. In: Proceedings of the programming language design and implementation (PLDI). ACM, New York, pp 169ā180
Frigo M, Johnson SG (2005) The design and implementation of FFTW3. Proc IEEE 93(2):216ā231
Johnson J, Johnson RW, Rodriguez D, Tolimieri R (1990) A methodology for designing, modifying, and implementing Fourier transform algorithms on various architectures. IEEE Trans Circ Sys 9:449ā500
McFarlin D, Franchetti F, Moura JMF, PĆ¼schel M (2009) High performance synthetic aperture radar image formation on commodity architectures. Proc SPIE 7337:733708
Milder PA, Franchetti F, Hoe JC, PĆ¼schel M (2008) Formal datapath representation and manipulation for implementing DSP transforms. In: Design automation conference (DAC). ACM, New York, pp 385ā390
Nordin G, Milder PA, Hoe JC, PĆ¼schel M (2005) Automatic generation of customized discrete Fourier transform IPs. In: Design automation conference (DAC). ACM, New York, pp 471ā474
Press WH, Flannery BP, TeukolskyĀ SA, VetterlingĀ WT (1992) Numerical recipes in C: the art of scientific computing, 2nd edn. Cambridge University Press, Cambridge
PĆ¼schel M, Moura JMF (2008) Algebraic signal processing theory: Cooley-Tukey type algorithms for DCTs and DSTs. IEEE Trans Signal Proces 56(4):1502ā1521
PĆ¼schel M, Moura JMF, Johnson J, Padua D, Veloso M, Singer B, Xiong J, Franchetti F, Gacic A, Voronenko Y, Chen K, Johnson RW, Rizzolo N (2005) SPIRAL: code generation for DSP transforms. Proc IEEE (Special Issue on Program Generation, Optimization, and Adaptation) 93(2):232ā275
PĆ¼schel M, Singer B, Veloso M, Moura JMF (2001) Fast automatic generation of DSP algorithms. In: International conference on computational science (ICCS), Lecture notes in computer science, vol 2073. Springer, Berlin, pp 97ā106
PĆ¼schel M, Singer B, Xiong J, Moura JMF, Johnson J, Padua D, Veloso M, Johnson RW (2004) SPIRAL: a generator for platform-adapted libraries of signal processing algorithms. J High Perform Comput Appl 18(1):21ā45
Singer B, Veloso M (2001) Learning to generate fast signal processing implementations. In: International conference on machine learning (ICML). Morgan Kaufmann, San Francisco, pp 529ā536
Singer B, Veloso M (2001) Stochastic search for signal processing algorithm optimization. In: Supercomputing (SC). ACM, NewĀ York, pĀ 22
Tolimieri R, An M, Lu C (1997) Algorithms for discrete Fourier transforms and convolution, 2nd edn. Springer, Berlin
VanĀ Loan C (1992) Computational framework of the fast Fourier transform. SIAM, Philadelphia
Voronenko Y (2008) Library generation for linear transforms. Ph.D. thesis, Electrical and Computer Engineering, Carnegie Mellon University
Voronenko Y, de Mesmay F, PĆ¼schel M (2009) Computer generation of general size linear transform libraries. In: International symposium on code generation and optimization (CGO). IEEE Computer Society, Washington, DC, pp 102ā113
Voronenko Y, P\(\ddot{\mathrm{u}}\) schel M (2009) Algebraic signal processing theory: CooleyāTukey type algorithms for real DFTs. IEEE Trans Signal Proces 57(1):205ā222
Xiong J, Johnson J, Johnson RW, Padua D (2001) SPL: a language and compiler for DSP algorithms. In: Programming languages design and implementation (PLDI). ACM, New York, pp 298ā308
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
PĆ¼schel, M., Franchetti, F., Voronenko, Y. (2011). Spiral. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_244
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_244
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering