内存对齐处理器是依赖还是依赖于数据或缓存行长度?

时间:2016-03-16 12:28:27

标签: c caching double memory-alignment

我动态声明array of doubles C Intel Sandy Bridge E5-2670针对的cache line size of 64 bytes处理器_mm_malloc()使用8 byte aligned

我的问题是:

  1. 阵列应该是64 byte aligned(即大小是多少)?
  2. 由于缓存行大小为64字节,数组应该是32 byte aligned吗?
  3. 阵列应该是{{1}}( Saini et.al。的文章中提到的AVX指令)?

1 个答案:

答案 0 :(得分:0)

好的,所以SSE的16字节对齐,然后是AVX,AVX2的32字节对齐(不是必需的,但它使生活更轻松,并且可以在性能上产生小的差异)。 - 保罗R