1

在使用 Power8 处理器评估内存性能时,我遇到perf了理解事件PM_DATA_ALL_*PM_DATA_*. 大多数计数器在两个版本中都存在,但oprofile 文档中的描述和 inpapi_native_avail相同,例如:

PM_DATA_FROM_LMEM

如果 MMCR1[16] 为 1,则处理器的数据高速缓存从本地芯片的内存中重新加载,因为只有按需加载或按需加载加上预取。

我虽然会通过测量一些数据来找出差异。如果我提供足够大的任务,我可以观察到*_ALL版本具有更高值的预期差异。我理解使用perf.

那么这些事件的全部内容到底是什么?

4

1 回答 1

2

经过几个小时的搜索,我找到了直接来自 IBM 的另一个来源,将这些事件描述为:

PM_DATA_ALL_FROM_LMEM

由于需求加载或数据预取,处理器的数据缓存从本地芯片的内存中重新加载

PM_DATA_FROM_LMEM

由于需求负载,处理器的数据缓存从本地芯片的内存中重新加载

所以差异使得预取加载,第二个版本中不包含。

PAPI 和 perf 工具只是包含错误的描述。这些事件是由 IBM直接促成oprofile的,但可能存在一些错误/不准确之处。当我浏览PAPI/libpfm 源时,我看到正确的描述在.pme_short_desc字段中,但.pme_long_desc字段都是相同的。并且papi_native_avail只报告长的: 谢谢...非常有用!

谢谢你的耐心。总结这样的东西对我有很大帮助,我希望它能帮助那些在类似问题上苦苦挣扎的人。

于 2016-01-24T21:38:52.380 回答