Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

ippsmalloc failing with NULL return

ipp_dev_bri
Beginner
845 Views

Hello,

 

We are trying to allocate memory using the ippsmalloc_32fc() method.  We have found one case where the allocation is failing and the return value is NULL.  It is failing with the following size:

 

ippsMalloc_32fc(1024 * 50176);

 

Can someone please tell me why the above call is failing?

 

Thanks for your help!

0 Kudos
1 Solution
Wobo
New Contributor I
699 Views

Hi,

in my understanding it is quite simple...most of such IPP functions are limited to 2GiB...with ippsMalloc_32fc(sizeof(Ipp32fc) * 1024 * 50176); you try to alloc 8 * 411041792 => 3.288.334.336 bytes...that is far beyond the 2GiB limit and cannot succeed.

 

Kind Regards

 

View solution in original post

4 Replies
Ruqiu_C_Intel
Moderator
816 Views

Just checked in my end(oneAPI 2025.0, Windows 10), looks everything is fine. 

Ruqiu_C_Intel_0-1733195521851.png

Please share us your IPP version, compiler, OS, CPU, etc.  

0 Kudos
ipp_dev_bri
Beginner
755 Views

Actually, the more accurate method call is as follows:

 

ippsMalloc_32fc(sizeof(Ipp32fc) * 1024 * 50176);

 

The IPP version being used is 2020.4.311.  The Windows OS version is Windows 10.  The compiler being used is Visual Studio 2017.  The build memory format is x64.  The CPU version is Intel I9-10980XE.

Ruqiu_C_Intel
Moderator
723 Views

Thank you for the information!

This function allocates memory block aligned to 64-byte boundary for elements of different data types in IPP document here:https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2022-0/malloc-002.html

 

0 Kudos
Wobo
New Contributor I
700 Views

Hi,

in my understanding it is quite simple...most of such IPP functions are limited to 2GiB...with ippsMalloc_32fc(sizeof(Ipp32fc) * 1024 * 50176); you try to alloc 8 * 411041792 => 3.288.334.336 bytes...that is far beyond the 2GiB limit and cannot succeed.

 

Kind Regards

 

Reply