Будет ли _mm512_mask_prefetch_i32gather_ps() предварительно извлекать целую строку кэша для каждого элемента?
Собрать предварительную выборку _mm512_mask_prefetch_i32gather_ps
может использоваться для предварительной выборки 32-битных чисел в Knights Corner.
Поскольку соответствующей встроенной функции для двойников не существует, как следует использовать эту встроенную функцию для 64- или 128-битных элементов предварительной выборки?
Должен ли каждый 4-байтовый блок быть явно предварительно выбранным, или мы можем предположить, что каждый предварительный выбор 32-битной переменной будет фактически предварительно выбирать всю 64-байтовую строку кэша, которую он занимает?
Пример:
Я хочу предварительно выбрать 4 двойных по смещению {1,2,10,12}
с базового адреса 0xf0000000
,
Это соответствует адресам {0xf0000008, 0xf0000010, 0xf0000050, 0xf0000060}
,
Они занимают две строки кэша, начиная с {0xf0000000, 0xf0000040}
,
Было бы достаточно использовать _mm512_mask_prefetch_i32gather_ps
с базовыми адресами этих двух строк кэша?
Я первоначально разместил этот вопрос на форуме Intel MIC без успеха.