2

我按照 POWER8 的CPI 分解模型对在 IBM POWER8 服务器上运行的应用程序进行了性能分析。

我了解我需要减少由于缓存未命中 ( PM_CMPLU_STALL_DCACHE_MISS) 或分支错误预测 ( PM_CMPLU_STALL_BRU) 等原因导致的停顿百分比。POWER7 性能分析教程告诉我们,一个编写良好的应用程序具有很高的最终指令完成百分比 ( PM_1PLUS_PPC_CMPL)。

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

4

1 回答 1

1

指出显而易见的:您需要优化源代码以最小化PM_RUN_CYC完成软件任务所需的周期数。

您提供的 参考分解PM_RUN_CYCPM_CMPLU_STALL++ PM_GCT_NOSLOT_CYCPM_GRP_CMPL

您希望减少这三个组件中最大的贡献者。例如,通过重新组织代码以减少缓存未命中,最大限度地减少停顿。“无槽”周期与分支错误预测和指令缓存未命中有关。

PM_GRP_CMPL是“跨多个组的微编码指令将每组生成一次此事件”。不清楚这说明了什么。在任何情况下,您都希望最小化——而不是最大化这些计数。

于 2017-04-02T01:32:30.437 回答