2017-07-26 56 views
2

我正在研究用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)。那是對的嗎?

回答

3

當您啓用-O3或更高的優化級別時,XL編譯器會將幾個libm函數調用替換爲對編譯器附帶的高性能庫的調用。您看到的__xl_*函數調用來自該庫。如果你不需要它們,例如因爲它們的精度有時與libm調用稍有不同,請使用-qstrict=library進行編譯。

注:即使-qstrict=library,XL Fortran語言可能仍然稱自己的功能pow(),但是這些功能具有相同的精度爲libmpow()