simd

    2

    1答えて

    私はAVX(ARM NEONから来たもの)の新人であり、AVXには多くのU8算術が欠けていることに驚いていました。 は、そのため私は、インライン関数でmax(a,b)-min(a,b)に頼らなければならなかった: static inline __m256i _mm256_abd_epu8(__m256i a, __m256i b) { return _mm256_sub_epi8(_m

    2

    1答えて

    SSE要素で動作する指数関数の近似を探しています。即ち、__m128 exp(__m128 x)。 私は速いですが、精度が非常に低いように思わ実装を持っている: static inline __m128 FastExpSse(__m128 x) { __m128 a = _mm_set1_ps(12102203.2f); // (1 << 23)/ln(2) __m128i

    3

    1答えて

    11ビットの精度で高速atan2(浮動小数点数)を実装しようとしています。 atan2実装は画像処理に使用されます。 したがって、SIMD命令(x86(SSE2を使用))& ARM(vpfv4 NEONを使用)をターゲットにしたインプリメンテーション)を使用して実装する方がよい場合があります。 今のところ私はチェビシェフ多項式近似(https://jp.mathworks.com/help/fix

    1

    1答えて

    私はAVXがSSEより約1.5倍速くなると予想していました。 Intel Core CPU(Broadwell)では、3つのアレイ(3つのアレイ* 16384要素* 4バイト/要素= 196608バイト)がL2キャッシュ(256KB)に収まる必要があります。 使用するはずの特別なコンパイラ指令またはフラグはありますか? コンパイラバージョン $ clang --version Apple LLV

    2

    1答えて

    avx2レジスタ内の32ビットint値のビット反転を実行する方法はありますか? など。 _mm256_set1_epi32(2732370386); <do something here> //binary: 10100010110111001010100111010010 => 1001011100101010011101101000101 //register contains 1268

    0

    1答えて

    私はSIMDを勉強していて、文字を見つける際にstrchrを打つことが可能かどうかを知りたいと思っていました。 strchrは同じ組み込み関数を使用しているようですが、文字が配列内にあり、ヌルチェックを避けることを計画しているのに対して、nullをチェックすると仮定します。 私のコードは次のとおりです。で size_t N = 1e9; bool found = false; //Not rea

    3

    1答えて

    Intelの組み込み関数を使用して、複数の単精度演算を並列に実行するアルゴリズムを作成しました。私のアルゴリズムの各繰り返しの結果は、単一の256ビットベクトル(__m256)の非ゼロエントリの数です。例えば :反復の結果は、4 ベクトル内の数の非ゼロのエントリをカウントするための最速の方法は何である 00000000 FFFFFFFF 00000000 00000000 00000000 FFF

    0

    1答えて

    XCode 7.1でCプログラムでSIMD組み込み関数を使用しようとしています。 (私は、C++プログラムではなく、C99プログラムを書いています)。 私はimmintrin.hをインクルードしました。そして、非常にうまく機能する組み込みコマンドを使っていくつかの関数を書いてきました。 float cimpl_sum_m128(__m128 x){ float out; __m

    4

    1答えて

    私はしばしば積分画像を計算する必要があります。これは単純なアルゴリズムです: uint32_t void integral_sum(const uint8_t * src, size_t src_stride, size_t width, size_t height, uint32_t * sum, size_t sum_stride) { memset(sum, 0, (width

    4

    1答えて

    カーネルで(SSE/AVXのような)SIMD命令を多用することはできませんでした(ただし、RAID6のパリティ計算を高速化するために使用された場所は1つありません)。 Q1)これに関する具体的な理由やユースケースの不足はありますか? Q2)デバイスドライバなどでSIMD命令を使用したい場合は、今日何をする必要がありますか? Q3)ISPCのようなフレームワークをカーネルに組み込むのはどれだけ難しい