Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

ipp: ippsFFTFwd_CToC_32fc with stride

veredz72
Beginner
894 Views

Hello,

I have a 128(rows) x 5120 (columns) matrix.

Each element is complex (i+ jq) 

I have to calculate FFT on each columns

Is it wise to run transform on this matrix to : 5120(rows) x (128 (columns) 

And then run FFT on each row ?

In this case the columns are not contiguous in virtual memory. 

 

Thank you,

Zvika 

0 Kudos
1 Solution
Ruqiu_C_Intel
Moderator
779 Views

Hello Zvika,

IPP FFT functions don't support stride. https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-10/fftfwd-ctoc.html

For your case, if need calculate each columns FFT of128(rows) x 5120 (columns) matrix, transpose the matrix to 5120(rows) x (128 (columns) is necessary.

Intel Math Kernel Library provides FFT functions which have stride parameters: https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2024-0/dfti-input-strides-dfti-output-strides.html, but need your check whether it works or not for your application

 

- Ruqiu

 

View solution in original post

0 Kudos
2 Replies
Ruqiu_C_Intel
Moderator
780 Views

Hello Zvika,

IPP FFT functions don't support stride. https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-10/fftfwd-ctoc.html

For your case, if need calculate each columns FFT of128(rows) x 5120 (columns) matrix, transpose the matrix to 5120(rows) x (128 (columns) is necessary.

Intel Math Kernel Library provides FFT functions which have stride parameters: https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2024-0/dfti-input-strides-dfti-output-strides.html, but need your check whether it works or not for your application

 

- Ruqiu

 

0 Kudos
veredz72
Beginner
746 Views

Hi Ruqiu,

 

Thank you very much for your reply.

In my opinion,  IPP should contain also FFT with stride and also to handle non interleaved complex numbers will all operations.

From what I know, x86 has the best performance with non-interleaved data.

 

Best regards,

Zvika

 

0 Kudos
Reply