VS2010 SP1 поддерживает только часть набора инструкций AVX? - PullRequest
3 голосов
/ 21 октября 2011

Microsoft заявляет, что 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". Я действительно застрял с этим.

1 Ответ

5 голосов
/ 21 октября 2011

Встроенные функции Fused-Multiply Add не являются частью AVX. Intel избавилась от этого в своих более поздних ревизиях для AVX. Таким образом, FMA - это отдельный набор инструкций.

Еще хуже, будет два из них FMA3 (Intel - Haswell), FMA4 (AMD - Bulldozer).

VS2010 SP1 поддерживает FMA4 - версию AMD.

Ни одна из процессорных линий еще не была выпущена (кроме AMD - Interlagos, которая является серверной частью Bulldozer).

Характеристики Intel FMA предназначены для FMA3. Поскольку еще ни один процессор не реализует его, вы не сможете его использовать / тестировать.

...