- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have been trying to use MKL to perform fast, large FFTs on a 64 bit Windows system, but I seem to have run into an upper limit on array size. I have been able to perform 128 Msample FFTs with no problem, but 512 Msample give me an error code 7 during the DftiCommitDesciptor call. I am compiling under VC++ 2008, with MKL_ILP64 defined in my stdafx.h header. The specific sequence of steps I am using is:
DftiCreateDescriptor(&h, DFTI_SINGLE, DFTI_REAL, 1, N); // N = 512*1024L*1024L
DftiSetValue(h, DFTI_PACKED_FORMAT, DFTI_PERM_FORMAT);
DftiCommitDescriptor(h);
The create and set value calls return OK.
The test machine has 12G or RAM. As a test, I tried allocating very large byte arrays, and I was able to allocate 16G of contiguous memory with no problems.
Am I running into a limit of MKL/DFTI? Or is there a work-around?
DftiCreateDescriptor(&h, DFTI_SINGLE, DFTI_REAL, 1, N); // N = 512*1024L*1024L
DftiSetValue(h, DFTI_PACKED_FORMAT, DFTI_PERM_FORMAT);
DftiCommitDescriptor(h);
The create and set value calls return OK.
The test machine has 12G or RAM. As a test, I tried allocating very large byte arrays, and I was able to allocate 16G of contiguous memory with no problems.
Am I running into a limit of MKL/DFTI? Or is there a work-around?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello barry0727,
Currently, MKL can't do real-to-complex single-precision transforms of lengths >= 256Mbecause of an internal limitation.
In MKL 10.2 Update 1 and earlier versions, DftiCommitDescriptorsignals this fact by an incorrecterror code.
Error handling in DftiCommitDescriptorwill be fixed in the future MKL release.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - espetrov
Hello barry0727,
Currently, MKL can't do real-to-complex single-precision transforms of lengths >= 256Mbecause of an internal limitation.
In MKL 10.2 Update 1 and earlier versions, DftiCommitDescriptorsignals this fact by an incorrecterror code.
Error handling in DftiCommitDescriptorwill be fixed in the future MKL release.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Transforms ofsizes >= 2G are a known limitationin MKL 10.2 http://software.intel.com/en-us/articles/known-limitations-in-intel-mkl-10-2/
De facto MKL 10.2 handles 1D complex-to-complex transforms if their length is a product of factors < 64M butisn'ta power of 2 (single precision) or is a product of factors < 32M (double precision.)
Other transforms of sizes >= 2G are not supported currently.
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