用于 Ivy Bridge 架构的 GNU Fortran 编译器优化标志
Posted
技术标签:
【中文标题】用于 Ivy Bridge 架构的 GNU Fortran 编译器优化标志【英文标题】:GNU Fortran compiler optimisation flags for Ivy Bridge architecture 【发布时间】:2017-03-03 16:32:23 【问题描述】:请问您对 GNU Fortran 编译器 (v6.3.0) 标志以优化 Ivy Bridge 架构(Intel Xeon CPU E5-2697v2 Ivy Bridge @ 2.7 GHz)代码的建议?
目前我正在使用以下标志编译代码:
-O3 -march=ivybridge -mtune=ivybridge -ffast-math -mavx -m64 -w
【问题讨论】:
【参考方案1】:除非您使用特定于 Ivy 桥的内部函数,否则 Sandy 桥标志 os 就足够了。我希望您可以通过另外设置-funroll-loops --param max-unroll-times=2
有时-O2 -ftree-vectorize
会比-O3
工作得更好。
如果您有复杂的数据类型,您将需要检查 -fno-cx-limited-range
,因为默认的 -ffast-math
可能过于激进。
【讨论】:
使用 gfortran(但不是 gcc)时,max-unroll-times=4 通常应该比 2 略好。以上是关于用于 Ivy Bridge 架构的 GNU Fortran 编译器优化标志的主要内容,如果未能解决你的问题,请参考以下文章
我应该在 openMP 并行区域内使用 gnu 并行模式函数吗(for-loop,tasks)
Native/Webview bridge for Hybrid