High-performance sparse fast Fourier transforms

The sparse fast Fourier transform (SFFT) is a recent novel algorithm to compute discrete Fourier transforms on signals with a sparse frequency domain with an improved asymptotic runtime. Reference implementations exist for different variants of the algorithm and were already shown to be faster than state-of-the-art FFT implementations in cases of sufficient sparsity. However, to date the SFFT has not been carefully optimized for modern processors. In this paper, we first analyze the performance of the existing SFFT implementations and discuss possible improvements. Then we present an optimized implementation. We achieve a speedup of 2-5 compared to the existing code and an efficiency that is competitive to highperformance FFT libraries.

[1]  Steven G. Johnson,et al.  FFTW: an adaptive software architecture for the FFT , 1998, Proceedings of the 1998 IEEE International Conference on Acoustics, Speech and Signal Processing, ICASSP '98 (Cat. No.98CH36181).

[2]  Piotr Indyk,et al.  Faster GPS via the sparse fourier transform , 2012, Mobicom '12.

[3]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[4]  Mark A. Iwen,et al.  Empirical evaluation of a sub-linear time sparse DFT algorithm , 2007 .

[5]  Yishay Mansour,et al.  Randomized Interpolation and Approximation of Sparse Polynomials , 1992, SIAM J. Comput..

[6]  J. Markel,et al.  FFT pruning , 1971 .

[7]  Franz Franchetti,et al.  SPIRAL: Code Generation for DSP Transforms , 2005, Proceedings of the IEEE.

[8]  Jörn Schumacher High performance Sparse Fast Fourier Transform , 2013 .

[9]  Franz Franchetti,et al.  Generating high performance pruned FFT implementations , 2009, 2009 IEEE International Conference on Acoustics, Speech and Signal Processing.

[10]  Piotr Indyk,et al.  Nearly optimal sparse fourier transform , 2012, STOC '12.

[11]  Franz Franchetti,et al.  Discrete fourier transform on multicore , 2009, IEEE Signal Processing Magazine.

[12]  Piotr Indyk,et al.  Simple and practical algorithm for sparse Fourier transform , 2012, SODA.

[13]  Matteo Frigo A Fast Fourier Transform Compiler , 1999, PLDI.