Real to Complex transforms for large prime sizes (64 bit vector lengths)

Intel® MKL has removed the last limitation on the size of 1D Fast Fourier Transforms ( FFT ) in Intel MKL 11.0 for SMP systems.

On systems with sufficiently large physical memory installed, users of Intel® MKL 11.0 (and later versions) have the possibility of computing large FFTs – real and complex 1D FFTs of lengths up to 2^59 double-precision numbers or 2^60 single-precision numbers.

The following table explains which version of Intel MKL for SMP systems supports which type of large FFTs:

Complex FFT > 2^29 bytes

R2C FFT > 2^29 bytes (*)

Conditionally composite(***) FFT lengths



Conditionally prime (***) FFT lengths



The Intel MKL library for clusters supports large FFTs of composite length starting with Intel MKL version 8.0.

Here are requirements to available physical memory :

In order to compute large FFTs, Intel MKL 11.0 may need a considerable amount of physical memory to store its internal data in addition to the FFT input and output (**).
The most memory-consuming large FFTs are real FFTs of prime lengths of the form 2^n+1.

The following table shows the amount of memory allocated by Intel MKL 11.0 in order to compute large FFTs of different types.

Complex FFT > 2^29 bytes

R2C FFT > 2^29 bytes (*)

Conditionally composite(***) FFT lengths

Up to 24*(N+M) bytes == FFT length

Extra 3x size of FFT

Conditionally prime(***) FFT lengths

Extra 6-12x size of FFT

Extra 12-24x size of FFT

Applications that use Intel MKL 11.0 to compute large FFTs are responsible for checking the status code returned by these routines to detect the insufficient-memory cases that may arise.


*R2C stands for Real-To-Complex calculations

** Large FFTs in Intel MKL 11.0 neither support external storage (“out-of-core”), nor are they optimized to use the system virtual memory.
*** A number is "conditionally composite" if it is a power of 2 less than 27 for SP FFT or 26 for DP FFTs, or if it is product of factors less than 2^25 for SP FFTs or 2^24 for DP FFTs. Other numbers are "conditionally prime".

For more complete information about compiler optimizations, see our Optimization Notice.