sse

    5

    2答えて

    私はこれで頭の中で自分自身を倒し続けます。行列Aに行列Bを乗ずるためのSSEベースのアルゴリズムがあります。私は、A、B、またはその両方が転置される場所の操作も実装する必要があります。私はそれを素朴な実装、4x4マトリックスコード(これはかなり標準的なSSE操作ですが、私は思う)を示しましたが、A*B^T操作は約の2倍の時間がかかります。 ATLASの実装では、A*Bの類似の値が返されます。これは

    5

    1答えて

    私は同じことを行うことになっている三つの機能a()、b()とc()ている:私はこのコードをコンパイルすると typedef float Builtin __attribute__ ((vector_size (16))); typedef struct { float values[4]; } Struct; typedef union { Builtin b;

    12

    1答えて

    浮動小数点値の除算に_mm_div_psがあります。整数乗算に_mm_mullo_epi16があります。しかし、整数除算(16ビット値)のための何かがありますか?どのように私はそのような分裂を行うことができる?

    8

    1答えて

    sse組み込み関数を使用してfloatベクトルの合計要素(削減)を取得するにはどうすればよいですか? シンプルなシリアルコード:通常 void(float *input, float &result, unsigned int NumElems) { result = 0; for(auto i=0; i<NumElems; ++i) result += inpu

    9

    3答えて

    C/C++でのガウス畳み込み関数の高速メモリ転置アルゴリズムが必要です。私が今やっていることは convolute_1D transpose convolute_1D transpose それは、この方法では、フィルタサイズが大きい(または、私が予想よりも大きい)、または転置は畳み込みよりも長い畳み込みがかかる1920×1080マトリクス(例えばかかりなければならないことが判明しています

    6

    2答えて

    2つの64ビット整数に別の2つの64ビット整数を乗算するにはどうすればよいですか? 私はそれを行うことができる指示を見つけませんでした。

    6

    2答えて

    インストールされているバージョンのnumpyがSSE/SSE2命令セットでコンパイルされているかどうかを確認するにはどうすればよいですか? numpyのいくつかの部分がBLASを使用していることを知っていますが、BLASもチェックする方法はありますか?これはnumpyのはに対してコンパイルされたものに関するすべての情報を出力します import numpy.distutils.system_inf

    9

    2答えて

    私は、インテルが文字列処理を高速化するためにSSE 4.2 instructionsを導入したhereを読んでいます。物品から 引用: 最初のインテルのコアI7に実装SSE 4.2命令セット、 は、文字データを処理するため SIMD演算を利用して文字列とテキスト処理命令(STTNI)を提供します。もともと が文字列、テキスト、XML処理を高速化するために開発されましたが、これらの命令の強力な新機能

    7

    2答えて

    intバッファから128ビットのintベクトルレジスタを逆順にロードするSSE2命令はありますか?

    5

    1答えて

    __m128変数が4つのSP値を保持していて、最小値が必要な場合、組み込み関数があるかどうか、値間の単純な線形比較以外の値があるとしますか? 右私の解決策は、(入力__m128変数がxであると仮定)は、次のことを知っている:かなり恐ろしいですが、それが働いている x = _mm_min_ps(x, (__m128)_mm_srli_si128((__m128i)x, 4)); min = _mm