Sessi MCP: An optimized FFT library for 3D real-valued small-size data

The use of Fast Fourier Transform (FFT) is ubiquitous in computational science. Its usage varies from solving Partial Differential Equations, to calculating convolutions, to performing spectral analysis. While several FFT libraries are already available, we focus on the development and implementation of an FFT library, specifically designed to solve the FFT of 3D real-valued small size (<= 128 element per dimension) data. For such cases, our goal is to achieve better performance of existing FFT libraries.

The most used FFT library by the scientific community is FFTW, an auto-tuned library developed at MIT in the Eighties. While FFTW has evolved during the last decades, it still doesn’t fully support all the relevant Single-Instruction Multiple-data (SIMD) sets, e.g. AVX, AVX512, IBM VSX, ARM Neon and it uses SIMD only within the calculation of one single FFT. Instead, our approach is based on using SIMD for solving several small (<= 128 elements) FFT in parallel on several SIMD sets. We focus on 3D and real-valued data as this case is very relevant to the solution of Particle Mesh Ewald (PME) in GROMACS.

The library is designed to be fast deployed in GROMACS for PME calculation and will provide a Fortran interface to be used in Nek5000.