首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些GCC优化标志和技术在CPU之间是安全的?

哪些GCC优化标志和技术在CPU之间是安全的?
EN

Stack Overflow用户
提问于 2018-09-21 01:58:22
回答 1查看 952关注 0票数 3

在编译/链接用于所有ISA实现(例如x86-64)的C/C++库或程序时,从正确性和运行时性能的角度来看,哪些优化标志是安全的?我希望优化能够产生正确的结果,并且不会对特定CPU的性能造成不利影响。例如,我想避免在第8代英特尔核心i7上产生运行时性能改进的优化标志,但在AMD上会导致性能下降。

PGO,LTO和-O3安全吗?它是否仅依赖于-march-mtune (或它们不存在)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-21 14:39:07

假设您的代码定义良好,它们都应该是“安全的”。

如果您不想专门针对某个特定的CPU家族,那么只需让-march-mtune单独使用;默认设置适合一般的x86_64。

PGO总是一个好主意,它主要用于避免分支。

LTO和-O3对不同的代码基有不同的影响.例如,如果您的代码从矢量化中受益,那么-O3是比-O2更大的赢家,但是额外的内联和展开可能会导致更大的代码大小,这在缓存更有限的系统中可能是一个缺点。

最后,这里唯一真正有意义的建议是:度量它,看看对您的代码有什么好处。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52435573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档