RustFFT 5.0.0-experimental.1: Now faster than FFTW!

Today, I released RustFFT 5.0.0-experimental.1!

RustFFT is a high-performance FFT library written in pure Rust. Version 5.0.0-experimental.1 implements AVX acceleration and is 5x-10x faster than RustFFT 4.0.0 at every FFT size.

More notably, with this release, RustFFT beats FFTW in performance, one of the industry-leading FFT libraries! To make the comparison, I used the Fourier crate's very useful benchmarks, which compare the performance of RustFFT, Fourier, and FFTW. I found that, at every single size I tested, RustFFT was either equivalent in speed to FFTW, or faster.

With this release, Rust users no longer have to choose between the convenience of a pure-Rust FFT library and the speed of FFTW: RustFFT brings both!

RustFFT 5.0.0-experimental.1 is marked as an experimental release, because it currently requires nightly for the min_specialization feature. Once I can get it compiling on stable Rust, it will become RustFFT 5.0.

I'm also considering other SIMD instruction sets. RustFFT currently only supports AVX -- I'm open to supporting instruction sets for other targets like NEON or AVX-512 or even a future library like std::simd, but Rust's support for those is currently nightly-only and incomplete. They're also predicated on me finding a machine to benchmark on, so overall I'd prefer not to hold back the AVX release on those.

61 Likes

Great work!

Is it also faster than FFTS? (Fastest Fourier Transform in the South, which is faster than FFTW)

That's amazing!

That's really awesome! I'm using RustFFT for a DSP project, and it's great to see how faster it is.
Thanks a lot for your work :slightly_smiling_face:

1 Like

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.