【发布时间】:2020-02-26 16:30:55
【问题描述】:
我正在使用内存预取来解决内存延迟问题。 Intel 的一些(较旧的)CPU 支持性能计数器,用于计算 CPU 因等待内存而浪费的周期 (stalled-cycles-backend),例如英特尔E5-2690。
在较新的 CPU(例如Gold 6230 和Gold 6226)上,我找不到这个计数器。还有其他方法可以计算 CPU 等待内存控制器加载缓存线所浪费的周期吗?
【问题讨论】:
-
Skylake 的
resource_stalls.any柜台可能正是您想要的。不确定这是否完全等同于 Sandybridge 上的stalled-cycles-backend。 -
哦,如果你特别想要内存停顿,还有更具体的事件;在
perf list输出中搜索您要查找的内容。例如来自我的 SKL(Skylake 客户端)mem_load_retired.l3_miss专门计算负载 insns(不是周期)。或者cycle_activity.stalls_l3_miss计数L3 缓存未命中需求负载突出时执行停止。这与没有交付微指令的周期不同,只是没有执行,所以我认为即使 ROB / RS 未满也可以计数。 -
谢谢彼得,我会试试
cycle_activity.stalls_l3_miss。
标签: memory intel performancecounter perf intel-pmu