VS2010 SP1 поддерживает только часть набора инструкций AVX?

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

Мне нужно использовать _mm256_fmadd_ps функция, но она отсутствует в заголовке "immintrin.h". Я действительно застрял с этим.

1 ответ

Решение

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

Хуже того, их будет два: FMA3 (Intel - Haswell), FMA4 (AMD - Bulldozer).

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

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

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

Другие вопросы по тегам