问题标签 [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.

0 投票
2 回答
1618 浏览

intrinsics - 相机外在计算错误

我正在尝试从 2 张图像中找到相机外在因素。我有来自 CameraCalibration 的内在函数,并且场景具有已知尺寸(使用 3DSMAX 创建)。

棋盘是 1000*1000,每个方格是 125*125。相机位于 (0,0,3000) 处,直视以原点为中心的棋盘。在第二张图像中,相机平移 (-1500, 0, -402) 并在 Y 轴上旋转 30° 以再次指向棋盘的中心: 相机设置

GoodFeaturesToTrack 正确识别 81 个角: 棋盘

我创建棋盘角的 3d 点,cvFindExtrinsicCameraParams2 来计算内在函数,而 cvRodrigues2 来获得旋转矩阵。这是代码

结果似乎不正确,我期待翻译/旋转,但我明白了:

有人会知道我做错了什么吗?谢谢!

0 投票
2 回答
1615 浏览

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?

0 投票
2 回答
707 浏览

c - 将 Intrinsic xmm 寄存器转换为 uint8_t 数组[16]

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

0 投票
2 回答
4466 浏览

sse - 在 SSE 和 NEON Intrinsics-Shuffle 之间转换

我正在尝试将用 SSE3 内在函数编写的代码转换为 NEON SIMD,但由于 shuffle 功能而被卡住。我查看了GCC IntrinsicARM 手册和其他论坛,但未能找到解决方案。

代码:

虽然 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 位,但是我希望能有效地做到这一点。希望有人可以提供帮助或提供参考。

非常感谢,

干杯!

0 投票
2 回答
1355 浏览

c++ - SSE2代码优化

我正在使用 SSE2 内在函数来优化我的应用程序的瓶颈,并且有以下问题:

在 Microsoft C++ 编译器上,这不会编译,因为类型__m128iunsigned int(传递给_mm_sll_epi32指令)不可互换。

为什么会这样,我应该如何将任意unsigned int值传递给_mm_sll_epi32


_m128i是:

0 投票
1 回答
4042 浏览

c++ - 用于比较 (_mm_cmpeq_ps) 和赋值操作的 SSE 内在函数

我已经开始使用 SSE 优化我的代码。本质上,它是一个光线追踪器,通过将坐标存储在 __m128 数据类型 x、y、z 中来一次处理 4 条光线(四条光线的坐标按轴分组)。但是,我有一个分支语句可以防止被零除,我似乎无法转换为 SSE。在串行这是:

其中 wZ 是 z 坐标,需要对所有四条射线进行此计算。

我怎么能把它翻译成 SSE?

我一直在尝试使用 SSE 等于比较,如下所示(现在 wz 属于 __m128 数据类型,其中包含四条光线中每条光线的 z 值):

然后用它来识别 wZ[x] = -1.0 的情况,取这种情况的绝对值,然后照常继续计算。

然而,我在这方面的努力并没有取得太大的成功。

0 投票
1 回答
443 浏览

c - 使用带有嵌套 for 循环和内在函数的 openmp 时遇到问题

所以我在找出使用 openmp 并行化这些 for 循环的最佳方法时遇到了一些麻烦。我猜最大的加速将来自并行化中间循环,就像我在这里所做的那样:

但是,这目前几乎没有给我提速。任何提示都会很棒。我已经被困了很长一段时间了。

0 投票
3 回答
443 浏览

visual-c++ - __addgs* 是如何使用的,GS 是什么?

在微软的网站上可以找到一些细节

内在功能。据说offset

从 GS 开头的偏移量。我假设GS指的是处理器寄存器。

GS与堆栈有什么关系(如果有的话)?或者,我如何计算相对于GS的偏移量?

(而且,是否有任何与此和特定调用约定相关的“陷阱”,例如__fastcall?)

0 投票
2 回答
1007 浏览

c++ - 如何使用 SSE 执行 8 x 8 矩阵运算?

我最初的尝试看起来像这样(假设我们想要相乘)

但这显然行不通。我该如何处理?

我应该一次加载4个....

另一个问题是:如果我的数组非常大(比如 n = 1000),我怎样才能使它 16 字节对齐?这甚至可能吗?

0 投票
2 回答
5946 浏览

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