首页 > 解决方案 > fortran中幂函数的效率

问题描述

我正在编写一个代码,其中主要的时间瓶颈是功率函数的利用(显然是来自 glibc 的 w_pow.c)。我称它为主要计算能力2。

b=a**2

写起来会更快吗:

a*a 

而不是一个**2?或者有另一个图书馆会更好吗?

谢谢

标签: fortran

解决方案


对于许多编译器语言(包括 Fortran)的编译器来说,将一种语言转换为另一种是完全常见的,这取决于哪种语言更快。

在普通 CPU 上计算a^2乘法a*a速度更快,但编译器会在您编写a**2. 无需担心这些细节。

您可以在https://godbolt.org/z/5Ebde4上试用方便的是,godbolt.org 上 Fortran 的默认示例是平方函数,因此您可以非常轻松地比较程序集x**2x*x启用优化(例如-O3)。


推荐阅读