- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like to know what the max fft N size is for the dft and fft of the MKL and IPP libraries.
Link Copied
12 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The same is true for IPP. Memory is the only thing limiting the size of transform performed on either MKL or IPP. -Todd
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
So is it limited by the range of the int data type used for the size of the FFT and the amount of memory?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes. You're right of course abouth the in data type being a limiting factor as well. -Todd
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I haven't done anything yet, I thought it was a "feature",
I'm running on Redhat 2.1, icc 7(latest?)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page