Linux 为什么gcc列出了与我实际的cpu架构不同的版本?
在评估Linux 为什么gcc列出了与我实际的cpu架构不同的版本?,linux,gcc,compiler-optimization,Linux,Gcc,Compiler Optimization,在评估-march=native和gcc-march=native-Q--help=target支持哪些优化时,我发现gcc将我的-march列为broadwell,而不是skylake。我的机器有一个i7-7700。这可能是一个愚蠢的问题,但是有没有办法手动将行进设置为实际的本地(skylake) 版本和构建信息 4.15.0-33-generic gcc(Ubuntu 5.4.0-6ubuntu1~16.04.10)5.4.0 20160609 $ lscpu Architecture:
-march=native
和gcc-march=native-Q--help=target
支持哪些优化时,我发现gcc
将我的-march
列为broadwell
,而不是skylake
。我的机器有一个i7-7700。这可能是一个愚蠢的问题,但是有没有办法手动将行进设置为实际的本地(skylake
)
版本和构建信息
4.15.0-33-generic
gcc(Ubuntu 5.4.0-6ubuntu1~16.04.10)5.4.0 20160609
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
...
您正在使用一个旧的GCC。安装一个较新的,例如在9月份2018@BasileStarynkevitch知道了!谢谢你,正在研究各种选择。额外问题:ubuntu不会自动将GCC升级到最新版本吗?看起来很奇怪,我必须添加一个ppa来获得适合我的系统规范的GCC。你的发行版本身很旧。您应该升级(或安装)它,例如在2018年9月升级到Ubuntu 18,但16.04仍然受到积极支持/维护?我想最后一次发布是在上个月。那又怎样?升级系统GCC编译器是一个强有力的决定,并且只在新的Ubuntu版本中才会发生