Multiple FFT performance


#1

Hi guys,
I’m working on something performing FFT on multiple channels and I wish to increase the performance. It would be better to run multiple background threads or trying to optimize for SIMD (i.e. processing 4 channels at once)?

Thanks!


#2

Hi @zioaxium, if you’re looking for FFT performance (what the juce::FFT class is not dedicated at, as it’s just a utility class), I advocate you look into one of the libraries that do it in an efficient way: Intel IPP, FFTW, kissFFT, FFTS, vDSP etc.


#3

Thanks. I forgot to mention I’m currently using Ooura and the performance is quite good. it’s acceptable for a stereo pair, but since I have to perform it on multiple channels at once, hence the OP. I’m about to try IPP… I read its performance is outstanding.


#4

Just in case you didn’t know, you can run 2 real channels using a single complex fft:
http://www.engineeringproductivitytools.com/stuff/T0001/PT10.HTM


#5

Thanks Mayae, but the imaginary part of the complex number is the most important for my processing.