6

有没有办法可以通过编程方式访问每个内核的(Intel])硬件计数器?(即,不perfperfmonvalgrind,我应该添加“简单”,所以不PAPI,例如)我想知道(对于每个核心)有多少 L1-LLC 缓存命中/未命中它(= 某个程序正在运行该核心)发生。这是针对 Linux 3.2.0-32、C 和使用 GCC 的。

4

1 回答 1

1

处理器中的性能计数器无法从“用户模式”代码中读取,因此您需要某种内核模块来执行此操作。一旦你有了它,它并不是很难,有很多 MSR。

您也许还可以使用 /dev/cpu/core-number/msr 来读取没有内核模块的值。

描述你如何做到这一点的所有细节对于一个答案来说有点过分(除非我复制'n'粘贴英特尔程序员手册(Vol3)的整个部分 - 我认为这不是我们想要的。 ..)

于 2013-01-05T01:41:40.780 回答