Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.

ippMalloc/ippsMalloc alignment size

thomtek
Beginner
275 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-...

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
276 Views

Hi Tom,

I will look into this.

Best,

Bjoern

thomtek
Beginner
276 Views

Hi,

Any answer to this question yet?

Tom

Bjoern_B_Intel
Employee
276 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

Bjoern_B_Intel
Employee
276 Views

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

Thanks,

Bjoern

Reply