Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

IPP 2019 Update 1 DFT Length Limit?

Beer__Austin
Beginner
660 Views

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).

ippsDFTGetSize_C_64fc()

ippsDFTInit_C_64fc()

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.

0 Kudos
4 Replies
Gennady_F_Intel
Moderator
660 Views

Thanks for report. This looks like a error, we will check.

0 Kudos
ArtemMaklaev
Employee
660 Views

Hello,

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.

0 Kudos
Beer__Austin
Beginner
660 Views

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.

0 Kudos
Gennady_F_Intel
Moderator
660 Views

Thanks for the issue, we definitely will update IPPs documentation and existing KB article you referred to as well.

0 Kudos
Reply