Какой тип событий 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 "Микрокодированные инструкции, которые охватывают несколько групп, будут генерировать это событие один раз для каждой группы". Не понятно, о чем это говорит. В любом случае вы хотите минимизировать, а не максимизировать эти показатели.

Другие вопросы по тегам