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

mkl fft

dlanghsd12
Beginner
1,864 Views
I would like to know what the max fft N size is for the dft and fft of the MKL and IPP libraries.
0 Kudos
12 Replies
Todd_R_Intel
Employee
1,864 Views

Hi,

Thanks for posting. For Intel MKL there is no set limit on size of transform, N. You are of course limited practically by the amount of memory you have.

I'm not as familiar with IntelIPP so I will need to check on this.

-Todd

0 Kudos
Todd_R_Intel
Employee
1,864 Views
The same is true for IPP. Memory is the only thing limiting the size of transform performed on either MKL or IPP. -Todd
0 Kudos
dlanghsd12
Beginner
1,864 Views
Thanks for the reply!
So is it limited by the range of the int data type used for the size of the FFT and the amount of memory?
0 Kudos
Todd_R_Intel
Employee
1,864 Views
Yes. You're right of course abouth the in data type being a limiting factor as well. -Todd
0 Kudos
nathanlacey
Beginner
1,864 Views
I'm writing a FFT Plan pool for DFT, after allocating 16 or 17 plans, regardless of size, the runtime fails to create another plan, and returns the error message, DFTI_MEMORY_ERROR, Is there anything I can do to bypass this limitation?
Thanks in advance
Nathan
0 Kudos
Todd_R_Intel
Employee
1,864 Views
Interesting. I hadn't seen this behavior before. Have you submitted an issue at IntelPremier support?
Is anyone else having trouble with this?
I'll ask around.
0 Kudos
nathanlacey
Beginner
1,864 Views
I haven't done anything yet, I thought it was a "feature",
I'm running on Redhat 2.1, icc 7(latest?)
0 Kudos
Todd_R_Intel
Employee
1,864 Views
The memory management software limits the number of memory allocations. You can turn it off (see http://www.intel.com/software/products/mkl/docs/mklusel.htm#Memory%20Management), but this may decrease performance since you will be allocating memory with each function call.
Todd
0 Kudos
nathanlacey
Beginner
1,864 Views
Todd,
Thanks for the reply,
MKL_DISABLE_FAST_MM worked.
I still use my fall-back fft library for small fft's <256 bytes, to bypass the mallocing overhead problem.
I would think the memory manager would have a fall back mode, (dynamicly allocate more memory) if it ran out of "pre-allocated" resources!!
That way the end use would have the best of both worlds.
0 Kudos
c-stork
Beginner
1,864 Views
The DFTI_MEMORY_ERROR doesn't seem to occur consistently on my application.
I am performing a lot of large 2D fft's. They have different sizes so I call DftiCreateDescriptor and DftiCommitDescriptor a lot.
One the same idle machine, in once case I got the DFTI_MEMORY_ERROR error on a 2D complexfft of size about 6400 x 2500 and then later I got it again with a size of 3900 x 2000. My machine has 2 gigabytes of memory a 4 gigabytes of virtual.
These sizes are not very large. The first one uses only 128 megabytes and the second one only 62 megabytes.
I'm concerned that the mkl fft isn't reliable enough. Can you give me more indication of what causes it and how to predict when I'm in danger?
My decriptors are pretty simple:
Code:
      DftiCreateDescriptor( &desc, DFTI_SINGLE, DFTI_COMPLEX, 2, dimen);


0 Kudos
c-stork
Beginner
1,864 Views

DFTI_MEMORY_ERROR is declared in mkl_blas.h, but it's not defined in mkl_c_dll.lib . I couldn't find it in a lib. What lib is it defined in?

This is MKL 8.0.

Message Edited by C-Stork on 10-23-2005 05:54 PM

0 Kudos
Todd_R_Intel
Employee
1,864 Views

DFTI_MEMORY_ERROR is a constant declared in the header files (although I find it in mkl_dfti.h). Since it is not a function you won't find it in the libraries. This constant is described in the section of the manual on the DftiErrorClass function.

-Todd

0 Kudos
Reply