__xl_pow,__xl_log,__xl_exp在perf报告中
问题描述:
我正在研究用IBM POWER8处理器的IBM XL Fortran编译器编译的应用程序app
的性能分析。这是perf report
输出的一部分:__xl_pow,__xl_log,__xl_exp在perf报告中
3.88% app app [.] __xl_pow
2.91% app app [.] __xl_log
1.81% app app [.] __xl_exp
配置文件中显示的功能是什么?我的假设是,这些是编译器提供的pow()
,log()
和exp()
的实现(请参阅a similar discussion)。那是对的吗?
答
当您启用-O3
或更高的优化级别时,XL编译器会将几个libm
函数调用替换为对编译器附带的高性能库的调用。您看到的__xl_*
函数调用来自该库。如果你不需要它们,例如因为它们的精度有时与libm调用稍有不同,请使用-qstrict=library
进行编译。
注:即使-qstrict=library
,XL Fortran语言可能仍然称自己的功能pow()
,但是这些功能具有相同的精度为libm
的pow()
。