問題タブ [avx2]
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.
c++ - AVX2 を使用して関数を書き直そうとしていますが、問題が発生しています
オリジナルのスカラー関数
同等の AVX 関数
最後のステップで m256i 変数を整数に変換する方法がわかりません。resShift には右シフトの m256i 値がありますが、それを整数形式に変換してその関数から返す必要があります。何か助けはありますか?
gcc - asm コードを使用して AVX2 イントリンを再実装する
皆さんにご挨拶。特別な理由により、次のように AVX2 の intrics を再実装する必要があります。
対応する関数は_mm256_and_si256(__m256i s1, __m256i s2)、AVX2 組み込み関数である です。グーグルで検索した後、 のような基本型を接続したりint、入力レジスタに接続したりするなど、類似のものを見つけました。ただし、入力パラメーターを入力レジスターに接続し、asmコードに使用する方法はまだ見つかりませんでした。floatlongs1s2ymm1ymm2vpand
では、上記の例を機能させるために私を助けてくれる人はいますか? よろしくお願いします!
visual-studio - AVX2 ギャザー命令
Visual Studio を使用して、コンパイラ組み込み関数を介して AVX2 収集命令を生成すると、VXORPS 命令が挿入されず、YMM レジスタを書き込む前の命令と収集の間の依存関係が解消されません。
ただし、Intel コンパイラはこれを行い、最終的な結果として、データの依存関係が壊れているため、顕著なパフォーマンスの向上が見られます。
入りたくない理由により、Intel コンパイラを使用できないため、Visual Studio にその VXORPS 命令を挿入するよう「強制」する方法はありますか?
私はすでに中間 __m256i を作成して VXORPS を呼び出してみましたが、うまくいきませんでした。
visual-studio - MASM/VS15 で AVX2 を使用するには?
問題:私はこのようなものを書いています(proc内):
そして、masm はinvalid instruction operandsfor first とsyntax error : ymm0for second で不平を言います。VS15 コミュニティ エディションを使用して x64 用にコンパイルしています。
c++ - SSE と AVX を使用して、行列内の最大の要素とその列と行のインデックスを見つける
1 次元行列の最大の要素と、その列と行のインデックスを見つける必要があります。
私は1次元行列を使用しているので、最初に最大要素のインデックスを見つけるだけで、行と列を簡単に取得できます。
私の問題は、そのインデックスを取得できないことです。
最大の要素を見つけてSSEを使用する機能があります。ここにあります:
また、AVXを使用する機能しない関数があります:
max 要素のインデックスを実際に見つけて、私の AVX バージョンを機能させるのを手伝ってくれる人はいますか?
c++ - SSE 行列ベクトル乗算コードを AVX に変換する
SSE 関数を AVX に変換しようとしています。関数はベクトルと行列の乗算を行います。これが私の作業 SSE コードです。
そして、AVXに関して私が思いついたのは次のとおりです。
ただし、AVX コードはクラッシュします ( Access violation reading location 0xFFFFFFFFFFFFFFFF)。
AVX 機能を適切に動作させるために誰か助けてもらえますか?
PS: 関数で渡す行列とベクトルのサイズは常に 8 の倍数です。また、SSE 関数に渡す配列は 16 ビットで整列され ( __declspec(align(16))float* = generate_matrix(256);)、AVX 関数に渡す配列は 32 ビットです。整列 ( __declspec(align(32))float* = generate_matrix(256););