avx

    4

    1答えて

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

    4

    1答えて

    PTEST はキャリーフラグには影響しませんが、(やや厄介な)ZFだけが設定されます。もCFとZFの両方に影響します。 多くの値をテストするために次のシーケンスを考え出しましたが、実行時間が悪いと不満です。 Latency/rThoughput setup: xor eax,eax ; na vpxor xmm0,xmm0 ; na ;mask to use for

    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

    3

    1答えて

    の最適化:NPOINTS考える cv::Point pt[NPOINTS]; cv::Point rotated[NPOINTS]; float angle = WHATEVER; float cosine = cos(angle); float sine = sin(angle); for (int i = 0; i < NPOINTS; i++) { rotated[i

    1

    1答えて

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

    8

    4答えて

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

    4

    2答えて

    私は奇妙な出来事があり、それを実際に説明することはできません。私はいくつかの数値コードを書こうとしているので、いくつかの実装をベンチマークしています。私はちょうどSSEとAVXとベクトル自動追加といくつかのベクトル追加をベンチマークしたかった。これをテストするために、私は以下のコードを使用して修正しました。 コード:タイミングや計算GFLOP/Sの場合 #include <iostream> #

    0

    1答えて

    を鋳造私は組み込み関数__double2loint、__double2hiintと__hiloint2doubleキャストCUDAタイプのCPU同等物が何であるか、把握しようとしています。 _mm_cvttsd_si32は__double2lointと同等かもしれないと思いますが(それは正しいですか?)、__double2hiintと__hiloint2doubleに相当するものは見つかりませんで

    3

    1答えて

    gcc(Intel & T構文)で次のコードを実行します。 ; float a[128], b[128], c[128]; ; for (int i = 0; i < 128; i++) a[i] = b[i] + c[i]; ; Assume that a, b and c are aligned by 32 xor ecx, ecx ; Loop counter i =