2

我正在尝试使用 intel vtune Amplifier 为我的应用程序估算 FLOPS,我在这里使用这篇文章作为指导:https ://software.intel.com/en-us/articles/estimating-flops-using-event-基于采样-ebs/

问题是我在 vtune gui 中找不到 FP_COMP_OPS_EXE 事件。当我使用此事件配置运行 amplxe-cl 时,我收到以下错误:

amplxe:错误:无效事件 FP_COMP_OPS_EXE.X87 被丢弃。

我正在开发 CentOS,我的处理器是英特尔至强

任何帮助,将不胜感激

4

1 回答 1

3

可用事件集可以在处理器代之间改变。准确了解您的处理器名称很重要。您提到的事件存在于 Intel Xeon v2(基于 Ivybridge),您可以使用以下公式来测量浮点运算的数量:FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + 4 * FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + 8 * SIMD_FP_256.PACKED_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE + 2 FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * SIMD_FP_256.PACKED_DOUBLE + FP_COMP_OPS_EXE.X87

对于基于 Haswell 的处理器 (Xeon v3),没有此类事件,并且无法进行 FLOPs 计算。

For Broadwell based the formula will be following: FP_ARITH_INST_RETIRED.SCALAR_SINGLE + 4 * FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + 8 * FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + FP_ARITH_INST_RETIRED.SCALAR_DOUBLE + 2 * FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 * FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + INST_RETIRED.X87

于 2015-05-20T07:47:07.593 回答