avx

    1熱度

    1回答

    的我有一個函數: void Func(const int * a, const int * b, size_t size, int p, int * c) { for (size_t i = 0; i < size; ++i) c[i] = (a[i]*b[i])%p; } 執行該功能爲整數的數組許多模乘法。 所有整數都是正數。 而且我需要改善它的表現。 我想到了SS

    0熱度

    1回答

    我目前正在處理一個處理圖像的項目。爲了加速這個過程(並增加我的知識),我決定使用SIMD指令編寫一些基本功能。 使用for循環的代碼是 int idx; uint16_t* A, B, C; float gAlpha = 0.8; float alpha = 0.2; for (size_t rw = 0; rw < height; rw++) { for (size_t cl

    3熱度

    1回答

    在我的項目中,我使用Eigen3.3庫來計算6x6矩陣。我決定調查AVX指令是否真的讓我對SSE有任何加速。我的CPU不支持兩組: model name : Intel(R) Xeon(R) CPU E5-1607 v2 @ 3.00GHz flags : ... sse sse2 ... ssse3 ... sse4_1 sse4_2 ... avx ... 所以,我編譯gcc4.8

    3熱度

    1回答

    我有一個由7個__m256值組成的結構,它存儲在內存中的32字節對齊。 typedef struct { __m256 xl,xh; __m256 yl,yh; __m256 zl,zh; __m256i co; } bloxset8_t; 我通過使用posix_memalign()函數動態分配的數據,或者使用用於靜態分配數據的(aligne

    -1熱度

    1回答

    使用AVX內在和Kahan的總和算法,我已經試過這(只是一個「加法」的部分): void add(const __m256 valuesToAdd) { volatile __m256 y = _mm256_sub_ps(valuesToAdd, accumulatedError); volatile __m256 t = _mm256_add_ps(accumulator,

    3熱度

    1回答

    我有一些依賴於AVX的代碼。 在相同的代碼庫中,我也使用TZCNT。 後者是BMI1的一部分。我知道我可以使用CPUID來測試這條指令,但我很懶,所以我沒有真正實現它。 要測試支持,我只需執行AVX指令。如果我得到一個#UD未定義的指令異常,我知道CPU不支持AVX。 但是tzcnt與bsf(或bsr - 我總是忘記哪個是哪個)向後兼容(種類),所以不會觸發異常。 如果我有AVX支持,是不是暗示支

    0熱度

    1回答

    考慮下面的代碼: // Thin/POD struct struct Data { __m256d a; __m256d b; }; // Thick base class class Base { // ... }; // Thick derived class class Derived : public Base { Data data; //

    2熱度

    2回答

    我有以下代碼(the xorshift128+ code from Wikipedia修改爲使用向量類型): #include <immintrin.h> #include <climits> __v8si rand_si() { static auto s0 = __v4du{4, 8, 15, 16}, s1 = __v4du{23, 34, 42, 69};

    0熱度

    1回答

    我剛安裝dlib使用conda從conda-forge渠道。是否有可能知道它是否使用AVX支持構建?

    0熱度

    1回答

    編譯英特爾AVX擴展中使用gcc7或clang的256位向量數據類型(__m256d)失敗。我能夠編譯和使用128位向量(不帶-mavx標誌)。但是,只要我嘗試avx矢量,或者找不到一些彙編器命令定義(GCC7)或者存在鏈接器錯誤(clang)。我使用端口來安裝所有編譯器或軟件包。 程序: #include <iostream> #include <emmintrin.h> #include