问题标签 [intrinsics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
intrinsics - 相机外在计算错误
我正在尝试从 2 张图像中找到相机外在因素。我有来自 CameraCalibration 的内在函数,并且场景具有已知尺寸(使用 3DSMAX 创建)。
棋盘是 1000*1000,每个方格是 125*125。相机位于 (0,0,3000) 处,直视以原点为中心的棋盘。在第二张图像中,相机平移 (-1500, 0, -402) 并在 Y 轴上旋转 30° 以再次指向棋盘的中心:
GoodFeaturesToTrack 正确识别 81 个角:
我创建棋盘角的 3d 点,cvFindExtrinsicCameraParams2 来计算内在函数,而 cvRodrigues2 来获得旋转矩阵。这是代码
结果似乎不正确,我期待翻译/旋转,但我明白了:
有人会知道我做错了什么吗?谢谢!
assembly - Converting inline ASM to Intrinsic
I've been give a task to convert small piece of asm into intrinsic in order to test performance. I ve never developed any code for either one, but I understand asm and c, and reading up on intrinsic syntax. But I cant find info on how intrinsic is dealing with accessing registers. i found 2 functions:
getReg() and setReg()
getReg() comes with a table of different register tables and their id/number: -General Integer Registers -Application Registers -Control Registers -Indirect Registers But none of them seems to correspond to asm registers like rax,rdi and so on.
How can I address registers eg rcx, rdi and so on in intrinsic? Or in other words how can I convert this:
mov %0, %rcx
to intrinsic equivalent?
c - 将 Intrinsic xmm 寄存器转换为 uint8_t 数组[16]
如何有效地将 xmm 寄存器转储到 uint8_t 数组 [16] 中?
sse - 在 SSE 和 NEON Intrinsics-Shuffle 之间转换
我正在尝试将用 SSE3 内在函数编写的代码转换为 NEON SIMD,但由于 shuffle 功能而被卡住。我查看了GCC Intrinsic、ARM 手册和其他论坛,但未能找到解决方案。
代码:
虽然 vtbl1_u8(uint8x8_t,uint8x8_t) 指令创建了一个查找表,可用于将值分配给目标寄存器,但它仅在 64 位寄存器上运行。此外,shuffle 操作在开始时执行比较,必须在NEON 和我不知道如何有效地做到这一点。
r0 = (mask0 & 0x80) ? 0 : SELECT(a, mask0 & 0x0f) // SELECT(a,n) 从 a 中提取第 n 个 8 位参数。
r1 = (mask1 & 0x80) ?0 : 选择(a, mask1 & 0x0f)
...
我找不到一条指令,它首先检查掩码的高位,然后有效地选择掩码的低 4 位。我知道我们可以比较寄存器中的每个位,然后在指定条件时选择低 4 位,但是我希望能有效地做到这一点。希望有人可以提供帮助或提供参考。
非常感谢,
干杯!
c++ - SSE2代码优化
我正在使用 SSE2 内在函数来优化我的应用程序的瓶颈,并且有以下问题:
在 Microsoft C++ 编译器上,这不会编译,因为类型__m128i
和unsigned int
(传递给_mm_sll_epi32
指令)不可互换。
为什么会这样,我应该如何将任意unsigned int
值传递给_mm_sll_epi32
?
_m128i
是:
c++ - 用于比较 (_mm_cmpeq_ps) 和赋值操作的 SSE 内在函数
我已经开始使用 SSE 优化我的代码。本质上,它是一个光线追踪器,通过将坐标存储在 __m128 数据类型 x、y、z 中来一次处理 4 条光线(四条光线的坐标按轴分组)。但是,我有一个分支语句可以防止被零除,我似乎无法转换为 SSE。在串行这是:
其中 wZ 是 z 坐标,需要对所有四条射线进行此计算。
我怎么能把它翻译成 SSE?
我一直在尝试使用 SSE 等于比较,如下所示(现在 wz 属于 __m128 数据类型,其中包含四条光线中每条光线的 z 值):
然后用它来识别 wZ[x] = -1.0 的情况,取这种情况的绝对值,然后照常继续计算。
然而,我在这方面的努力并没有取得太大的成功。
c - 使用带有嵌套 for 循环和内在函数的 openmp 时遇到问题
所以我在找出使用 openmp 并行化这些 for 循环的最佳方法时遇到了一些麻烦。我猜最大的加速将来自并行化中间循环,就像我在这里所做的那样:
但是,这目前几乎没有给我提速。任何提示都会很棒。我已经被困了很长一段时间了。
visual-c++ - __addgs* 是如何使用的,GS 是什么?
在微软的网站上可以找到一些细节
内在功能。据说offset
是
从 GS 开头的偏移量。我假设GS指的是处理器寄存器。
GS与堆栈有什么关系(如果有的话)?或者,我如何计算相对于GS的偏移量?
(而且,是否有任何与此和特定调用约定相关的“陷阱”,例如__fastcall
?)
c++ - 如何使用 SSE 执行 8 x 8 矩阵运算?
我最初的尝试看起来像这样(假设我们想要相乘)
但这显然行不通。我该如何处理?
我应该一次加载4个....
另一个问题是:如果我的数组非常大(比如 n = 1000),我怎样才能使它 16 字节对齐?这甚至可能吗?
c++ - Visual Studio C++ 中 v4sf 和 __attribute__ 的等价物是什么?
这是在 GCC 中。有人知道等价语法吗?
VS 2010 会显示__attribute__
没有这种类型的存储类,并且没有定义模式。
我在网上搜索,它说
相当于
__attribute__( aligned( size ) )
在 GCC这对于以前的 unix 开发人员或编写可在多个平台上工作的代码的人很有帮助,在 GCC 中您可以使用 属性(aligned(...))获得相同的结果
有关更多信息,请参见此处:http: //gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Type-Attributes.html#Type-Attributes
完整的 GCC 代码在这里: http: //pastebin.com/bKkTTmH1