страницу закэшировало? Я читал про prefetch инструкции в immintrin или __builtin - но они вроде бы существенно меньшее количество данных прогоняют в кэш
у вас L1 же больше и так чем страница
Нужно не только закэшировать, но и постоянно держать там данные. Это точно хорошая идея?
Точно) Перф складывается из того что читается __m256 из ram линейно (это значить что в кэш она практически не попадает, так как проходит по большому участку), двух обращений в таблицу, находящуюся в кэше l1, и одной записи в ram (также линейно). Проблема в прогреве этой таблицы. Такие операции будут перемежаться посторонний работой, которая не требует работы с кэшами. По моим наблюдениям нужно несколько итераций таких циклов, чтобы табличка действительно попала в L1
А те 2 обращения насколько далеки друг от друга и можно ли как-то предсказать их локальность?
Можно. Эти параметры на самом деле вычисляются заранее. Обычно 8-16 геммов на один Кёрнер с табличкой
Обсуждают сегодня