3

微软表示 VS2010 支持全套 AVX 指令:

http://blogs.msdn.com/b/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx

... 在 VS2010 版本中,所有 AVX 功能和指令都通过内在和/arch:AVX. ...

但我找不到任何用于融合乘加运算的内在函数

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_bk_avx_fma.htm#intref_bk_avx_fma

我需要使用_mm256_fmadd_ps函数,但“immintrin.h”标题中缺少它。我真的很坚持。

4

1 回答 1

5

Fused-Multiply Add 内在函数不是 AVX 的一部分。英特尔在后来的 AVX 版本中去掉了它。所以 FMA 是独立的指令集。

更糟糕的是,其中会有两个 FMA3(Intel - Haswell),FMA4(AMD - Bulldozer)。

VS2010 SP1 支持 FMA4 - AMD 的版本。

两条处理器线都尚未发布(AMD - Interlagos 除外,它是 Bulldozer 的服务器部分)。

英特尔 FMA 内在函数适用于 FMA3。由于还没有处理器实现它,您将无法使用/测试它。

于 2011-10-20T20:06:54.120 回答