【问题标题】:Interpolating between ifort -O2 and -O3 optimization flags在 ifort -O2 和 -O3 优化标志之间进行插值
【发布时间】:2014-07-03 22:10:49
【问题描述】:

我正在尝试调试一个分段错误,当我使用带有 -O3 优化标志的 ifort 13.1.3 编译我的一个源文件时出现该错误。如果我对这个特定文件使用 -O2 并在我的其余代码中使用 -O3,一切运行正常。结果,我无法使用调试符号进行编译,因为问题就消失了。

为了尝试缩小导致此问题的特定优化操作的范围,如果可能的话,我希望添加一些使用 -O3 而不是 -O2 进行的更积极的优化。来自 13.1.3 参考:

https://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/

其他高级优化似乎包括:

  • 融合
  • 块展开和堵塞
  • 折叠 IF 语句

可能还有其他一些,但我无法从参考文献中识别出它们是 -O3 独有的。是否有我可以与 -O2 一起使用的标志来单独打开其中一些更具侵略性的选项,或者从 -O3 开始将它们关闭?

【问题讨论】:

  • 您尝试了哪些错误检查选项?
  • 你试过用-opt-report 3编译吗?它应该为您提供有关编译器正在尝试优化的内容的更多详细信息。

标签: optimization segmentation-fault fortran intel-fortran


【解决方案1】:

一般来说,不,没有不同的选项来启用和禁用特定的优化。有时我们添加了一些选项来禁用某些优化,当它们有助于特定的基准测试时,但这是不寻常的。如果您仍然需要这方面的帮助,请联系Intel support - 我们有工具可以进一步缩小原因,这有时是编译器错误。但是,在这样做之前,我建议您首先使用更新的编译器尝试该程序。 14.0.3 是当前版本。

【讨论】:

    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 2023-03-29
    • 2016-12-24
    • 2011-08-25
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多