Community
cancel
Showing results for 
Search instead for 
Did you mean: 
thomtek
Beginner
92 Views

ippMalloc/ippsMalloc alignment size

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

Hi Tom,

I will look into this.

Best,

Bjoern

thomtek
Beginner
92 Views

Hi,

Any answer to this question yet?

Tom

Bjoern_B_Intel
Employee
92 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
92 Views

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

Thanks,

Bjoern