問題タブ [sse]
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.
x86 - x86での「非一時的」メモリアクセスの意味は何ですか
これはやや低レベルの質問です。x86 アセンブリには、次の 2 つの SSE 命令があります。
MOVDQA xmmi, m128
と
MOVNTDQA xmmi, m128
IA-32 Software Developer's Manual によると、MOVNTDQAのNTはNon-Temporalを表し、それ以外は MOVDQA と同じです。
私の質問は、非時間的とはどういう意味ですか?
optimization - 3D 演算を SSE やその他の SIMD に変換すると、どれくらい高速化しますか?
私は自分のアプリケーションで 3D 数学を広範囲に使用しています。ベクトル/行列ライブラリを SSE、AltiVec、または同様の SIMD コードに変換すると、どの程度の速度向上を達成できますか?
gcc - 組み込み関数を使用するときに GCC に 3 つ以上の SIMD レジスタを使用させるにはどうすればよいですか?
私はいくつかのコードを書いており、SIMD 組み込み関数 SSE2/3 を使用して高速化しようとしています。私のコードは、いくつかのデータを XMM レジスターにロードして何度も操作する必要があるような性質のものです。生成されたアセンブラー コードを見ていると、XMM0 と XMM1 で別のものをリロードするために、GCC がデータをメモリにフラッシュし続けているようです。x86-64 用にコンパイルしているので、15 個のレジスタがあります。GCC が 2 つしか使用していないのはなぜですか? さらに使用するように依頼するにはどうすればよいですか? レジスタに値を「固定」する方法はありますか? 変数定義に "register" キーワードを追加しましたが、生成されたアセンブリ コードは同じです。
c - 文字配列と整数配列の速度の違いは?
現在、画像データ(8ビット符号付きおよび符号なし)が16として割り当てられた16整列整数の配列に格納されているビデオ処理ソフトウェアを扱っています。
一般に、次のようなsigned / unsigned char配列を使用すると、読み取りと書き込みが高速になりませんか?:
キャッシュラインのサイズとデータ転送の最適化についてはほとんど知りませんが、少なくともそれが問題であることはわかっています。それを超えて、SSEは将来使用される予定であり、その場合、char-arrays(int配列とは異なり)はすでにパック形式になっています。では、どちらのバージョンが高速でしょうか?
c - Intel/AMD 64 ビットでの C でのバッファーのプリフェッチについて学習するための最適なリソース
などのプリフェッチ関連の機能をマスターすることに興味があります。
_mm_prefetch(...)
そのため、配列をループする操作を実行すると、メモリ帯域幅が完全に利用されます。これについて学ぶための最良のリソースは何ですか?
Intel Linux プラットフォームで GCC 4 シリーズを使用して C でこの作業を行っています。
visual-studio-2005 - VS2005 の SSE4 命令?
Visual Stdio 2005 を使用してコンパイルされたプロジェクトで popcnt 命令を使用する必要があります
。組み込み関数は VS2008 でのみ機能し、ブロック__popcnt()
に記述してもコンパイラは命令を認識しないようです。__asm {}
これを行う方法はありますか?
c# - C# で SSE を使用することは可能ですか?
C# コードの最適化に関する質問を読んでいましたが、1 つの解決策は SSE で C++ を使用することでした。ac# プログラムから直接 SSE を実行することは可能ですか?
x86 - 新しい命令セットの開発
Intel は、SSE の 256 ビット操作への拡張を含むAVXと呼ばれる新しい命令セットをリリースする予定です。つまり、4 つの倍精度要素または 8 つの単精度要素のいずれかです。
AVX をサポートするハードウェアがまだないことを考えると、AVX 用のコードを開発するにはどうすればよいでしょうか? より一般的に言えば、開発者は、たとえば、サポートする CPU がリリースされたときにソフトウェアを準備したい場合など、存在しないハードウェア用のコードをどのように記述できるでしょうか?
c++ - SSE 命令の使用
大きな整数配列の各要素に対して実行される C++ で記述されたループがあります。ループ内で、整数の一部のビットをマスクしてから、最小値と最大値を見つけます。これらの操作に SSE 命令を使用すると、ビットごとの AND および if-else 条件を使用して記述された通常のループと比較して、はるかに高速に実行されると聞きました。私の質問は、これらの SSE の指示に従うべきですか? また、コードが別のプロセッサで実行されるとどうなりますか? それでも動作しますか、それともこれらの手順はプロセッサ固有のものですか?
c++ - GNUC++用のSSESSE2およびSSE3
GNU C ++のSSE、SSE2、SSE3を理解するための簡単なチュートリアルはありますか?SSEでコードの最適化をどのように行うことができますか?