問題タブ [fma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
4140 参照

floating-point - 融合積和から最も恩恵を受けるのはどのアルゴリズムですか?

fma(a,b,c)a*b+c中間結果を丸めないこと以外は と同等です。

この丸めを回避することで大きなメリットが得られるアルゴリズムの例をいくつか教えてください。

回避する乗算後の丸めは、回避しない加算後の丸めよりも問題が少ない傾向があるため、明らかではありません。

0 投票する
1 に答える
1669 参照

c++ - 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サポートされています。..。

しかし、FusedMultiplyAdd操作の組み込み関数が見つかりません

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」ヘッダーにありません。私は本当にそれに固執しています。

0 投票する
2 に答える
1058 参照

c - CPU上の乗加算「a = a * 2 + b」命令?

古典的な積和演算はa = a + b*cです。しかし、現在、1クロックサイクルで整数に対して次の操作を実行できる命令が存在するかどうか疑問に思っています: ( a と b は符号なし64ビット整数です:unsigned long long int )

現在、私は使用しています:

最初のものと

2番目のもの。そして、ASM ではそれぞれが 2 つの命令に変換されていると思います。しかし、代わりに 1 つの ASM 命令を使用する方法はありますか (また、Intel CPU のどの命令セット拡張を使用しますか)?

(私はこの操作を何十億回も行うため、それを検索します)

0 投票する
1 に答える
1711 参照

optimization - Multiply and Add Functions

This question is regarding the mad functions available in OpenCL which promise significant improvements for calculations of the type:

if used as mad(a,b,c) and compiled with cl-mad-enable.

I have tried a calculation of the form a + b * c + d * e using mad for a very huge size and was expecting significant improvement. Surprisingly, it took the same time.

If anybody has experience of this, I would appreciate some insight. I have a jist that it should work because most of the resources are full of praise for mad(). Note: The data types I am using are all doubles, and if it is important, my usage of mad resulted in a v. huge precision loss.

0 投票する
3 に答える
1771 参照

sse - AMD FMA 4 組み込み関数のリファレンスはどこにありますか?

SSE (128 ビット) 呼び出しを使用するコードを変更して、Bulldozer Opteron で 256 ビット FMA 機能を使用しようとしています。これらの呼び出しの組み込み関数が見つからないようです。

このフォーラムのいくつかの質問では、これらの組み込み関数が使用されています (例: 256 ビット AVX ベクトルで水平方向の最大値を見つける方法) 。

これを見つけました: http://msdn.microsoft.com/en-us/library/gg445140.aspx
およびhttp://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/ compiler_c/index.htm#intref_cls/common/intref_avx_fmadd_ps.htm

しかし、AMD 開発者向けドキュメントには何も見つからないようです。

0 投票する
1 に答える
2637 参照

cuda - fmad=false は良好なパフォーマンスを提供します

Nvidia のリリース ノートから:

私は 2 つのカーネルを持っています。1 つは多くの乗算で純粋に計算バウンドですが、もう 1 つはメモリ バウンドです。実行すると、計算集約型カーネルのパフォーマンスが一貫して向上し (約 5%) -fmad=false、メモリ バウンド カーネルをオフにすると、パフォーマンスがほぼ同じ割合で低下します。したがって、FMA はメモリに制約のあるカーネルではうまく機能しますが、コンピューティングに制約のあるカーネルは、オフにすることでパフォーマンスを少し圧迫する可能性があります。その理由は何ですか?私のデバイスは M2090 で、CUDA 4.2 を使用しています。

完全なコンパイル オプション: (または、とにかくそれがデフォルトであるため、-arch,sm_20,-ftz=true,-prec-div=false,-prec-sqrt=false,-use_fast_math,-fmad=false単に削除します。fmad=false

0 投票する
2 に答える
954 参照

c - libcの関数fmaを使用できるシナリオはありますか?

私はこのページに出くわし、奇妙な浮動乗算加算 関数があることに気付きました-fmaそしてfmaf。結果は次のようになります。

また、値は無限の精度であり、結果形式に1回丸められます

しかし、AFAICT私はこれまでそのような三項演算を見たことがありません。だから私はこの関数のcumstom使用法は何であるか疑問に思っています。

0 投票する
2 に答える
523 参照

floating-point - Z3: 浮動小数点 FMA セマンティクス

Z3 は、このベンチマークに対して満足のいくモデルを返します: http://rise4fun.com/Z3/Bnv5m

a*b+0ただし、クエリは基本的に、FMA 命令を使用するのと同等であると主張していますa*b。これは、IEEE 浮動小数点数にも当てはまると思います。ベンチマークは、どちらaでもないことを明示的に確認することに注意してください。bNaN

FMA のエンコードに問題はありますか?

0 投票する
2 に答える
35324 参照

c - SSE/AVX で Fused Multiply-Add (FMA) 命令を使用する方法

一部の Intel/AMD CPU は、SSE/AVX で同時に乗算と加算を実行できることを知りまし

コードでこれを行う方法を知りたいのですが、CPU の内部でどのように行われるかも知りたいです。つまり、スーパースカラー アーキテクチャのことです。SSEで次のような長い金額をやりたいとしましょう:

私の質問は、これをどのようにして同時乗算と加算に変換するのですか? データは依存できますか? つまり、CPUは_mm_add_ps(sum, _mm_mul_ps(a1, b1))同時に実行できますか、それとも乗算と加算に使用されるレジスタは独立している必要がありますか?

最後に、これは FMA (Haswell) にどのように適用されますか? _mm_add_ps(sum, _mm_mul_ps(a1, b1))単一の FMA 命令またはマイクロ操作に自動的に変換されますか?