Eug*_*jak 35 c c++ optimization gcc compiler-flags
我想要你的输入哪些gcc编译器标志在优化Xeons时使用?
在mtune或march中没有'xeon',哪个是最接近的匹配?
man*_*lio 58
最新GCC/Xeon的更新.
基于Sandy-Bridge的 Xeon(E3-12xx系列,E5-14xx/24xx系列,E5-16xx/26xx/46xx系列).
-march=corei7-avx对于GCC <4.9.0或-march=sandybridge对于GCC> = 4.9.0.
这使得Advanced Vector Extensions支持以及Sandy Bridge 的AES和PCLMUL指令集成为可能.以下是GCC i386/x86_64选项页面的概述:
Intel Core i7 CPU具有64位扩展,MMX,SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AES和PCLMUL指令集支持.
基于Ivy-Bridge的 Xeon(E3-12xx v2系列,E5-14xx v2/24xx v2系列,E5-16xx v2/26xx v2/46xx v2系列,E7-28xx v2/48xx v2/88xx v2系列) .
-march=core-avx-i对于GCC <4.9.0或-march=ivybridge对于GCC> = 4.9.0.
这包括Sandy Bridge(corei7-avx)选项,同时还支持新的常春藤指令集:FSGSBASE,RDRND和F16C.从GCC选项页面:
英特尔酷睿CPU具有64位扩展,MMX,SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AES,PCLMUL,FSGSBASE,RDRND和F16C6指令集支持.
基于Haswell的 Xeon(E3-1xxx v3系列,E5-1xxx v3系列,E5-2xxx v3系列).
-march=core-avx2对于GCC 4.8.2/4.8.3或-march=haswellGCC> = 4.9.0.
从GCC选项页面:
Intel Haswell CPU具有64位扩展,MOVBE,MMX,SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,POPCNT,AVX,AVX2,AES,PCLMUL,FSGSBASE,RDRND,FMA,BMI,BMI2和F16C指令集支持.
基于Broadwell的 Xeon(E3-12xx v4系列,E5-16xx v4系列)
-march=core-avx2对于GCC 4.8.x或-march=broadwellGCC> = 4.9.0.
从GCC选项页面:
具有64位扩展的Intel Broadwell CPU,MOVBE,MMX,SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,POPCNT,AVX,AVX2,AES,PCLMUL,FSGSBASE,RDRND,FMA,BMI,BMI2,F16C ,RDSEED,ADCX和PREFETCHW指令集支持.
基于Skylake的 Xeon(E3-12xx v5系列)和基于KabyLake的 Xeon(E3-12xx v6系列):
-march=core-avx2对于GCC 4.8.x或-march=skylake对于GCC 4.9.x或-march=skylake-avx512对于GCC> = 5.x
从GCC选项页面:
具有64位扩展的Intel Skylake Server CPU,MOVBE,MMX,SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,POPCNT,PKU,AVX,AVX2,AES,PCLMUL,FSGSBASE,RDRND,FMA,BMI,支持BMI2,F16C,RDSEED,ADCX,PREFETCHW,CLFLUSHOPT,XSAVEC,XSAVES,AVX512F,AVX512VL,AVX512BW,AVX512DQ和AVX512CD指令集.
要了解编译器将对该-march=skylake-avx512选项执行的操作,您可以使用:
gcc -march=native -Q --help=target
Run Code Online (Sandbox Code Playgroud)
use*_*255 20
较新版本的gcc具有-march = native,它允许编译器自动确定最佳-march标志.