数组在索引处的内存对齐
Memory alignment of an array at an index
是否可以告诉编译器 vector[index]
对特定索引具有 128 位内存对齐?
或者,我们不能用索引来做,而必须用指针来做?
我很少能回答 C 题...但混合语言会有所帮助。
我想他是在问是否有类似icc的东西/
#pragma assume aligned : 64 ::A
,或类似的东西...在 ifort 中是
!DIR$ ASSUME_ALIGNED :64 :: A
还有数组对齐的编译器开关,都是为了辅助内存传输。我发现这是一个很好的做法。
https://software.intel.com/en-us/node/522571
在英特尔 Xeon-Phi 和 AXV-512 网络研讨会上也有很多这样的东西,所以我假设有一个 gcc 等价物。只需跳过 128 并转到 512(64 字节),然后您就可以使用 AVX 512 了;)
能上256似乎预示着AVX 2K的希望
是否可以告诉编译器 vector[index]
对特定索引具有 128 位内存对齐?
或者,我们不能用索引来做,而必须用指针来做?
我很少能回答 C 题...但混合语言会有所帮助。
我想他是在问是否有类似icc的东西/
#pragma assume aligned : 64 ::A
,或类似的东西...在 ifort 中是
!DIR$ ASSUME_ALIGNED :64 :: A
还有数组对齐的编译器开关,都是为了辅助内存传输。我发现这是一个很好的做法。
https://software.intel.com/en-us/node/522571
在英特尔 Xeon-Phi 和 AXV-512 网络研讨会上也有很多这样的东西,所以我假设有一个 gcc 等价物。只需跳过 128 并转到 512(64 字节),然后您就可以使用 AVX 512 了;)
能上256似乎预示着AVX 2K的希望