3

收集预取内在函数_mm512_mask_prefetch_i32gather_ps可用于在 Knights Corner 上预取 32 位浮点数。

由于不存在对应的双精度内在函数,如何将这个内在函数用于预取 64 位或 128 位元素?

是否需要显式预取每个 4 字节块,或者我们是否可以假设每个 32 位变量的预取实际上会预取它占用的整个 64 字节缓存行?

例子:

我想在{1,2,10,12}基地址的偏移量处预取 4 个双精度0xf0000000的偏移量处预取 4 个双精度数。

这对应于 的地址{0xf0000008, 0xf0000010, 0xf0000050, 0xf0000060}

这些占用从 开始的两个缓存行{0xf0000000, 0xf0000040}

_mm512_mask_prefetch_i32gather_ps使用这两个缓存行的基地址就足够了吗?

我最初在英特尔 MIC 论坛上发布了这个问题,但没有成功。

4

0 回答 0