我正在使用IBM XL Fortran编译器为IBM POWER8处理器编译的应用程序app
的性能分析。这是perf report
:
3.88% app app [.] __xl_pow
2.91% app app [.] __xl_log
1.81% app app [.] __xl_exp
个人资料中显示的这些功能是什么?我的假设是这些是随编译器提供的pow()
,log()
和exp()
的实现(参见a similar discussion)。那是对的吗?
答案 0 :(得分:3)
当您启用-O3
或更高的优化级别时,XL编译器会通过调用编译器附带的高性能库来替换多个libm
函数调用。您看到的__xl_*
函数调用来自该库。如果您不想要它们,例如因为它们的精度有时与libm调用略有不同,请使用-qstrict=library
进行编译。
注意:即使使用-qstrict=library
,XL Fortran仍可以为pow()
调用自己的函数,但这些函数与libm
的{{1}}具有相同的精度。< / p>