在运行 Linux 的 Intel 或 AMD x86-64 系统上,我在哪里/如何找到我的 CPU 具有的硬件性能计数器的数量?
我想使用 Linux perf
工具在执行某些应用程序时收集硬件性能计数器数据。 perf wiki 的 tutorial 说,如果我指定(使用 -e
标志到 perf stat
或 perf record
)比我的 CPU 中的性能计数器多的硬件事件,那么这些事件将在执行期间在计数器上多路复用,允许它们全部被跟踪在单个 perf
命令期间,但可能会降低准确性,因为并非所有计数器都一直处于事件状态。 (请注意,我在这里关心硬件事件,例如缓存和 TLB 行为 - 我知道可以跟踪大量/无限数量的内核软件跟踪点而不会出现错误)。
如果我找到了我的处理器型号,是否可以在 Intel/AMD 网站上找到此信息?是否有一个简单的命令可以在系统上运行以检查硬件计数器的数量?我检查了 cat /proc/cpuinfo
和 x86info -a
的输出,但找不到此信息。
最佳答案
关于英特尔处理器,您可以:
cpuid
instruction - 这将需要编写汇编代码以正确设置参数并获得结果。 papi_avail | more
。我的笔记本电脑上的结果是:关于linux - 找出一个 CPU 有多少个硬件性能计数器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21179813/