simd

    0

    1答えて

    私は上記の解釈の問題をかなり混乱させています。私はこのような組み込み関数を使用して、4×64ビット整数値2^32で256ビットのベクトルレジスタを設定: __m256i vec_mask = _mm256_set1_epi64x(1 << 32); 私は8 * 32ビット整数として解釈したい: __m256i * tmp_mask = new __m256i; _mm256_stor

    0

    1答えて

    私はベクトルのすべての要素を追加するためのインライン関数を実装しましたが、非SIMD以外のものより高速ではありません。 宣言:これらは、ベクター内のすべてのint型の値を追加するための私の2つの方法があり #define N 128 #define M N int __attribute__((aligned(32)))temp8[8]; __m256i vec; int __attrib

    2

    1答えて

    SIMDを使用してexponential関数を計算しようとしています。私はこの機能を見つけました:https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_exp_ps&expand=2136 私はすでに"immintrin.h"を私のコードに入れました。また、私のCPUはSSEというフラグを持っています。しかしg

    4

    1答えて

    セットアップ上の過負荷:私はSIMD組み込み関数を使用し、いくつかのconstexprの機能内で使用したい機能を持っている を。 そのためには、私はそれをconstexprにする必要があります。しかし、SIMD組み込み関数はconstexprとマークされておらず、コンパイラの定数評価プログラムはそれらを処理できません。 私はSIMD組み込み関数を同じことをするC++ constexpr実装に置き換

    4

    1答えて

    私はAVXバージョンに機能を変換しようとしています。関数自体は、基本的にはfloatを比較し、true/falseを返すのは計算に依存します。ここで 本来の機能である: bool testSingle(float* thisFloat, float* otherFloat) { for (unsigned int k = 0; k < COL_COUNT/2; k++) {

    2

    1答えて

    次のループは、整数行列を別の整数行列に変換します。興味深いことにコンパイルすると、結果が出力マトリックスに格納されるmovaps命令が生成されます。なぜgccですか? データ: int __attribute__((aligned(16))) t[N][M] , __attribute__((aligned(16))) c_tra[N][M]; ループ: .L39: lea

    4

    1答えて

    私は、SIMDを使用してコードのこの部分を書き換えるしようとしている: int16_t v; int32_t a[16]; int8_t b[32]; ... ((int16_t *)a[i])[0] = b[i]==1? -v:v; ((int16_t *)a[i])[1] = b[i]==1? -v:v; 私は価値が選んを実行するために_mm256_and_si256と_mm25

    1

    4答えて

    にARMシステムで定義されているuint32x4_tのビットシフト演算子をオーバーロードしたいとします。 struct uint32x4_t { uint32_t val[4]; }; この値がシフトし、一定即時を期待SIMD関数への呼び出しで行われるべきである: uint32x4_t simdShift(uint32x4_t, constant_immediate); shi

    1

    2答えて

    は、私は16ビットのデータとSSEの配列を持って考えてみましょう8ビットのデータレジスタ: {1,2,3,4,5,6,7,8} 今、私は唯一の下位バイトを格納することにより、8ビットのデータにこのSSEの配列を変換する必要があります以下のような最初の8つのバイトで16ビットデータの: {1,2,3,4,5,6,7,8,0,0,0,0,0,0,0,0}. この操作を実行するための任意のSSE命令はあ

    1

    1答えて

    AVX2ベクトルを定数で除算したい。私はthis questionと他の多くのページを訪問しました。何かを助けて助けてくれると思ったのですが、私は理解しませんでした。だから問題は、この部門はボトルネックです。 AVX命令を使用して操作をフロートして行うために、鋳造、 まず:私は、2つの方法を試してみました最初の方法では //outside the bottleneck: __m256i veci