Using IPP 2019 Update 1, I get a ippStsSizeErr error whenever I call either of the following functions with a length that's greater than 2^26 (67,108,864).
This length limit isn't documented anywhere. Is it expected behavior?
This article indicates that the length limit for the DFT is 2^32: https://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft
Thank you for your time.
The size variables pSizeSpec, pSizeInit, pSizeBuf in function ippsDFTGetSize have int datatype, therefore only vectors which require auxiliary size less than INT_MAX(32bit) can be processed, i.e.:
- for double precision complex DFT (64fc) the length upper bound is 67108863 (2^26 - 1).
- for single precision complex DFT (32fc) the length upper bound is 134217727 (2^27 - 1).
- for double precision complex FFT (64fc) the length upper bound is 2^27.
- for double precision complex FFT (32fc) the length upper bound is 2^28.
You can use DFT from MKL for your task because they support ILP64 for size variables.
Thank you very much for that information. It makes sense. I think it might be helpful to others if this information were officially documented in the IPP Developer Reference as well.