用于L1缓存命中事件的Intel PMU事件

时间:2018-03-01 03:42:45

标签: x86 cpu-cache perf intel-pmu

我正在尝试计算Intel Haswell处理器上程序的缓存不同级别(L1,L2和L3)的缓存命中数。

我编写了一个程序,通过监视各个事件来计算L2和L3缓存命中数。为此,我检查了英特尔x86软件开发手册,并使用cache_all_request事件和cache_miss事件进行L2和L3缓存。但是,我没有找到L1缓存的事件。 也许我错过了什么?

我的问题是:

我应该使用哪个事件编号和UMASK值来计算L1缓存命中事件?

澄清*

1)我想要实现的最终目标是在程序的所有缓存命中变为缓存未命中时上限程序的执行时间。如果我可以计算缓存命中请求的数量,我可以将它们视为缓存未命中并计算增加的​​执行时间;

2)我检查了英特尔SDM中的事件MEM_LOAD_UOPS_RETIRED.L1_ HIT,它说“退出加载uop,L1缓存命中为数据源。”。我不确定1 uops是否需要1个周期。有没有关于如何将uops转移到循环的参考?

3)计算负荷和商店数量会更好。 (我可以忍受不计算商店请求。)

非常感谢你的帮助!

0 个答案:

没有答案