我想测量执行稀疏矩阵矩阵计算的代码的整数计算性能。英特尔CPU上的性能计数器是否与浮点/双计算相似?
更具体地说,我想计算整数加法,乘法,融合加/ mul和比较。但任何子集都会有所帮助。
使用likwid-perfctr读取效果计数器时,我无法找到任何此类事件。
答案 0 :(得分:0)
这取决于CPU。您可以在不同的微体系结构here中查看可用性能事件的完整列表。可能存在整数和浮点运算的事件,也可能只是整数运算的事件。例如,在Nehalem上,ARITH.DIV
和ARITH.MUL
分别计算执行的整数和浮点除法和乘法的数量。还有SIMD_INT_*
个性能事件,用于仅计算整数SIMD操作。在Skylake上,唯一可能接近你需要的事件是ARITH.DIVIDER_ACTIVE
,它计算除法单元忙于执行整数和浮点除法时的周期数。
通常,您可以搜索名称中包含INT
或说明中integer
的事件。你可以通过这种方式找到大多数事件,但不是全部。
使用这些活动时应该非常小心。您应该了解它们在启用SMT时的工作原理,确切的计算内容和不计数内容,以及如何处理融合的add / multiply操作。不幸的是,文档在这方面往往含糊不清,所以你可能需要先试验它们。