在Linux中测量NUMA节点的缓存未命中/命中的工具?

时间:2014-07-04 11:33:03

标签: linux multithreading caching performancecounter numa

我正在AMD abu-dhabi架构上执行多线程程序,该架构有8个NUMA域。我正在使用numactl在不同的核心中分配线程,并尝试不同的内存策略。我想测量由NUMA域安排的缓存未命中/命中,但是像perf这样的工具我获得了一个整体计数器。我已经查看了numastat,likwid和hpctoolkit等工具。您知道任何允许获得由NUMA域分隔的标准性能计数器的工具吗?

2 个答案:

答案 0 :(得分:1)

numastat不足以满足您的需求吗?

>numastat
                           node0           node1           node2           node3
numa_hit              2511148413      2668024472      2541805396      2631938751
numa_miss                 687767          186973          510852           79546
numa_foreign              544853         1772504         1306738         1461626
interleave_hit             14268           14291           14281           14309
local_node            2509822983      2667700745      2541325673      2631417570
other_node               2013197          510700          990575          600727

                           node4           node5           node6           node7
numa_hit              2551615375      2287945142      2199394273      2506262343
numa_miss                1178554         1863536         2037710         1278384
numa_foreign             1709984          541463          241266          244888
interleave_hit             14287           14274           14291           14294
local_node            2551212630      2278515165      2198877939      2505436756
other_node               1581299        11293513         2554044         2103971

答案 1 :(得分:0)

Intel PCM包附带了一个名为pcm-numa.x的工具。它告诉您每个核心从本地NUMA节点访问数据的次数,以及从远程节点访问的次数。