2011-10-20 10 views
3

MicrosoftがVS2010は、AVX命令のフルセットをサポートしています状態:VS2010 SP1はAVX命令セットの一部のみをサポートしていますか?

VS2010のリリースで

http://blogs.msdn.com/b/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx ... 、すべてのAVX機能や命令はが完全には、内因性および/arch:AVXを介してサポートされています。 ...

しかし、私は融合乗算のための任意の組み込み関数は、私が_mm256_fmadd_ps機能を使用する必要があるが、それは「immintrin.h」ヘッダに欠けているオペレーション

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

を追加見つけることができません。私は本当にそれに固執しています。

答えて

5

Fused-Multiply Add組み込み関数は、AVXの一部ではありません。インテルはAVXの後の改訂版でそれを取り除いた。したがって、FMAは別の命令セットです。

さらに悪いことに、FMA3(Intel-Haswell)、FMA4(AMD-Bulldozer)の2つがあります。

VS2010 SP1は、FMA4 - AMDのバージョンをサポートしています。

どちらのプロセッサーラインもまだリリースされていません(ただし、Bulldozerのサーバー部分であるAMD - Interlagosを除く)。

インテルFMA組み込み関数は、FMA3用です。プロセッサーはまだ実装されていないので、まだそれを使用/テストすることはできません。

+0

ああ、このコマンドがAVXの一部ではないことはわかりませんでした。私は現在のハードウェアからあまりにも多くのものを望んでいるようです:)代わりに_mm256_mul_ps + _mm256_add_psを使用します。ありがとうございました! – Mike

+0

もっと欲しいのは唯一の人じゃありません... :) AVXが出てくるのを約1年待っていました。そして今、私は熱心にFMA3、FMA4/XOP、AVX2を待っています。 XD – Mysticial

+0

FMA4はもともとインテルのものでしたが、開発中にFMA3に変更されました。 –

関連する問題