simd

    0

    1答えて

    __m256i変数から8つの整数を8 x 32ビットのintの配列に格納したいとします。私はその指示が_mm256_store_epi32だと思ったが、この指示が存在しないというエラーが出る!

    1

    1答えて

    は、私はそれに8ベクターでの32バイトアライン構造を持っている: struct ALIGN(32) Ray8 { float x[8]; float y[8]; float z[8]; }; AVX2を使用して、私は一斉にこれらのメンバーを操作したいです。 _mm256_load_ps()を使用して明示的にロードする必要はありますか?たとえば、次のシグネチャを

    3

    1答えて

    #define Size 50000 void main() { unsigned char *arry1 = (unsigned char*)malloc(sizeof(unsigned char)* Size); unsigned char *arry2 = (unsigned char*)malloc(sizeof(unsigned char)* Size);

    1

    1答えて

    AVXレジスタに格納されたdouble型のベクトルを要素{a0,a1,a2,a3}で持っています。 b = {a0,a1,a0,a0} c = {a1,a2,a2,a1} d = {a2,a3,a3,a2} 私はAVXを使用して、これをどのように操作を行うことができます。今、私は(も__m256d変数として格納する必要があります)3つの新しいベクトルを作りたい、次の要素を含むa、b、c、d

    8

    4答えて

    私の想像力ですか、またはPNOT命令がSSEとAVXにないのですか?つまり、ベクトルの各ビットを反転させる命令です。 「はい」の場合は、すべて1のベクトルでPXORよりも良いエミュレーション方法がありますか?私はすべての1のベクトルを設定してそのアプローチを使用する必要があるため、かなり迷惑になります。

    0

    1答えて

    私は次のコードのための奇妙なエラーを取得しています: #include <assert.h> #include <stdio.h> #include <immintrin.h> inline static double myfma(double x,double y, double z) { double r; // result

    2

    3答えて

    C++でSIMD命令を使用してuint32_t配列の値を比較し、この配列の新しい配列に値を戻したいと考えています。 それは多かれ少なかれ動作しますが、私はまだ4つのif節を使用して、値を書き戻すためのSIMD命令の後に値があるかどうかを判断しています。 SIMD命令でこれを行う方法はありますか? 関数allocateAlignedBufferは、名前が示しているとおりに正しく動作しています。 ui

    1

    1答えて

    はthis questionによると、私はそれが正しく仕事をしていませんが、それは十分に速くない7で5,7によって水平加算にこの時間5を実装しました。 それはそれよりも速くすることができますか?私はhaddと他の指示を使用しようとしましたが、改善が制限されています。例えば、_mm256_bsrli_epi128を使うと少し上手くなりますが、それは車線のために利益を奪う余分な順列を必要とします。です

    -1

    1答えて

    いくつかのプロジェクトでSIMD命令を使用しようとしていますが、_mm_set1_epi32(x)コマンドを使用できない点を除いてすべて正常に動作しています(_mm_set_epi32(x、x、 x)とそれは正常に動作しますが、コマンドが使用されている別のソースからコードを使用したい場合は、「メモリアクセスエラー」というメッセージが表示されます(エラーの正しい英語翻訳がない、私は)それがSpeic

    2

    1答えて

    2つの256ビットのベクトルAとBで16ビットの値を交換したいと思います。夢のようなやり方は、それを行うための組み込み命令を見つけることです。残念ながら、私は見つけることができなかったと私はこの仕事のための指示がないと思う。シャッフル、並べ替え、ブレンドなどの指示は、宛先の値を保持または破棄します。 vector A : |a0|a1|a2|a3|a4|a5|a6|a7||a8|a9|a10|a1