intrinsics

    5热度

    1回答

    C++摘要 在你的代码的预处理器部分使用#pragma intrinsic命令将大大增加大多数数学函数调用的速度。 #pragma intrinsic(sqrt, pow) 上面的代码允许大多数数学函数调用直接发送到数学协处理器而不是发送到函数堆栈。 问题 有没有办法在C#这样做吗?除了重写内置函数来做类似的事情。例如像,通常做的两个电源,因此这将是适当的,但它不是我所期待的: public

    4热度

    2回答

    我试图将SSE3内部函数中编写的代码转换为NEON SIMD,并且因为洗牌功能而卡住了。我曾看过GCC Intrinsic s,ARM manuals和其他论坛,但尚未能够找到解决方案。 CODE: _m128i upper = _mm_loadu_si128((__m128i*)p1); register __m128i mask1 = _mm_set_epi8 (0x80,0x80,0x8

    1热度

    2回答

    我认为这是一个愚蠢的问题,但我试了一天解决这个不运气,所以这里是。 我有四个向量(float32x4)的寄存器,我想对其中的一些进行一些处理,另一个我想将其设置为0。 例如这个问题在C: for (int i=1; i<=4; i++) { float b = 4/i; if(b<=3) result += process(b); } 所以第一个将不处理,但

    8热度

    2回答

    我使用SSE2内在函数来优化我的应用程序的瓶颈,有以下问题: ddata = _mm_xor_si128(_mm_xor_si128( _mm_sll_epi32(xdata, 0x7u), _mm_srl_epi32(tdata, 0x19u)), xdata); 在Microsoft C++编译器,这将不能编译,因为类型__m128i和unsigned int(传递给_mm_sll

    3热度

    2回答

    我想从2张图像中找到相机extrinsics。我拥有CameraCalibration的内部函数,并且场景已知尺寸(使用3DSMAX创建)。 棋盘是1000 * 1000,每个正方形125 * 125。相机处于(0,0,3000)处,直直看向以原点为中心的棋盘。在第二图像时,相机被转换(-1500,0,-402)并旋转30°在Y轴上再次指向棋盘的中心: GoodFeaturesToTrack正确地

    1热度

    2回答

    我是SSE和SSE2的新手,我写了一个小C样本(分配两个计数器,其中一个递增,另一个递减)。我使用了intrinsics和Microsoft Visual Studio 10 C++ Express。作为第二步,我想了解引擎盖下发生了什么,但我现在感到困惑。 例如,对于循环的分配操作编译为: __m128i a_ptr = _mm_load_si128((__m128i*)&(a_aligned[

    1热度

    2回答

    为了测试性能,我已经给了一个任务来将小块asm转换为内在。 我从来没有开发任何一个代码,但我理解asm和c,并阅读内在的语法。但我无法找到有关内存访问寄存器的信息。我发现2个功能: getReg()和setReg() getReg()带有不同的寄存器表的表和他们的ID /数: - 通用整数寄存器 - 应用寄存器 - 控制寄存器 - 间接寄存器 但他们都没有对应像rax,rdi等asm寄存器。 我该

    1热度

    2回答

    如何将xmm寄存器有效地转储到uint8_t数组[16]中?

    1热度

    1回答

    使用OSX的Accelerate framework,您可以访问4路SIMD功能,您可以在其中操作矢量浮点数,矢量整数和矢量布尔值。它为您提供4路分区,例如并且还有4路正弦,余弦,棕褐等。 对于4个浮点数的矢量浮点数,框架提供了vFloat。 对于4个布尔矢量布尔,该框架提供了vBool32。 我试图做到的是这行代码的4路SIMD版本: float a = ...; float b =

    4热度

    2回答

    我试图使用AVX固有的解压缩指令_m256_unpacklo_ps和_m256_unpackhi_ps交错16个浮点值。我得到的结果很奇怪,或者是因为我不了解AVX应该如何解封,或者因为某些东西不能正常工作。 我所看到的是,当我尝试,例如,解开低位来自两个向量,v1和v2花车,到第三,V3,我看到以下内容: 如果V1是[a b c d e f g h] 且v1 [i j k l m n o p]