問題タブ [avx]

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 投票する
4 に答える
27673 参照

intel - Intel SSE および AVX の例とチュートリアル

インテル SSE および AVX 命令を学習するための優れた C/C++ チュートリアルまたは例はありますか?

Microsoft MSDN と Intel のサイトで見つけたものはほとんどありませんでしたが、基本から理解することは素晴らしいことです..

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

c++ - m256_f32 に相当する GCC

Visual Studio 2010 で正常にコンパイルされる、次のような AVX C++ コードがあります。

ただし、GCC では次のエラーが発生します。

私はいくつかの調査を行いましたymm0.m256_f32が、長い AVX レジスタから個々のフロートを抽出するための Microsoft 固有の命令のようです。しかし、gcc/linux で同じことを行うには何を使用できますか?

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

c - AVX の SSE unpacklo_ps/unpackhi_ps に相当 (double の場合)

SSE では、4 つの float を含む 128 ビットのレジスタがある場合、つまり

私が望むなら

私は簡単に行うことができます:

同様に、私が望むなら

できます:

double を含む AVX レジスタがある場合、単一の命令で同じことを行うことは可能ですか?

これらの組み込み関数がどのように機能するかに基づいて_mm256_unpacklo_pd()、 、_mm256_shuffle_pd()_mm256_permute2f128_pd()またはを使用できないことがわかっています_mm256_blend_pd()。これら以外に使用できる指示はありますか、または上記の指示を組み合わせて使用​​する必要がありますか?

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

c++ - SSE / AVX のアラインされたメモリの valarray

valarraySSE と AVX でベクトル化できるように、アライメントされたメモリを確実に使用する方法はありますか? 私の知る限り、STL はアラインメントを保証しておらず、アロケーターを valarray に渡すことはできません。これを達成する別の方法はありますか?

よろしくお願いします!

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

gcc - i87、AVXを同時に使用するが、SSEも使用しないgccオプション

AVX拡張機能をサポートするプロセッサ用にコンパイルされた場合(たとえば適用可能)、キーを同時に-m64 -march=corei7-avx -mtune=corei7-avx使用することは理にかなっていますか?コンパイラが3セットの命令( 、、 )を同時に-mfpmath=both -mavx使用するほどではありませんか?または、スカラー(ある意味で)とベクトルのみの場合はどうでしょうか。i87SSEAVXi87AVX

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

gcc - MinGW (または gcc) の mfpmath オプション

コマンド ライン オプション (または) を使用したMinGWへの-march=corei7-avx -mtune=corei7-avxまたは-march=corei7 -mtune=corei7 -mavxコマンド ライン オプションは、数学ルーチンにAVX命令を使用できるようにしますか? from hereは機能しないことに注意してください( MinGWの最近のビルドでは「認識されないオプション」です)。-mfpmath=sse-mfpmath=both--with-fpmath=avx

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

sse - __m256d のすべての要素を、たとえば別の __m256d の 3 番目の要素に設定する方法は?

4 パックfloat( __m128) で、SSE 組み込み関数を使用できます

のすべての要素Hを の 3 番目の要素に設定しますX(これが最速の方法ですか?)

double今、私は 4 パック( )で同じことをしたいです__m256d。私は素朴にコーディングしました

しかし、これは正しいことではありません。代わりに、H={X[1],X[1],X[3],X[3]} を設定します。

それで、それを正しく行う方法は?

編集

Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz を使用

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

c - AVX を使用した符号付き/符号なし整数の最小値

私は AVX 命令ガイドを調べていましたが、32 ビット整数値のロード、ストア、および置換操作がありますが、最小値または最大値の決定などの他の操作、またはシャッフル操作は float と double に対してのみ存在します。

したがって、これらの演算を 32 ビット整数に使用したい場合は、それを float に型キャストしてから型キャストする必要がありますか、それとも他に不足している命令がありますか?

また、32 ビット整数で使用したい場合、シャッフル マスクはフロートの場合と同じままですか?

0 投票する
4 に答える
3727 参照

x86 - 8つのパックされた32ビットフロートの水平方向の合計

8つのパックされた32ビット浮動小数点数(__m256)がある場合、8つの要素すべての水平方向の合計を抽出する最も速い方法は何ですか?同様に、水平方向の最大値と最小値を取得するにはどうすればよいですか?言い換えれば、次のC ++関数の最適な実装は何ですか?

0 投票する
0 に答える
2262 参照

linux - Linuxコンピューターでavx命令を無効にするにはどうすればよいですか?

または、より具体的には、/ proc / cpuinfoとCPUIDオペコードがAVXが有効になっていることを示さないようにするにはどうすればよいですか?

(コンテキストとして、一部のAmazon EC2インスタンスにはバグがあり、AVXがアクティブであると誤って報告され、AVX命令を動的に使用するプログラムがSIGILLでクラッシュします)。

このカーネルパッチを見たことがあります:https : //patchwork.kernel.org/patch/1521191/、しかしそれがカーネルのavxの使用だけに影響するのか、それともCPUIDと/ proc/cpuinfoにパッチを当てるのかはわかりません。とにかく、私はlinux2.6.xカーネルシリーズで動作するソリューションを見つけたいと思っています。