用于大多数高性能生产代码的 gfortran 标志 [关闭]

Posted

技术标签:

【中文标题】用于大多数高性能生产代码的 gfortran 标志 [关闭]【英文标题】:gfortran flags for most high performing production code [closed] 【发布时间】:2014-09-28 11:24:45 【问题描述】:

您能否推荐 GNU Fortran 编译器 gfortran 标志以获得最高性能的生产代码?目前我正在使用gfortran -O3。代码将在 64 位 Intel 平台上运行。

【问题讨论】:

【参考方案1】:

这可能是一个扩展的评论而不是一个答案,但无论如何都是这样。

编写 gfortran 的好心人,以及编写其他提供类似功能的编译器的好心人,为没有时间或倾向于找出他们平台上代码的最佳编译器标志组合可能是什么。正如您将从自己的研究中了解到的那样,这些标志被翻译成一堆其他的、更集中的标志。

您可能已经熟悉,也可能不熟悉使用-O2 比使用-O3 运行得更快的代码案例(最初令人惊讶)。当您第一次遇到这种情况时,您将花时间处理各个优化标志,打开和关闭它们,以不同的方式组合它们,直到您了解哪些适合您的代码,哪些不适合您的代码。要么这样,要么你沮丧地放弃,用你的时间做其他事情。

没有针对所有平台优化所有代码的灵丹妙药。这是一项艰巨的工作,只有您才能决定是否值得花两周时间从程序中挤出 5% 的加速。要想清楚地了解努力何时可能会有所回报,唯一的方法是通过广泛的实践和调查,对编译器提供的各个优化选项非常熟悉。

然后您更改编译器,或者编译器编写者引入新的或增强的功能,您的任务重新开始,尽管不是从头开始。

最后,gfortran 你可以试试-Ofast

【讨论】:

以上是关于用于大多数高性能生产代码的 gfortran 标志 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我可以为 gfortran 使用哪些 gcc 编译器选项

将 gfortran 与英特尔 MKL 链接

生产应用程序的 PDB 文件和“优化代码”标志

CMake Fortran 编译器相关标志

gfortran编译错误错误:[关闭]的不可分类声明

gfortran 不适用于 Mac OS X 10.9(小牛)