在运行 Ubuntu Linux 的 AMD 机器上通过 PAPI 测量最后一级缓存未命中

在运行 Ubuntu Linux 的 AMD 机器上通过 PAPI 测量最后一级缓存未命中

默认情况下,PAPI(性能应用程序编程接口)似乎不支持测量运行 Ubuntu Linux 的 AMD 计算机上的最后一级缓存未命中 (L3)。不过,我可以测量 L1/L2 缓存未命中情况。您可以在下面查看处理器的详细信息。我听说如果安装适当的驱动程序,可以测量最后一级缓存未命中的情况。有人可以向我提供更多有关此的信息吗?

$ uname -a
Linux 2.6.32-21-server #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 x86_64 GNU/Linux

$cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 16
model       : 8
model name  : Six-Core AMD Opteron(tm) Processor 8431
fpu     : yes
fpu_exception   : yes
cpuid level : 5
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt
bogomips    : 4788.66
TLB size    : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

答案1

尝试使用 Valgrind 的缓存研磨分析器或 perf 或 perf Expert。

所有这些都将提供 LastLevel 缓存详细信息,就像在大多数情况下 L3 一样。

您需要加载所有这些模块。

执行命令:

瓦尔格林德:

valgrind --tool=cachegrind ./exe

完美专家:

perfexpert_run_exp ./exe

性能:

perf stat -e <hardware counter> ... -e <hardwarecounter> ./exe

答案2

您还可以使用 perf 工具。首先,您需要使用“perf list”命令检查您的计数器是否能够对最后一级缓存未命中进行计数。然后你可以用 perf_record 读取它们..

相关内容