问题
我们有一个模拟任务的中型程序,我们需要优化。我们已经做了我们最好的优化源到我们的编程技能的限制,包括分析与 教授和 瓦尔荷恩。
当最终完成时,我们希望在几个系统上运行该程序,可能需要几个月的时间。因此,我们真正感兴趣的是把优化推到极限。
所有系统都将在相对较新的硬件(Intel i5或 i7)上运行 Debian/Linux。
问题
使用最新版本的 g + + (超过 -O3/-Ofast)有哪些可能的优化选项?
我们也有兴趣在昂贵的次要优化,这将在长期支付。
我们现在用的
现在我们使用以下 g + + 优化选项:
-Ofast
: 最高的“标准”优化水平。包括 -ffast-math
没有造成任何问题在我们的计算,所以我们决定去它,尽管不符合标准。-march=native
: 启用所有 CPU 特定指令的使用。-flto
允许链接时间优化,跨不同的编译单元。