高性能计算——编译器标志和目标

本文探讨了如何通过GCC编译器的优化级别、指定目标和多版本函数来提高性能。介绍了-GCC的-O选项,包括-O0到-O3的不同优化级别,以及-Os针对小体积的优化。强调了-march和-mtune标志在针对特定CPU微架构进行优化时的作用。同时,提到了如何使用属性选择不同架构的函数实现,以适应多平台需求。
摘要由CSDN通过智能技术生成

编译器标志和目标



从编译器获取高性能的第一步是通过超过一百种不同的编译器选项、属性和指令来请求它。

优化级别

GCC中有四个半主要的优化速度级别:

  • -O0是默认的,不进行优化(虽然从某种意义上说,它确实优化了:优化了编译时间)。
  • -O1(也被别名为-O)进行了一些“触手可及”的优化,几乎不影响编译时间。
  • -O2启用了所有已知几乎没有负面影响且完成时间合理的优化(这是大多数项目用于生产构建的选项)。
  • -O3进行非常激进的优化,启用了GCC中实现的几乎所有正确的优化。
  • -Ofast做了-O3中的所有事情,再加上一些可能破坏严格标准合规性的其他优化,但对大多数应用程序来说并不关键(例如,浮点运算可能被重新排列,导致结果在尾数中偏离几位)。
    还有许多其他优化标志甚至没有包含在-Ofast中,因为它们非常特定于情境,启用它们默认更可能损害性能而不是改善性能——我们将在下一节中讨论其中的一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walt3433

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值