3
$\begingroup$

MKL and FFTW offer 1-D FFTs that can operate on many inputs simultaneously - in other words, they can batch-transform the columns of some input matrix. Is the performance of these multi-transforms significantly superior to just looping over the inputs (assuming they are stored as columns of the same matrix) and performing individual FFTs on each column? Google has turned up nothing, and I do not presently have the ability to test this out.

$\endgroup$
3
$\begingroup$

From the old document: Intel® Math Kernel Library FFT to DFTI Wrappers, A314775-001US:

All transforms require additional memory to store the transform coefficients. When performing multiple FFTs of the same dimension, the table of coefficients should be created only once and then used on all the FFTs afterwards. Using the same table rather than creating it repeatedly for each FFT produces an obvious performance gain.

This gives an explanation from where the savings will come. Now, the actual amount of savings would depend on the size of your vectors, machine architecture you work with, and many other factors. So, you would need to benchmark on the relevant dataset to answer your question, especially since the definition of "significantly superior" may differ from "5%" to "200%" depending on the person who judges.

However, I would wonder why to avoid using the offered capabilities of Intel MKL and FFTW to perform multiple FFTs simultaneously even if the savings are not as drastic as one would hope.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.