首页 > 解决方案 > 如何明确诊断 AIX PowerPC 上的“加载命中存储”

问题描述

我已经优化了我的编译器以生成更小的代码。然而,尽管生成的指令更少,代码路径更短,尤其是加载和存储更少,但为小型演示程序生成的代码运行速度更慢。

我怀疑问题是“加载命中商店”。我应该如何检查这个?显而易见的答案是配置文件。阅读了各种 AIX 文档后,答案似乎是使用tprof并带有一个指示“加载命中存储”的适当事件。就像是

  tprof -a -usek -E PM_CMPLU_STALL_REJECT -y my_benchmark_program

但是 - 这给出了错误消息

  A group with events PM_CMPLU_STALL_REJECT and PM_INST_CMPL cannot be found.

tprof 文档确实提到所选事件必须与 PM_INST_CMPL 位于同一组中。但是 - 它没有说明还可以做什么。

那么 - 我如何测试我的理论,即“加载命中存储”是性能下降的原因?

标签: performanceprofilingaixpowerpc

解决方案


我不是 AIX 专家,但知识中心说“pmlist”命令可用于确定哪些事件属于组(https://www.ibm.com/support/knowledgecenter/ssw_aix_72/performancetools/eventbasedprofiling. html ). 假设错误消息是正确的,并且这些事件(PM_CMPLU_STALL_REJECT 和 PM_INST_CMPL)不在同一组中,您可以执行两次相同的运行并在每次运行期间记录一个事件,如果您的基准测试以这种方式工作。
说到 load-hit-store,你想测量 PM_CMPLU_STALL_REJECT_LHS 事件吗?(对于 POWER9,PM_CMPLU_STALL_LHS。)


推荐阅读