SPIRAL Project: Home Page (original) (raw)

This is the home page of the SPIRAL project. The goal of SPIRAL is to push the limits of automation in software and hardware development and optimization for digital signal processing (DSP) algorithms and other numerical kernels beyond what is possible with current tools. Our basic research question is Can we teach computers to write fast libraries? Our flagship is the SPIRAL program generation system, which, entirely autonomously, generates platform-tuned implementations of signal processing transform such as the discrete Fourier transform, discrete cosine transform, and many others. Look at a few benchmarks. But we also provide other online generators (see the right column). SPIRAL addresses one of the current key problems in numerical software and hardware development: how to achieve close to optimal performance with reasonable coding effort? (More detailed problem statement.) SPIRAL comprises an interdisciplinary team of researchers in the areas of signal processing, algorithms, scientific computing, compilers, computer architecture, and mathematics. In the domain of linear transform, and for standard multicore platforms (Core 2 Duo like), we have achieved complete automation: the computer generation of general input-size, vectorized, parallel libraries. Learn Quickly About SPIRAL This short article in the recent Encyclopedia of Parallel Computing describes the main ideas behind our program synthesis work for transforms: Markus Püschel, Franz Franchetti and Yevgen Voronenko SPIRAL in Encyclopedia of Parallel Computing, Eds. David Padua, Springer 2011 Selected Talks F. Franchetti SPIRAL: AI for High Performance Code with a Side of FFTX Alphabet Inc., August 2021, virtual F. Franchetti SPIRAL: AI for High Performance Code Joint work with SPIRAL team at CMU and FFTX team at CMU and LBL Oak Ridge National Laboratory, October 2019Good Choice for Citing SPIRAL (Overview Paper) Franz Franchetti, Tze Meng Low, Doru Thom Popovici, Richard M. Veras, Daniele G. Spampinato, Jeremy R. Johnson, Markus Püschel, James C. Hoe, and José M. F. Moura SPIRAL: Extreme Performance Portability Proceedings of the IEEE special issue on From High Level Specification to High Performance Code, Vol. 206, No. 11, 2018 Markus Püschel, José M. F. Moura, Jeremy Johnson, David Padua, Manuela Veloso, Bryan W. Singer, Jianxin Xiong, Franz Franchetti, Aca Gacic, Yevgen Voronenko, Kang Chen, Robert W. Johnson, Nicholas RizzoloSPIRAL: Code Generation for DSP Transforms Proceedings of the IEEE Special Issue on "Program Generation, Optimization, and Adaptation," Vol. 93, No. 2, 2005, pages 232-275 After this paper we started to attack all forms of parallel platforms and the generation of entire libraries like FFTW. A good reference for the last version of Spiral is the encyclopedia article above. Research Threads Hyper-portable future-proof computational kernels with SPIRAL (BRASS) Application-specific processor/program co-synthesis (PERFECT) Scalability and performance portability (HACMS) Generalized roofline model for bottleneck analysis Spiral prototype in Scala using LMS Applying the roofline model Program generator for linear algebra: LGen PAL (Pareto Active Learning) Algorithm for Multi-objective Optimization Optimized sparse FFT DFT code generation for the Cell BE DFT IP generation for FPGAs Software generation for Viterbi decoding Multi-gigabit optical OFDM Contact If you have questions or comments about SPIRAL or our work in general, please send email to help (at) spiral.net. Open Source SPIRAL System Open Source SPIRAL is available here under non-viral license (BSD-style license). See the SPIRAL User Manual for more information. Please let us know which parts of SPIRAL you are most interested in. Commercial support is available via SpiralGen, Inc. SPIRAL was developed over 20 years by the SPIRAL team under funding from DARPA (OPAL, DESA, HACMS, PERFECT, BRASS), NSF, ONR, DoD HPC, JPL, DoE, CMU SEI, Intel, Nvidia, and Mercury. The open sourcing of SPIRAL is an ongoing effort. The initial open source version of SPIRAL was supported by DARPA PERFECT. Please subscribe to spiral-info@lists.andrew.cmu.edu to stay up-to-date regarding SPIRAL updates and new releases.Access the SPIRAL Tutorial here. Access the SPIRAL Manual here. Spiral FFTX and SPIRAL FFTX is the exascale follow-on to the FFTW open source discrete FFT package for executing the Fast Fourier Transform as well as higher-level operations composed of linear operations combined with DFT transforms. At the heart of FFTX is a build-time code generator, SPIRAL, that produces very high performance kernels targeted to their specific uses and platform environments. Go to the FFTX project page. FFTX Online Generators We provide a number of online generators, which are easy and fun to use or play with.Online generators currently available DFT = discrete Fourier transform, DCT = discrete cosine transform. Browse other software and hardware. Featured Result References D. T. Popovici, T. M. Low, F. Franchetti Large Bandwidth-Efficient FFTs on Multicore and Multi-Socket Systems IEEE International Parallel & Distributed Processing Symposium (IPDPS), 2018 More benchmarks. Spiral in the Encyclopedia of Parallel Computing How to Cite SPIRAL See bottom left of this page.