Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

FFTW3 many real-to-real 1D

Codara__Giorgio
Beginner
336 Views

Hello,

I have a code written with FFTW3 that performs many real-to-real 1D dct and I want to move to MKL to increase performance.

I read into docs (https://software.intel.com/content/www/us/en/develop/documentation/mkl-developer-reference-c/top/app...) that multidimensional r2r transforms are not supported, instead multidimensional vector transforms are supported until howmany_rank is 0 or 1.

Data are stored in memory as 8100 rows and 11*11 columns in column-major order. I need to perform r2r dct only on first 11 columns, thus my code performs 8100 real-to-real dct of 1D data of size 11, stride 1 and distance 11*11 with following:

int rank = 1
int size = 11
int n[] = {size}, embed[] = {size}
int stride = 1, dist = size*size
fftw_r2r_kind k[] = { FFTW_REDFT10 }

fftwf_plan_many_r2r(rank, n, 8100, pdata, embed, stride, dist, pdata, embed, stride, dist, k, FFTW_FORWARD)

 

This works fine with FFTW3, but when I move to MKL FFTW3 wrapper resulting plan is NULL, although porting should be straightforward.

What am I doing wrong? Is it possible to perform multidimensional vector transform with r2r 1D data?

This is my environment configuration:

MKL Version: 2020.0.4
OS: Windows 10 - 64 bit
Built under Visual Studio 2019 with vc140 compiler

If you need I can provide a complete example.
Thank you for your support

0 Kudos
2 Replies
Gennady_F_Intel
Moderator
307 Views

I am not sure but did you check the fftw3 examples from mklroot\examples\fftw3xc\source\ directory?


Codara__Giorgio
Beginner
301 Views

Hi,

Thank you for answering!


Yes, I've already checked examples directory. I've only found sp/dp_plan_r2r_1d for real-to-real transform, and sp/dp_plan_many_dft, sp/dp_plan_many_dft_r2c, sp/dp_plan_many_dft_c2r for multidimensional vector transforms.

There is no sp/dp_plan_many_r2r.

Reply