聚集预取内在_mm512_mask_prefetch_i32gather_ps
可用于在Knights Corner上预取32位浮点数。
由于不存在相应的双精度内在函数,如何将此内在函数用于预取64位或128位元素?
是否需要显式预取每个4字节块,或者我们是否可以假设32位变量的每个预取实际上都会预取它占用的整个64字节高速缓存行?
示例:
我想从基地{1,2,10,12}
预取偏移0xf0000000
的4个双打。
这对应于{0xf0000008, 0xf0000010, 0xf0000050, 0xf0000060}
。
这些占用从{0xf0000000, 0xf0000040}
开始的两个缓存行。
将_mm512_mask_prefetch_i32gather_ps
与这两个缓存行的基地址一起使用是否足够?
我最初在英特尔MIC论坛上发布此问题但没有成功。