simd

    5

    1答えて

    したがって、AVXにはimmintrin.hという機能があり、2つの__m128i値の連結を1つの__m256i値に格納できるようにする必要があります。これがなぜ起こるか私は本当に理解していない error: incompatible types when assigning to type ‘__m256i’ from type ‘int’ : __m256i as[2]; __m128i

    7

    2答えて

    5年前からMono.SIMD(またはMonoの中の一般的なSIMDサポート)が開発されているかどうか知りたいです。私は個人的には、これがC#のスピードを向上させるための大きな一歩だと思います。しかし、私はしばらくそれを使用して、私はMono.SIMDが多くの機能が不足しているとして遅れていると感じています。 私が直面してる問題のいくつかが含まれます: これまでSSE4.1以来、1回の操作で実現する

    8

    1答えて

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

    6

    2答えて

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

    13

    1答えて

    同じ長さ(たとえば、m)のすべての文字列、同じ長さの別の文字列sがあります。n(8ビット)の文字列があります。 sから他の各文字列までのハミング距離を計算する必要があります。プレーンCのようなもの: unsigned char strings[n][m]; unsigned char s[m]; int distances[n]; for(i=0; i<n; i++) { int

    5

    1答えて

    イメージ内に単一のRGBピクセルを格納する構造体を作成しています。 struct Pixel { // color values range from 0.0 to 1.0 float r, g, b; }__attribute__((aligned(16)); 私はなど、乗算、私は一度にすべての3つのカラーチャンネルの操作を行うことができるこの方法を追加するようなもの

    6

    3答えて

    Iスパースアレイa(ほとんどゼロ)を有する: unsigned char a[1000000]; およびIは、SIMD命令を使用してaの非ゼロ要素のインデックスの配列bを作成したいですAVX2を搭載したIntel x64アーキテクチャー私はそれを効率的に行うためのヒントを探しています。具体的には、連続して配置されたSIMDレジスタ内の連続した非ゼロ要素の位置を取得するSIMD命令がありますか?

    7

    1答えて

    私は本当に(本当に)高速Sobel operatorを実装したいと思います。私の友人と私は書きました(ソースはhereです)。以下は、私がこれまでに考えていることです... まず、8ビットの符号なし整数配列にイメージをグレースケールの画像として格納します。 実際のソーベルフィルタを書くには、ピクセルごとにGxとGyを計算する必要があります。これらの数値はそれぞれ、原点の次​​の6ピクセルのおかげで

    5

    1答えて

    平均250msで私のデュアルコア、3 GHz Intelプロセッサで動作するアルゴリズムがあり、それを最適化しようとしています。現在、std::nth_elementコールは、std::vectorで約6,000回呼び出され、150〜300要素の平均50msを要します。私は現在、ベクトルから2つのdoubleを検索し、単純な<の比較を行う、私が使用するコンパレータを最適化するのに少し時間を費やしま

    5

    1答えて

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