Как мне рассчитать коэффициент промахов L3 кэша и узнать количество обращений к основной памяти, используя perf?

Вопрос или проблема

Я пытаюсь измерить коэффициент промахов L3 кэша, используя следующую формулу:
введите здесь описание изображения

Я обнаружил, что промахи LLC могут быть получены с помощью этой команды perf из Как поймать попадания и промахи L3-кэша с помощью инструмента perf в Linux:

perf stat -e r412e <команда>

Тем не менее, у меня возникли проблемы с нахождением события, соответствующего доступам к LLC (ссылкам на LLC). Поддерживает ли perf это событие? Если да, не могли бы вы указать мне правильное направление?

Кроме того, я профилирую количество обращений к основной памяти. Насколько я понимаю, если мы промахиваемся во всех уровнях кэша, система обращается к основной памяти, чтобы получить данные. Должен ли я отслеживать промахи кэша LLC, или ссылки на кэш будут правильной метрикой?

Любая помощь в определении правильных событий perf как для ссылок ООО, так и для обращений к основной памяти была бы очень актуальна.

Ответ или решение

Для того чтобы рассчитать уровень пропусков L3-кэша (L3 cache miss rate) и определить количество обращений к основной памяти с использованием инструмента perf, вам потребуется следовать ряду шагов и использовать правильные события для сбора данных.

1. Понимание Формулы

Пропускной коэффициент L3-кэша рассчитывается по следующей формуле:

[
\text{L3 Miss Rate} = \frac{\text{L3 Cache Misses}}{\text{L3 Cache Hits} + \text{L3 Cache Misses}}
]

Для использования этой формулы вам необходимо собрать данные о пропусках (misses) и попаданиях (hits) в L3-кэш.

2. Получение Метрик с Использованием perf

Для начала, чтобы измерить пропуски L3-кэша, вы можете использовать следующую команду:

perf stat -e r412e <command>

Здесь r412e соответствует событию L3-кэш-пропусков. Однако вы также должны знать, как снимать данные о кэш-обращениях (LLC references).

Определение LLC References

Для LLC references (обращения к LLC-кэшу) вам необходимо использовать следующее событие:

perf stat -e r412f <command>

Здесь r412f соответствует учетному событию обращений к L3-кэшу (общее количество обращений).

3. Сбор Данных

Теперь, когда вы знаете, какие события использовать, вы можете запустить произвольную программу, заменив <command> на вашу команду. В результате вывода perf вы получите два важных показателя:

  1. L3 Cache Misses (r412e).
  2. LLC References (r412f).

4. Расчет Miss Rate и Trips to Main Memory

После получения значений вы можете использовать их для расчета коэффициента пропусков:

  • Сначала соберите данные:
    • L3 Cache Hits = LLC References – L3 Cache Misses
    • Теперь подставьте значения в формулу:

[
\text{L3 Miss Rate} = \frac{\text{L3 Cache Misses}}{\text{LLC References}}
]

5. Определение Обращений к Главной Памяти

Количество обращений к основной памяти вычисляется, когда происходит пропуск во всех уровнях кеша – если данные не найдены в L1, L2 или L3 кешах. В этом случае система обращается к главной памяти.

Если вы хотите оценить количество обращений к основной памяти, то вам следует следить за:

  • Количество L3 Cache Misses (каждый пропуск может привести к следующему обращению к основной памяти).

Поэтому, если у вас есть количество L3 Cache Misses, вы можете использовать это значение как количество обращений к главной памяти, учитывая, что каждый пропуск ведет к запросу к основной памяти.

Заключение

С помощью указанных команд и понимания необходимой информации вы сможете успешно измерить коэффициент пропусков L3-кэша и определить количество обращений к основной памяти. Используйте результаты профилирования для оптимизации производительности Ваших приложений, комбинируя их с другими метриками производительности для более комплексного анализа.

Оцените материал
Добавить комментарий

Капча загружается...