Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6621 Discussions

fftwf_plan_r2r_2d failing - expects rank of 1?

stele
Beginner
214 Views
I am evaluating the Intel C++ compiler and MKL and have run into a snag. I have some existing fftw code that uses fftwf_plan_r2r_2d() to do an in-place FFT on non-power-of-two image data.

Using MKL fftwf_plan_r2r_2d is returning null. I brought in the wrapper code so I could step into it and the problem is in fftw_plan_guru64_r2r() where it expects a rank of 1.

If fftwf_plan_r2r_2d() handles rank 2 data and it delegates down to fftw_plan_guru64_r2r(), shouldn't that function handle rank 2d data?

I confess I'm a complete moron when it comes to FFT stuff - I'm just using some code I inherited. But it was working with the real fftw library.

Any tips?

0 Kudos
3 Replies
Dmitry_B_Intel
Employee
214 Views
Hi Paul,

Thank you for trying MKL. FFTW3 interfaces that MKL provides do not support multidimensional r2r transforms.

Dima
stele
Beginner
214 Views
Thanks for the confirming that Dmitry. Can you tell me what an alternative way to do a 2D non-power-of-two transform and back - a rough equivalent to fftwf_plan_r2r_2d, that MKL does support? I was using that function to do an in-place cosine only transform.

Dmitry_B_Intel
Employee
214 Views
Paul,

To date MKL supports only a limited set ofr2rtransforms, specifically 1D stride-1 one-transform-per-call sine and cosine transforms. An option to do 2D cosine with MKL is to implement row-col algorithm using these 1D transforms and transposition functions.

Thanks
Dima
Reply