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

ippMalloc/ippsMalloc alignment size

thomtek
Novice
910 Views

According to the IPP user manual, ippMalloc() and ippsMalloc_xxx() provide buffers aligned to 64-byte boundaries.  But an IPP web page says they align to 32-byte boundaries:  https://software.intel.com/en-us/articles/performance-tools-for-software-developers-memory-function-faq

We are going to use _aligned_malloc() for large buffer memory allocation and want to set the alignment paramter to give the same alignment as IPP does.  Should we use 32-byte or 64-byte alignment?

Tom

0 Kudos
4 Replies
Bjoern_B_Intel
Employee
911 Views

Hi Tom,

I will look into this.

Best,

Bjoern

0 Kudos
thomtek
Novice
911 Views

Hi,

Any answer to this question yet?

Tom

0 Kudos
Bjoern_B_Intel
Employee
911 Views

Hi Tom,

You are right, the documentation is inconsistent here. The article on the IPP web page is quite some years old while we changed the alignment to 64-byte. This is true for all kinds of ippMalloc functions as we also need to support AVX with 512-bit vectors which by nature has to be 64-byte aligned. We will change and update the ippMalloc article on the IPP web page accordingly.

So please use 64-byte alignment in your application to be aligned with the ippMalloc functions.

Thanks for reporting the issue so we can fixed the documentation.

Best,

Bjoern

0 Kudos
Bjoern_B_Intel
Employee
911 Views

Remark: Article Intel® IPP Memory Function ippMalloc/Free FAQ got updated. This request will get closed.

Thanks,

Bjoern

0 Kudos
Reply