我想测量执行稀疏矩阵-矩阵计算的代码的整数计算性能。英特尔CPU上是否有类似于浮点/双精度计算的性能计数器?
更具体地说,我想计算整数加法、乘法、融合加/乘和比较。但是任何子集都是有帮助的。
在使用likwid-perfctr读取性能计数器时,我找不到任何此类事件。
发布于 2018-02-18 06:54:01
这取决于CPU。您可以查看不同微体系结构here中可用性能事件的完整列表。可能同时存在整数和浮点运算的事件,也可能只有整数运算的事件。例如,在Nehalem上,ARITH.DIV和ARITH.MUL分别计算执行的整数和浮点除法和乘法的数量。还有仅对整数SIMD_INT_*操作计数的SIMD性能事件。在Skylake上,唯一可能与您需要的事件类似的事件是ARITH.DIVIDER_ACTIVE,它计算除法单元忙于执行整数和浮点除法时的周期数。
通常,您可以搜索名称中包含INT或描述中包含integer的事件。您可以通过这种方式找到大多数事件,但不是所有事件。
使用这些事件时应非常小心。您应该了解在启用SMT时它们是如何工作的,哪些被计数,哪些不被计数,以及如何处理融合的加法/乘法运算。不幸的是,文档在这方面往往含糊不清,所以您可能需要先尝试一下。
https://stackoverflow.com/questions/48811754
复制相似问题