Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
49 Views

FFTW3 many real-to-real 1D

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
Highlighted
Moderator
20 Views

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


0 Kudos
Highlighted
14 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.

0 Kudos