我有一个Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz
( Haswell
) 处理器。AFAIKmem_load_uops_retired.l3_miss
计算DRAM demand
(即non-prefetch
)数据读取访问次数。offcore_response.demand_data_rd.l3_miss.local_dram
顾名思义,计算demand
针对 DRAM 的数据读取次数。因此,这两个事件似乎是等价的(或至少几乎相同)。但基于以下基准,前一个事件的频率远低于后者:
1) 在循环中初始化 1000 个元素的全局数组C
:
Performance counter stats for '/home/ahmad/Simple Progs/loop':
1,363 mem_load_uops_retired.l3_miss
1,543 offcore_response.demand_data_rd.l3_miss.local_dram
0.000749574 seconds time elapsed
0.000778000 seconds user
0.000000000 seconds sys
2) 在 Evince 中打开 PDF 文档:
Performance counter stats for '/opt/evince-3.28.4/bin/evince':
936,152 mem_load_uops_retired.l3_miss
1,853,998 offcore_response.demand_data_rd.l3_miss.local_dram
4.346408203 seconds time elapsed
1.644826000 seconds user
0.103411000 seconds sys
3) 运行 Wireshark 5 秒:
Performance counter stats for 'wireshark':
5,161,671 mem_load_uops_retired.l3_miss
8,126,526 offcore_response.demand_data_rd.l3_miss.local_dram
15.713828395 seconds time elapsed
0.904280000 seconds user
0.693906000 seconds sys
4) 在 Inkscape 中对图像运行模糊滤镜:
Performance counter stats for 'inkscape':
13,852,121 mem_load_uops_retired.l3_miss
23,475,970 offcore_response.demand_data_rd.l3_miss.local_dram
25.355643897 seconds time elapsed
7.244404000 seconds user
1.019895000 seconds sys
在所有四个基准测试中,频率几乎offcore_response.demand_data_rd.l3_miss.local_dram
是. 这合理吗?为什么?请告诉我基准是否过于复杂和粗粒度!mem_load_uops_retired.l3_miss