GCC选项,用于在给定CPU架构上进行优化

时间:2012-05-18 04:54:45

标签: c gcc intel

我正在研究Nehalam / westmere英特尔微架构CPU。我想为此架构优化我的代码。 GCC是否有专门的编译标志或C函数可以帮助我提高代码的运行时性能?

我已经在使用-o3。

Language of the Code - C
Platform - Linux
GCC Version - 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)

在我的代码中,我有一些浮点比较,它们完成了一百多万次。

请假设代码已经过最佳优化。

4 个答案:

答案 0 :(得分:17)

首先,如果您真的想从像这样的新处理器上获得优化,那么您应该安装最新版本的编译器。 4.4几年前出现了,即使它似乎仍然存在,我怀疑新的优化代码是否已经向后推送。 (当前版本为4.7)

Gcc有一个catch-all优化标志,通常应该生成针对编译体系结构优化的代码:-march=native。与-O3一起,这应该就是您所需要的一切。

(对于本网站的未来问题,请使用完整的英语语法和标点符号。)

答案 1 :(得分:15)

警告:答案不正确

您可以自己实际分析所有已禁用和已启用的优化。在您的计算机上运行:

gcc -O3 -Q --help=optimizers | grep disabled

然后阅读有关仍然禁用的标志,并且可以根据the gcc documentation影响性能。

答案 2 :(得分:6)

您需要添加-march=...选项。 ...应该替换为最接近您的CPU架构的任何内容(通常会有微小的差异)in the i386/x86_64 options for GCC here

我会使用core2,因为corei7(您想要的那个)仅在GCC 4.6及更高版本中可用。请参阅arch list for GCC 4.6 here

答案 3 :(得分:0)

如果你真的想要使用一个不太支持corei7的gcc,你可以使用-mtune = barcelona