在perf报告中__xl_pow,__ xl_log,__ xl_exp

时间:2017-07-26 16:18:07

标签: fortran powerpc perf

我正在使用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)。那是对的吗?

1 个答案:

答案 0 :(得分:3)

当您启用-O3或更高的优化级别时,XL编译器会通过调用编译器附带的高性能库来替换多个libm函数调用。您看到的__xl_*函数调用来自该库。如果您不想要它们,例如因为它们的精度有时与libm调用略有不同,请使用-qstrict=library进行编译。

注意:即使使用-qstrict=library,XL Fortran仍可以为pow()调用自己的函数,但这些函数与libm的{​​{1}}具有相同的精度。< / p>