我想要你的输入,在为至强进行优化时,使用哪个gcc编译器标记?
在mtune和三月中没有'xeon‘,那么哪一个是最接近的匹配呢?
发布于 2009-06-03 11:10:37
Xeon是一个营销术语,因此它涵盖了一长串具有非常不同内部结构的处理器。
如果你指的是更新的Nehalem处理器(核心i7),那么this slide指出,从4.3.1开始,gcc应该使用-march=generic (尽管你自己对应用程序的测试可能会发现其他设置优于这个设置)。如果您希望优化FP数学的这一方面,4.3系列还添加了-msse4.2。
这是some discussion将英特尔编译器中的调优与一些gcc标志进行比较。
发布于 2014-08-02 22:00:35
最近的GCC /至强的更新。
GCC的-march=corei7-avx < 4.9.0或GCC的-march=sandybridge >= 4.9.0。
这将为沙桥启用Advanced Vector Extensions support以及AES和PCLMUL指令集。以下是来自GCC i386/x86_64选项页面的概述:
含64位扩展的英特尔酷睿i7处理器,支持MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AES和PCLMUL指令集。
GCC的-march=core-avx-i < 4.9.0或GCC的-march=ivybridge >= 4.9.0。
这包括沙桥(corei7-avx)选项,同时还添加了对新的常春藤指令集的支持: FSGSBASE、RDRND和F16C。在“GCC选项”页面:
含64位扩展的英特尔酷睿处理器,支持MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AES、PCLMUL、FSGSBASE、RDRND和F16C6指令集。
适用于GCC的-march=core-avx2 4.8.2/4.8.3或适用于GCC的-march=haswell >= 4.9.0。
在“GCC选项”页面:
含64位扩展的英特尔哈斯韦尔处理器,MOVBE、MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、POPCNT、AVX、AVX2、AES、PCLMUL、FSGSBASE、RDRND、FMA、BMI、BMI2和F16C指令集支持。
用于GCC的-march=core-avx2 4.8.x或用于GCC的-march=broadwell >= 4.9.0。
在“GCC选项”页面:
含64位扩展的英特尔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指令集。
适用于GCC的-march=core-avx2 4.8.x或适用于GCC 4.9.x的-march=skylake或适用于GCC的-march=skylake-avx512 >= 5.x
AVX-512是256位高级矢量扩展单指令多指令集指令的512位扩展。
在“GCC选项”页面:
含64位扩展的英特尔Skylake服务器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.-march=cascade-lake (需要gcc 9.x)。在“GCC选项”页面:
启用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、CLWB、AVX512VL、AVX512BW、AVX512DQ、AVX512CD和AVX512VNNI。
AVX-512 Vector Neural Network Instructions (AVX512 )是一个x86扩展,是AVX512-512的一部分,旨在加速基于卷积神经网络的算法。
-march=cooperlake (需要gcc 10.1)。开关启用AVX512BF16 ISA扩展。
要了解编译器将如何处理-march=native选项,您可以使用:
gcc -march=native -Q --help=target发布于 2009-06-03 12:17:25
较新版本的gcc具有-march=native,它可以让编译器自动确定最佳-march标志。
https://stackoverflow.com/questions/943755
复制相似问题