【发布时间】:2013-12-06 03:53:15
【问题描述】:
我尝试为 Intel Xeon E5 系列使用性能计数器 (linux perf)。
我对缓存未命中的解释相当困惑。虽然 L1 和 LLC 值很容易访问,但必须通过 -rNNN 事件从寄存器中读取 L2 的信息。但是在文档中,我还没有找到如何将事件编号与掩码字段组合以给出 NNN 值。 perf help 中只有一个示例显示值 A8 和掩码 01 导致 1a8。但是掩蔽时的一般规则是什么?不应该写在文档里还是标准的OR函数什么的?
此外,我还没有从文档或其他相关主题的回复中了解,在 Xeon 案例中测量的 LLC 值是针对 L3 还是 L2。当硬件中有第三级缓存时会发生什么? LLC 是否仍测量最后一级,即 L3 事件?
有人清理过吗?
【问题讨论】:
-
使用 the
ocperf.pywrapper forperf获取 uarch 特定事件的符号名称,例如 Skylake 上的mem_load_retired.l2_hit、l2_lines_in.all、l2_rqsts.all_demand_data_rd(按需加载到 L2)。