intrinsics

    1热度

    1回答

    我有下面的代码会导致错误的代码库较大的情况下: struct Quadruple { double _sum; double _corr; // Fast multiply by -1, 0 or +1 (doesn't need extended precision operations). __device__ inline Quadruple& M

    -1热度

    1回答

    我有一个分段故障问题,让我发疯。 这是代码: for (k = 0; k < range; k=k+4) { int k1,k2,kfactor,k1factor,k2factor; __m128 bfly0_rv, bfly1_rv, bfly2_rv, bfly3_rv; __m128 bfly0_iv, bfly1_iv, bfly2

    0热度

    1回答

    问题 是否指示存在该褶裥/提取的int[32]并将其存储的第一位为int? 我知道固有的pext,但那不是我真正想要的。 我确实有一个代码,但我想也许有一个指定的指令。 ints数组除了第一位之外为零。人类,不需要掩蔽。 代码 void ints2bits(int &bits, int *ints) { bits = (ints[0] << 0) + (ints[1] << 1) + .

    0热度

    1回答

    刚开始使用内在函数,并触及某些暴露了我的无知的内容。下面是我所看到的人造版本(VS2015): __m128i test; //test.m128i_u16[0] = 127; //test.m128i_u16[1] = 128; //test.m128i_u16[2] = 129; //test.m128i_u16[3] = 130; //test.m128i_u16[4] = 13

    2热度

    1回答

    我是SSE编程新手,所以我希望有人能帮助我。我最近使用GCC SSE内在函数实现了一个函数来计算32位整数数组的总和。下面给出了我的实现代码。 int ssum(const int *d, unsigned int len) { static const unsigned int BLOCKSIZE=4; unsigned int i,remainder; int

    1热度

    2回答

    我试图使用内在函数'CEILING',但舍入错误使得它很难得到我想要的东西有时。示例代码只是很简单: PROGRAM MAIN IMPLICIT NONE INTEGER, PARAMETER :: ppm_kind_double = KIND(1.0D0) REAL(ppm_kind_double) :: before,after,dx be

    1热度

    1回答

    我对x86_64内在函数不熟悉,我想使用256位向量寄存器进行以下操作。 我正在使用_mm256_maddubs_epi16(a,b);然而,似乎这个指令有溢出问题,因为char * char可能超过16位的最大值。我有问题了解_mm256_unpackhi_epi32和相关说明。 任何人都可以详细说明我并告诉我目的地的灯光?谢谢! int sumup_char_arrays(char *A, c

    10热度

    1回答

    有人可以解释Intel Intrinsic Guide中给出的延迟和吞吐量值吗? 我是否正确地理解延迟是指令运行所需的时间单位数量,吞吐量是每个时间单位可以启动的指令数量? 如果我的定义是正确的,为什么在较新的CPU版本上某些指令的延迟更高(例如mulps)?

    2热度

    2回答

    我在测试Intel ADX添加进位并添加溢出到流水线添加大整数。我想看看预期的代码生成应该是什么样子。从_addcarry_u64 and _addcarryx_u64 with MSVC and ICC,我认为这将是一个合适的测试案例: #include <stdint.h> #include <x86intrin.h> #include "immintrin.h" int main(i

    1热度

    1回答

    我正在尝试使用英特尔SIMD内在函数来加速查询答案程序。假设query_cnt依赖于输入,但始终小于SIMD寄存器计数(即,有足够的SIMD寄存器来保存它们)。由于查询是我的应用程序中的热门数据,而不是每次需要时加载它们,我可以首先加载它们并将它们始终保存在寄存器中? 假设查询是float类型,并支持AVX256。现在,我必须使用类似: std::vector<__m256> vec_querie