Further Reading
This is a short annotated list of papers and presentations about SPIRAL. For a comprehensive list see Carnegie Mellon’s SPIRAL Publications page.
About SPIRAL in General
SPIRAL: Extreme Performance Portability (2018)
This is the most recent major paper about SPIRAL.
Franz Franchetti, Tze Meng Low, Doru Thom Popovici, Richard M. Veras,Daniele G. Spampinato, Jeremy R. Johnson, Markus Püschel, James C. Hoe, José M. F. Moura:SPIRAL: Extreme Performance Portability.Proceedings of the IEEE, Special Issue on From High Level Specifications to High Performance Code, 2018
SPIRAL (2011)
If you are only going to read one article about SPIRAL, this is the one to read. It walks through the major concepts and components of SPIRAL with lots of illustrations and examples.
Markus Püschel, Franz Franchetti, Yevgen Voronenko:Spiral.Encyclopedia of Parallel Computing 2011: 1920-1933
Spiral: Computer Generation of Performance Libraries (2011)
This short slide presentation illustrates the key points about SPIRAL.
José M. F. Moura, Markus Püschel, Franz Franchetti:Spiral: Computer Generation of Performance LibrariesCarnegie Mellon University 2011
SPIRAL: Code Generation for DSP Transforms (2005)
Though several papers about SPIRAL predate it, this 2005 deep dive is SPIRAL’s historical debut on the main stage. SPIRAL has grown a lot since then, but this article covers most of major components, particularly Signal Processing Language (SPL) and Breakdown Rules. As a bonus, it has photos of the (young) authors/team.
Markus Püschel, José M. F. Moura, Jeremy R. Johnson, David A. Padua, Manuela M. Veloso, Bryan Singer,Jianxin Xiong, Franz Franchetti, Aca Gacic, Yevgen Voronenko, Kang Chen, Robert W. Johnson, Nicholas Rizzolo:SPIRAL: Code Generation for DSP Transforms.Proceedings of the IEEE 93(2): 232-275 (2005)
Key Internal Functionality
A Rewriting System for the Vectorization of Signal Transforms (2006)
Understanding SPIRAL requires understanding its layers of rewriting. This paper shows how SPIRAL uses rewrite rules to map signal transforms to vector instructions.
F. Franchetti, Y. Voronenko, M. PüschelA Rewriting System for the Vectorization of Signal TransformsProceedings High Performance Computing for Computational Science (VECPAR) 2006, LNCS 4395, pages 363-377
Formal Loop Merging for Signal Transforms (2005)
This key paper introduces Sigma SPL, which was a new level of abstraction added to SPIRAL in 2005. Another must-read, this paper and its companion slide deck are well worth careful study.
Franz Franchetti, Yevgen Voronenko, Markus Püschel:Formal Loop Merging for Signal Transforms.PLDI 2005: 315-326
Vector Instructions and Other Parallelism
FFTE on SVE: SPIRAL-Generated Kernels (2020)
Using SPIRAL to generate vectorized FFT kernels for ARM Scalable Vector Extension (SVE) produced significant speedups over automatic vectorization at compile time.
Daisuke Takahashi, Franz FranchettiFFTE on SVE: SPIRAL-Generated KernelsInternational Conference on High Performance Computing in Asia-Pacific Region (HPCAsia), 2020
Large Bandwidth-Efficient FFTs on Multicore and Multi-Socket Systems (2018)
This paper illustrates SPIRAL’s state of the art for exploiting multiple levels of parallelism in new generation processors, including splitting compute and memory access functions to different hardware threads.
D. T. Popovici, T. M. Low, F. FranchettiLarge Bandwidth-Efficient FFTs on Multicore and Multi-Socket SystemsIEEE International Parallel & Distributed Processing Symposium (IPDPS), 2018
Generating Optimized Fourier Interpolation Routines for Density Functional Theory Using SPIRAL (2015)
This is a detailed example of using a collection of techniques in SPIRAL for big performance gains in upsampling large multi-dimensional data sets.
D. A. Popovici, F. Russell, K. Wilkinson, C-K. Skylaris, P. H. J. Kelly, F. FranchettiGenerating Optimized Fourier Interpolation Routines for Density Functional Theory Using SPIRAL29th International Parallel & Distributed Processing Symposium (IPDPS), 2015
When Polyhedral Transformations Meet SIMD Code Generation (2013)
Looking at the general problem of loop optimization, this paper shows how SPIRAL’s SIMD code generation can work together with a polyhedral framework.
M. Kong, R. Veras, K. Stock, F. Franchetti, L.-N. Pouchet, and P. SadayappanWhen Polyhedral Transformations Meet SIMD Code GenerationACM SIGPLAN PLDI, 2013
Automatic Generation of the HPC Challenges Global FFT Benchmark for BlueGene/P (2012)
In 2010 code generated by SPIRAL was part of IBM’s winning submission for the 2010 HPC Challenge Class II. SPIRAL generated a single giant 1D FFT that spanned up to 128K cores.
F. Franchetti, Y. Voronenko, and G. AlmasiAutomatic Generation of the HPC Challenges Global FFT Benchmark for BlueGene/PIn Proceedings of High Performance Computing for Computational Science (VECPAR) 2012
Automatic SIMD Vectorization of Fast Fourier Transforms for the Larrabee and AVX Instruction Sets (2011)
This paper on the successful inclusion of AVX support in SPIRAL was written the same year that the AVX instruction set became available.
Daniel McFarlin, Volodymyr Arbatov, Franz Franchetti and Markus PüschelAutomatic SIMD Vectorization of Fast Fourier Transforms for the Larrabee and AVX Instruction SetsProc. International Conference on Supercomputing (ICS), 2011
Discrete Fourier Transform on Multicores: Algorithms and Automatic Implementation (2009)
This paper discusses problems and solutions to splitting an FFT implementation across multiple cores.
F. Franchetti, Y. Voronenko, S. Chellappa, J. M. F. Moura, and M. PüschelDiscrete Fourier Transform on Multicores: Algorithms and Automatic ImplementationIEEE Signal Processing Magazine, special issue on “Signal Processing on Platforms with Multiple Cores”, 2009.
Generating Non-Transform Kernels
High-Assurance SPIRAL: End-to-End Guarantees for Robot and Car Control (2017)
This feature article showcases a novel application of SPIRAL in the DARPA High Assurance Cyber Military Systems (HACMS) program.
F. Franchetti, T. M. Low, S. Mitsch, J. P. Mendoza, L. Gui, A. Phaosawasdi, D. Padua, S. Kar, J. M. F. Moura, M. Franusich, J. Johnson, A. Platzer, and M. VelosoHigh-Assurance SPIRAL: End-to-End Guarantees for Robot and Car ControlIEEE Control Systems Magazine, 2017, pages 82-103.
Computer Generation of Efficient Software Viterbi Decoders
F. de Mesmay, S. Chellappa, F. Franchetti and M. PüschelComputer Generation of Efficient Software Viterbi DecodersProceedings of International Conference on High-Performance Embedded Architectures and Compilers (HIPEAC), 2010
Operator Language: A Program Generation Framework for Fast Kernels (2009)
Winning a Best Paper Award, this describes Operator Language, which empowers SPIRAL to generate non-transform code.
Franz Franchetti, Frédéric de Mesmay, Daniel S. McFarlin, Markus Püschel:Operator Language: A Program Generation Framework for Fast Kernels.DSL 2009: 385-409
High Performance Synthetic Aperture Radar Image Formation On Commodity Architectures (2009)
In 2009 the SPIRAL folks at CMU figured out how to generate really good Synthetic Aperture Radar (SAR) code.
D. McFarlin, F. Franchetti, M. Püschel and J.M.F. MouraHigh Performance Synthetic Aperture Radar Image Formation On Commodity Architectures.Proceedings of SPIE Conference on Defense, Security, and Sensing, 2009
Copyrights to many of the above papers are held by the publishers. The attached PDF files are preprints. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author’s copyright. These works may not be reposted without the explicit permission of the copyright holder.