Вопрос или проблема
Я пытаюсь измерить коэффициент промахов 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
вы получите два важных показателя:
- L3 Cache Misses (
r412e
). - 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-кэша и определить количество обращений к основной памяти. Используйте результаты профилирования для оптимизации производительности Ваших приложений, комбинируя их с другими метриками производительности для более комплексного анализа.