可用事件集可以在处理器代之间改变。准确了解您的处理器名称很重要。您提到的事件存在于 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