Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
7234 Discussions

Performance info for different 2D FFT versions

davva
Beginner
800 Views

I am performing 2D FFT on real data with dimensions 512x512. It is however for simplicitly implemented as a 1024x1024 complex FFT.

I have been searching the Inte pages for info on speed comparing all different 2D FFTs, real, complex, in-place, out of place.

Where can I find som doc on this? Or maybe someone can tell me this info in this thread?

Thanx

0 Kudos
1 Solution
Dmitry_B_Intel
Employee
800 Views


Real to complex transform can be ~2 times faaster than complex-to-complex transform on the same number of elements, 2D or 1D.

The in-place transform is typically slightly faster than out-of-place transform, for it uses less memory transfers. However, it may also be slower, if in-place requires these transfers for particular settings of the problem. This may happen for example if non-unit strides are used.

Dima

View solution in original post

0 Kudos
3 Replies
Dmitry_B_Intel
Employee
800 Views
Hi davva

You can find some performance data on MKL web page, look into FFT section.

Thanks
Dima

0 Kudos
davva
Beginner
800 Views

Hi!

On the MKL web page I could only find one single comparison (2D FFT vs FFTW for two platforms). I want to compare different 2D FFTs on the same platform.

E.g. how much faster is real 2D fft than a complex?

E..g how much faster/slower is in-place than out of place?

0 Kudos
Dmitry_B_Intel
Employee
801 Views


Real to complex transform can be ~2 times faaster than complex-to-complex transform on the same number of elements, 2D or 1D.

The in-place transform is typically slightly faster than out-of-place transform, for it uses less memory transfers. However, it may also be slower, if in-place requires these transfers for particular settings of the problem. This may happen for example if non-unit strides are used.

Dima

0 Kudos
Reply