【问题标题】:How to definitively diagnose "load hit store" on AIX PowerPC如何在 AIX PowerPC 上明确诊断“加载命中存储”
【发布时间】:2020-05-14 19:14:39
【问题描述】:

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

我怀疑问题是“加载命中存储”。我应该如何检查这个?显而易见的答案是配置文件。阅读了各种 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 位于同一组中。但是 - 它没有说明还可以做什么。

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

【问题讨论】:

    标签: performance profiling aix powerpc


    【解决方案1】:

    我不是 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。)

    【讨论】:

    • 所选事件和事件 PM_INST_CMPL 必须都在一个事件组中,tprof 才能运行。 PM_CMPLU_STALL_REJECT 和 PM_CMPLU_STALL_REJECT_LHS(明智的选择顺便说一句)都不是 PM_INST_CMPL 的一个组,这意味着它们似乎无法测量,因此无法测量由于 load-hit-store 导致的减速。这似乎不对。
    猜你喜欢
    • 2011-09-29
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    相关资源
    最近更新 更多