1

我正在使用英特尔 VTune 来分析我的程序。

我使用的 CPU 是 IVY Bridge。

所有硬件指令事件都可以在这里找到:

https://software.intel.com/en-us/node/589933

FP_COMP_OPS_EXE.X87 本周期执行的 FP 计算 Uop 数。FADD、FSUB、FCOM、FMUL、整数 MUL 和 IMUL、FDIV、FPREM、FSQRTS、整数 DIV 和 IDIV 的数量。此事件不区分超验流中间使用的 FADD 和 s

FP_COMP_OPS_EXE.X87 似乎包括整数乘法和整数除法;但是,那里没有整数加法和整数减法。我在上面的网站上也找不到这两种指令。

谁能告诉我计算整数加法和整数减法指令的事件是什么?

4

1 回答 1

1

我正在阅读你的问题,但这里有:

如果您的代码受计算限制,您可能会找到方法来推断整数加法和减法的重要性,而无需直接测量它们。例如UOPS_RETIRED.ALL - FP_COMP_OPS_EXE.ALL,假设您已经做了一些事情来确定您的代码是计算绑定的,那么它会给您一个非常粗略的估计。

你?如果没有,从 VTune 的基本分析开始,然后消除内存、缓存和前端瓶颈可能会有所帮助。如果您已经这样做了,那么您还有更多选择:

  • 与 Ivy Bridge 框图交叉引用UOPS_DISPATCHED_PORT,或者更好的是,列出哪些特定类型的算术可以在哪些端口上执行(我找不到)。
  • 修改您的程序源代码、编译器标志或程序集,重新运行粗粒度配置文件(如基本分析),并查看您是否看到在度量级别(如INST_RETIRED.ANY / CPU_CLK_UNHALTED.

抱歉,似乎没有更直接的答案。

于 2016-08-01T18:28:05.120 回答