【发布时间】:2013-12-08 18:17:14
【问题描述】:
/arch:AVX 是否在 Visual Studio 2012 Update 4 上启用 AVX2(带有 256 位整数 SIMD 指令和一些新的 FP shuffle)?
思路:
-
是的,它启用了 AVX,因为 VS 没有提到 AVX2。但我认为VS可以做AVX2,因为我的内在工作。
-
不,不是因为 AVX 和 AVX2 是独立的 CPU 功能
(Sandybridge vs. Haswell,或挖掘机/Zen vs. Bulldozer),
就像 SSE 和 SSE2 是分开的一样
【问题讨论】:
-
VS 2012 具有 AVX2 内在函数。所以你可以使用它们。您只需要
/arch:AVX即可启用 VEX 编码。因此,如果/arch:AVX2甚至存在,那是为了让编译器自动使用它们——我怀疑它是否能够做到,因为 VS 在自动矢量化方面有落后的历史。 -
@Mysticial
ignoring unknown option '/arch:AVX2':-( -
请注意,
/arch:AVX2的支持包含在 Visual Studio 2013 Update 2 or later 和 Visual Studio 2015 Technical Preview 中。 -
AVX 有 256 位寄存器,但只有 FP 指令(包括 FP shuffle)扩展为 256b。 AVX2 添加了 256b 版本的整数指令,以及一些新的车道交叉洗牌(针对 FP 和整数)。
标签: c++ visual-c++ visual-studio-2012 vectorization avx2