Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does VS2010 SP1 support only part of the AVX instruction set?

Microsoft states VS2010 supports the full set of AVX instructions:

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

... In VS2010 release, all AVX features and instructions are fully supported via intrinsic and /arch:AVX. ...

But I cannot find any Intrinsics for Fused Multiply Add Operations

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

I need to use _mm256_fmadd_ps function but it is missing in "immintrin.h" header. I'm really stuck with it.

like image 563
Mike Avatar asked Dec 04 '25 14:12

Mike


1 Answers

The Fused-Multiply Add intrinsics aren't part of AVX. Intel got rid of it in their later revisions for AVX. So FMA is separate instruction set.

Even worse, there will be two of them FMA3 (Intel - Haswell), FMA4 (AMD - Bulldozer).

VS2010 SP1 supports FMA4 - AMD's version of it.

Neither processor line has been released yet (except for AMD - Interlagos, which is the server part of Bulldozer).

The Intel FMA intrinsics are for FMA3. Since no processor implements it yet, you won't be able to use/test it yet.

like image 160
Mysticial Avatar answered Dec 07 '25 02:12

Mysticial



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!