Какой тип событий POWER8 PMU должен быть максимальным?
Я выполняю анализ производительности приложения, работающего на сервере IBM POWER8, следуя модели разбивки CPI для POWER8.
Я понимаю, что мне нужно уменьшить процент остановок, вызванных, например, отсутствием кэша (PM_CMPLU_STALL_DCACHE_MISS
) или ошибочные прогнозы отрасли (PM_CMPLU_STALL_BRU
). Учебное пособие по анализу производительности POWER7 говорит о том, что хорошо написанное приложение имеет высокий процент завершения выполнения инструкций (PM_1PLUS_PPC_CMPL
).
Правильно ли я понимаю, что для POWER8 мне нужно максимизировать процент для PM_GRP_CMPL
Метрика? Какие другие показатели на основе PMU я должен попытаться максимизировать?
1 ответ
Указывая на очевидное: вам нужно оптимизировать исходный код, чтобы свести к минимуму PM_RUN_CYC
количество циклов, необходимое для выполнения вашей задачи программного обеспечения.
Ссылка, которую вы дали, ломается PM_RUN_CYC
как PM_CMPLU_STALL
+ PM_GCT_NOSLOT_CYC
+ PM_GRP_CMPL
,
Вы хотели бы уменьшить наибольший вклад из трех компонентов. Минимизируйте задержки, например, реорганизовав свой код, чтобы уменьшить потери в кеше. Циклы "Нет слота" связаны с ошибочным прогнозированием ветвлений и отсутствием кэша команд.
PM_GRP_CMPL
is "Микрокодированные инструкции, которые охватывают несколько групп, будут генерировать это событие один раз для каждой группы". Не понятно, о чем это говорит. В любом случае вы хотите минимизировать, а не максимизировать эти показатели.