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

fftwf_plan_r2r_2d failing - expects rank of 1?

stele
Beginner
517 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
517 Views
Hi Paul,

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

Dima
0 Kudos
stele
Beginner
517 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.

0 Kudos
Dmitry_B_Intel
Employee
517 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
0 Kudos
Reply