simd

    1

    1答えて

    アセンブリsseで2つのレジスタの乗算に問題があります。 はここに私のコードがある: moltiplicazionePuntoPunto: mov edx,[esp+20] ; edx = fxx mov esi,[esp+4] ; esi = fx mov edi,[esp+8] ; edi = fy xor eax,eax

    0

    1答えて

    インテルSSE4.2組み込み関数に64ビットCRC関数が存在します。 unsigned __int64 _mm_crc32_u64 (unsigned __int64 crc, unsigned __int64 v) しかし、私はAVX2組み込み関数で256ビット版のCRC計算を見つけることができません。 私のプログラムで256ビットの変数(__m256i)を使用していますので、256ビットを

    0

    1答えて

    このC/C++コードをSIMD組み込み関数に変換しようとしています。 for(int i=0 ; i < length ; i++) A[i] = B[C[i]]; 私は(組み込み関数を使用して)SIMDコードにコード(C/C++) for(int i=0 ; i < length ; i++) A[i] = B[i]; の下 for(int i=0 ; i < len

    3

    2答えて

    __m128ベクトルの任意の要素をブロードキャストする必要があります。例えば 第二の要素: __m128 a = {a0, a1, a2, a3}; __m128 b = {a1, a1, a1, a1}; 私は組み込み関数の_mm_set1_ps(フロート)と_mm_broadcast_ss(フロート*)があることを知っています。 しかし、これらの組み込み関数は、メモリの共通使用レジスタか

    0

    1答えて

    OpenMPでSIMD指令をテストするためにこれらのコードを試しました。 #include <iostream> #include <sys/time.h> #include <cmath> #define N 4096 #define M 1000 using namespace std; int main() { timeval start,end; flo

    23

    1答えて

    ような配列は、ここではGCC 6と7はstd::arrayを使用するときに最適化することができないいくつかのコードです:g++ -std=c++14 -O3 -march=haswell -S -DC_ARRAYと上記のコンパイル #include <array> static constexpr size_t my_elements = 8; class Foo { public:

    1

    1答えて

    次に、私は、各32ビットの符号なしintを4つの8ビットに分割したいと考えています。 対応するビットは変更されません。 uInt32x4がある場合: 01000101001111100000001000010000 | 01000101001111100000001000010000 | 01000101001111100000001000010000 | 01000101001111100000

    2

    1答えて

    Iが算出された4つのフロートの128ビットベクトルを持つ、私はそうのような、このベクトルの順序を変更したい: Vector A before reordering +---+---+---+---+ | a | b | c | d | +---+---+---+---+ Vector A after reordering +---+---+---+---+ | b | a | c |

    -4

    1答えて

    プログラムを高速化するために_mm256_load_ps()イントリンシックを使用しようとしました。私が一度に8つの浮動小数点をロードし、それらをさらに計算に使用するために266bベクトルに格納することを意味します。 /* code snipet */ a_vec = _mm256_load_ps(&a[0]) b_vec = _mm256_load_ps(&b[0]) res = _mm2

    1

    2答えて

    SIMD命令を使用してHOG記述子の計算を最適化する試みがいくつかあります。OpenCV,DlibおよびSimdです。それらのすべてのHOGヒストグラムに大きさを結果として追加するためにスカラーのコードを使用します。あり float histogram[height/8][width/8][18]; float ky[height], kx[width]; int idx[size]; fl