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,