FLOPS是否包含在perf_event给出的指令数中?

时间:2014-06-06 13:09:09

标签: perf flops

我有一个程序,它使用 perf_event.h 来计算特定运行进程的IPC。我读了 INSTRUCTIONS 计数器和 CPU_CYCLES 计数器。

我的问题是 INSTRUCTIONS 计数器返回的值。它是否包含浮点运算?如果没有,我怎么能得到这个值?

  

注意:我说的是 perf_event.h 但是,是的,我也在谈论perf,我提到的计数器就是那些您可以使用命令perf list找到。

1 个答案:

答案 0 :(得分:1)

在英特尔体系结构上(我猜它对其他人来说是一样的),是的,它包含浮点指令。如果你在内核代码中查看arch/x86/kernel/cpu/perf_event_intel.c。您会看到instructions事件已映射到0x00c0

 [PERF_COUNT_HW_INSTRUCTIONS]     = 0x00c0

“英特尔软件开发人员手册”第19.1章说,此事件计为Instruction retired,即已完成的所有指令已被证明"因为流确实需要(现代处理器执行程序流所需的更多指令。这称为"推测执行",见here