perf报告显示" __ libm_pow_l9"

时间:2016-05-15 14:52:42

标签: c report perf

我正在使用perf来分析我的程序,其中涉及使用exp()和pow()的负载。代码编译使用

icc  -g -fno-omit-frame-pointer test.c

并描述:

perf record -g ./a.out

接下来是:

perf report -g 'graph,0.5,caller'

和perf给出了:

enter image description here

两个函数__libm_exp_l9()和__libm_pow_l9()正在消耗大量的计算能力。

所以我想知道它们是否只是exp()和pow()的别名?或者在报告中阅读的任何建议? 感谢。

1 个答案:

答案 0 :(得分:1)

它们不是别名,而是函数的内部实现。数学库通常有几个版本的函数,具体取决于使用的处理器,指令集或参数。

没有什么可担心的。 Exp和Pow的功能比指令(通常)更复杂,因此需要一些时间。不幸的是我没有找到任何参考(英特尔数学库可能不是开源),但这是通常的做法,使用内部命名空间名称的功能。