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

Issue when multiplying 0 to large arrays

Animesh
Beginner
1,439 Views

We came to find that multiplication of an array (F32, F64, I32) with a scalar of 0 leaves (most of) the array untouched. For F32, this behavior starts with array sizes of 2^29 and up; for F64, it starts at 2^28 already. For I32 also, the behavior starts from 2^29. We have also tried CF32 and CF64 but they seem to work fine (checked until 2^30).

Description

IPP Function

Number of elements at which issue occurs

F32 in place

ippsMulC_32f_I  

2^29    

F64 in place

ippsMulC_64f_I

2^28

I32 in place

ippsMulC_32s_Isfs

2^29

CF32 in place

ippsMulC_32fc_I

no issue observed up to 2^29

CF64 in place

ippsMulC_64fc_I

no issue observed up to 2^29

F32 out of place

ippsMulC_32f

2^29

F64 out of place

ippsMulC_64f

2^28

I32 out of place

ippsMulC_32s_Sfs

2^29

CF32 out of place

ippsMulC_32fc

no issue observed up to 2^30

CF64 out of place

ippsMulC_64fc

no issue observed up to 2^30

 

I have attached a standalone C++ code which reproduces the behavior.
The behavior was checked on IPP 2021.8.0.

The example code creates an array of fixed size. It runs correctly for F32 (until size 2^29-1), but will show the error for F64. Any larger array size will show the error for both.

Labels (1)
0 Kudos
1 Solution
Gennady_F_Intel
Moderator
1,374 Views

Yes, that's correct that not all IPP functions are available for platform - aware extensions ( to support of 64-bit integer size). In particularly, this ippsMulC_*.* is not available for platform-aware capabilities. We are continue to extend the list of such functions from case by case.

 

View solution in original post

0 Kudos
3 Replies
Wobo
Novice
1,389 Views

Ok, I am no Intel staff. But I assume it has to do with that:

https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-oneapi/2022-2/ipp-using-platform-aware-functions.html

This burden of the 32-bit size limitation of many many IPP functions is quite often dangerous for our 64-bit applications, where we have to deal with huge data sets. Creation of some platform aware 64-bit enabled functions are a good start by Intel, but my wish is make all IPP function properly usable in a 64-bit environment.

 

Kind Regards

Gennady_F_Intel
Moderator
1,375 Views

Yes, that's correct that not all IPP functions are available for platform - aware extensions ( to support of 64-bit integer size). In particularly, this ippsMulC_*.* is not available for platform-aware capabilities. We are continue to extend the list of such functions from case by case.

 

0 Kudos
ShanmukhS_Intel
Moderator
1,348 Views

Hi Animesh Baranawal,


Thanks for posting in Intel communities.


Thanks for reporting this issue. We were able to reproduce the same at our end and we have informed the development team about it. We will get back to you with an update soon.


Best Regards,

Shanmukh.SS



0 Kudos
Reply