【发布时间】:2013-03-22 17:50:34
【问题描述】:
我正在尝试弄清楚如何正确设置-march 选项,以查看在我的装有 gcc 4.7.2 的 PC 上启用和禁用选项之间的性能差异有多大。
在尝试编译之前,我尝试找到最适合我的 PC 的 -march 选项。我的 PC 有 Pentium G850,其架构是 Sandy Bridge。所以我参考了the gcc 4.7.2 manual,发现-march=corei7-avx似乎是最好的。
但是,我记得基于 Sandy Bridge 的 Pentium 缺乏 AVX 和 AES-NI 指令集支持,即true for Pentium G850。所以-march=corei7-avx 不是一个合适的选择。
我想出了一些可能的选择:
-march=corei7-avx -mno-avx -mno-aes-march=corei7 -mtune=corei7-avx-march=native
考虑到我掌握的信息,第一个选项看起来很合理,但我担心可能缺少 AVX 和 AES-NI 以外的功能。第二个选项看起来很安全,但由于-march=corei7,它可能会错过 Sandy Bridge 上的一些小功能。第三个选项会解决我所有的问题,但我听说这个选项有时会错误检测 CPU 的功能,所以我想知道如何手动执行此操作。
我用谷歌搜索并搜索了 StackOverflow 和 SuperUser,但找不到任何明确的解决方案...
应该设置哪些选项?
【问题讨论】:
标签: gcc compiler-optimization compiler-flags