什么类型的POWER8 PMU事件应该最大化?

时间:2015-07-27 07:05:30

标签: linux perf oprofile

我在CPI breakdown model for POWER8之后对IBM POWER8服务器上运行的应用程序执行性能分析。

我知道我需要减少例如由缓存未命中(PM_CMPLU_STALL_DCACHE_MISS)或分支误预测(PM_CMPLU_STALL_BRU)引起的停顿百分比。 POWER7 performance analysis tutorial表示编写良好的应用程序具有最终指令完成百分比(PM_1PLUS_PPC_CMPL)。

我是否理解为了POWER8我需要最大化 PM_GRP_CMPL指标的百分比?我应该尝试哪些其他基于PMU的指标最大化

1 个答案:

答案 0 :(得分:1)

明确指出:您需要优化源代码 最小化PM_RUN_CYC,即软件任务完成所需的周期数。

您提供的引用将PM_RUN_CYC + PM_CMPLU_STALL + PM_GCT_NOSLOT_CYC分解为PM_GRP_CMPL

您希望减少三个组件的最大贡献者。例如,通过重新组织代码来减少缓存未命中,从而最大限度地减少停顿。 "没有插槽"循环与分支错误预测和指令缓存未命中有关。

PM_GRP_CMPL是"微编码指令 跨越多个组将每组生成一次此事件"。不清楚这告诉了什么。在任何情况下,您希望最小化 - 不要最大化这些计数。