intrinsics

    5熱度

    2回答

    如何根據主機處理器/操作系統創建可在SSE,AVX和AVX2代碼路徑之間動態切換的庫?我正在使用Agner Fog的VCL(矢量類庫)並使用GCC for Linux進行編譯。

    1熱度

    1回答

    Raspberry Pi 3 uses a Broadcom SoC with and ARMv8 A53 core。它還使用基於Debian Jessie的32位操作系統。根據ARM的ARM NEON programming quick reference,第3.2節,指令集: 的ARMv8-A AArch32指令集由A32(ARM指令集,一個32位固定長度指令集)和T32(Thumb指令集,一

    5熱度

    2回答

    大家好,我嘗試使用英特爾內部函數,像這樣 void test() { uint16_t n1 = 5; uint16_t n2 = 2; __m64 vec1, vec2, res; vec1 = _mm_set_pi16(n1, n1, n1, n1); vec2 = _mm_set_pi16(n2, n2, n2, n2); r

    2熱度

    1回答

    ARM內在函數包括提取不同大小標量的函數。功能被最完全地記錄在ARM® C Language Extensions: ET vgetQ_lane_ST(T vec, const int lane); 獲取從輸入向量指定車道的值。有12個內在函數。 和: T vget_high_ST(T2 a); T vget_low_ST(T2 a); 得到一個128位向量的高或低,一半。內部函數有24

    -1熱度

    1回答

    嗨,我試圖使用英特爾intrinsics。所以我做了一個包含這樣的內部函數一些宏: #define __M512_MM_SET_PS(dest, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)\ { \ dest = _mm512_set_ps(e15,

    1熱度

    1回答

    我已經在這裏找到了PRIMATEs密碼的一個分片實現:http://primates.ae/(我做了它的120位版本)。 我完全使用C語言編寫並使用了Intel Intrinsics,這樣我就可以使用AVX2指令集。 由於我做了一個切片的實現,我想優化它的速度,從而衡量性能,我計算每個字節的週期。爲此,我使用Windows提供的QueryPerformanceCounter()函數 現在是事情了。

    0熱度

    2回答

    我可以定義一個函數指針_mm_load_ps,_mm_store_ps之類? 我在考慮類似 float* x0; //param ... __m128 (*load_x0)(float const *mem); if((unsigned long)x0 & 15) load_x0 = &_mm_loadu_ps; else load_x0 = &_mm_load_ps; 但導致 未定義

    1熱度

    3回答

    有沒有一種方法可以使用AVX/SSE來獲取浮點矢量,向下舍入並生成一個整數矢量?所有的floor內部方法似乎都會產生一個浮點的最終矢量,這很奇怪,因爲四捨五入會產生一個整數!

    1熱度

    1回答

    在霓虹燈內部函數中,有四個內在函數(vld1 vld2 vld3 vld4)執行單向去交錯。但是如何實現8路解交織? 例如,數據是: uint8_t src[64] = {0,1,2,3,4,5,6,7,```63}; 將數據裝載到氖寄存器,並且執行8路解交織後,希望src_reg1和src_reg2的值可以是這樣的: uint8x8x4_t src_reg1; uint8x8x4_t sr

    7熱度

    1回答

    我在AVX2函數中遇到了Intel Intrinsics的一個非常奇怪的錯誤,我想在此分享它。要麼是我做錯了什麼(我不明白這是什麼),或者是圖書館裏的一個錯誤。 我有我的main.c這裏面簡單的代碼: __int64 test = 0xFFFF'FFFF'FFFF'FFFF; __m256i ymm = _mm256_set_epi64x(0x0000'0000'0000'0000,