我正在使用icpc编译器来查看我的代码(通常是用g++编译)的速度。
我所编译的处理器属于Intel的Sandy架构,所以我想使用AVX矢量化。
有人告诉我,icpc的"-xhost“标志可以让我自动受益于AVX矢量化:是这样吗?
如果没有,你能告诉旗子与icpc放在一起激活AVX吗?
最后一个问题:我也能从AVX2中受益吗?如果是,怎么做?
谢谢
发布于 2014-10-21 18:56:39
要从AVX2中获益,您需要建立在Haswell体系结构基础上的第4代英特尔Coree(R)处理器。
您的CPU只支持AVX。您可以使用"-xHost“编译标志指示编译器使用它。这告诉编译器使用主机上可用的最高SIMD指令。您还可以使用"-mavx“标志。
请注意,尽管使用AVX生成代码,您将只能在具有AVX的机器上运行它(比Sandy晚)。
若要检查编译器是否生成了AVX代码,请转储程序集并查找YMM寄存器。这些是AVX,specific.For,更多信息,看这里。
干杯!
https://stackoverflow.com/questions/26493725
复制相似问题