我正在 C
中动态声明一个 double 组
,目标是具有缓存的
。Intel Sandy Bridge E5-2670
处理器使用 _mm_malloc()
的行大小为 64 字节
我的问题是:
- 数组应该
8 字节对齐
(即 double 的大小)吗? - 由于缓存行大小为 64 字节,数组是否应该
64 字节对齐
? - 数组是否应该
32 字节对齐
(Saini 等人在 AVX 指令的论文中提到)?
最佳答案
好的,那么 SSE 的 16 字节对齐,AVX、AVX2 的 32 字节对齐(不是必需的,但它使生活更轻松,并且可以在性能上产生微小的差异)。 – 保罗·R
关于c - 内存对齐处理器是否依赖、数据依赖或高速缓存行长度依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36035705/