-msse,-msse2,-mssse3,-msse4 rtc ..的cflgs sse选项之间有什么区别?以及如何确定?

问题描述 投票:18回答:1

对于GCC CFLAGS选项:-msse-msse2-mssse3-msse4-msse4.1-msse4.2。它们是专有用途还是可以一起使用?

我的理解是,选择哪个设置取决于运行程序的目标拱门是否支持它-这是正确的吗?

如果是这样,我怎么知道目标拱门支持什么功能?在Linux中,我使用/ proc / cpuinfo,但是如果使用Mac或Windows,该怎么办?

谢谢!

gcc g++ gnu sse compiler-flags
1个回答
30
投票

-m开关可以并行使用,此外,其中某些架构或其他开关暗含。例如,如果您为x86_64构建代码,则始终启用-msse -msse2

对于要在系统上运行的代码,您应该选择-march=native,这将选择处理器上可用的代码。例如,如果您有一个Sandy Bridge,它将启用-msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx

如果要详细指定要使用的指令集,则应仅使用可用的指令集,而不总是使用“最新”指令集。当前,“最新”处理器是-mavx2,我不建议这样做:支持该处理器的第一个处理器将于2013年推出。

© www.soinside.com 2019 - 2024. All rights reserved.