问题标签 [fpu]

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 投票
0 回答
196 浏览

c - 如何优化 FPU 例程

我有一些 c 例程

想将它重写为程序集,我设法写了

c 例程使我的程序循环运行 150 毫秒,然后它下降到 105 毫秒,所以这更快(尽管在内部循环中计算两个像素的展开的 c 例程只需要 115,我不知道为什么以及如何展开它在 asm 中)

我认为这个 asm 代码效率不高,我尝试将所有变量加载到 fpu 堆栈上(在循环之前,我将 7 个 double 加载到它:cre cim 4.0 re im re2 im2 然后有一个将它加载到堆栈顶部的 tol 交换并用 fstp 弹出,所以我认为它可能效率不高

有人可以帮助改进吗(内部循环之外的值并不重要,但内部循环中的代码在这里很重要

0 投票
1 回答
1015 浏览

winforms - masm 程序集如何使用 fpu 进行数字除法和乘法运算

我是 masm 和组装的新手,需要一些帮助。我已经在这上面花了大概 6 个小时。我有 3 个文本框和 2 个按钮。我希望其中一个按钮将文本框中的数字相乘并在第三个文本框中显示结果,另一个按钮将两个文本框中的数字相除并在第三个文本框中显示结果。这些数字几乎总是会有小数。

我已经尝试了很多东西,但这是我认为最接近的代码。

划分

。数据

上面的代码在文本框中给出了错误的数字。有人可以告诉我我需要做什么。

谢谢你

更新

此代码有效

0 投票
2 回答
11870 浏览

c++ - FLD 浮点指令

根据 http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH14/CH14-4.html#HEADING4-5

14.4.4.1 FLD 指令
fld mem_32
fld mem_64[bx]

我的目标是将常数 10 存储到我的 fPU 堆栈中。为什么我不能这样做?

0 投票
0 回答
517 浏览

opencv - 在 ARM 板上用 FPU 编译

我正在使用 mini6410 ARM 1176 板来使用 OpenCV 运行图像处理应用程序。我正在使用由电路板制造商提供的 ARM 工具链 4.5.1,在这种情况下可能会感兴趣的某些选项:

当我使用工具链和选项创建可执行文件并编译 OpenCV 时:

程序构建成功。当我在板上运行它时,我看到程序的处理时间是 25 秒 / 帧。这与使用选项编译的程序相同:

我希望程序在使用 FP 时运行得更快。有什么建议我错了吗?因为 OpenCV 是使用工具链编译的,所以在为 OpenCV(我使用 2.4.4)创建与 FPU 相关的 makefile 时找不到任何选项

0 投票
0 回答
126 浏览

python - 为什么 dllMain 会覆盖我的 FPU 的控制字?

我在这里这里看到dllMain改变了我的 FPU 的控制字,我需要:

所以它会恢复正常。但没有人说明为什么这样做。

有谁知道为什么我的 dllMain 会这样做?在什么编译器上?只有视觉工作室?为什么微软决定在我不知道我的每个 dll 的情况下设置我的 FPU 控制字是个好主意?有没有办法改变这种行为?

0 投票
1 回答
400 浏览

assembly - FPU IA-32 SIGFPE, Arithmetic exception

I have a problem with this code below. It is GAS asm syntax on IA-32 architecture. It generates arithmetic exception, after fsqrt instruction. SetDouble is int type of value 0x0200 and input is a float number. I'm compiling this with -m32 flag using gcc. Can someone point where I made mistake.

0 投票
1 回答
298 浏览

nasm - 带有 FPU 的 nasm 无限循环

我正在尝试创建一个小型 nasm 程序,它以浮点数执行此操作

nasm 中的等价程序如下

循环_while无限迭代

ecx / igards 总是相同的value = 0(它被设置为 0)并且不会递减

0 投票
3 回答
1639 浏览

gcc - 在 arm 处理器上测试 FPU

我正在使用包含 i.MX6 ARM 处理器的 Wandboard-Quad。这个处理器有一个我想使用的 FPU。在此之前,我想测试一下我将获得多少改进。我有一个基准算法,并且在没有优化的情况下进行了尝试,并且使用 -mfpu=vfp 并且似乎没有任何改进——我确实通过优化 = 3 得到了改进。

我正在使用 arm-linux-gnueabi 库——关于什么是不正确的以及如何判断我是否使用 FPU 的任何想法?

谢谢,亚当

0 投票
1 回答
333 浏览

visual-c++ - 使用 /QIfist 选项强制 MSVC 生成 FIST 指令

我经常使用/QIfist编译器开关,这会导致编译器生成FISTP将浮点值舍入为整数的指令,而不是调用_ftol辅助函数。

我怎样才能让它使用FIST(P) DWORD,而不是QWORD

FIST QWORD要求 CPU 将结果存储在堆栈中,然后将堆栈读取到寄存器中,最后存储到目标内存中,而FIST DWORD直接存储到目标内存中。

0 投票
1 回答
309 浏览

visual-c++ - 不同的值取决于设置的浮点异常标志

简短的问题:

在 FPU 上设置 _EM_INVALID 异常标志如何导致不同的值?

长问题:

在我们的项目中,我们在 Release 构建中关闭了浮点异常,但在 Debug 构建中使用 _controlfp_s() 打开了 ZERODIVIDE、INVALID 和 OVERFLOW。这是为了捕获错误(如果存在)。

但是,我们也希望数值计算的结果(包括优化算法、矩阵求逆、蒙特卡洛和各种事情)在 Debug 和 Release 构建之间保持一致,以使调试更容易。

我希望 FPU 上异常标志的设置不应该影响计算值 - 仅影响是否抛出异常。但是在通过我们的计算向后工作之后,我可以隔离下面的代码示例,该示例显示调用 log() 函数时最后一位存在差异。

这会传播到结果值的 0.5% 差异。

下面的代码将在将其添加到 Visual Studio 2005、Windows XP 中的新解决方案并在调试配置中编译时给出显示的程序输出。(Release 会给出不同的输出,但那是因为优化器重用了第一次调用 log() 的结果。)

我希望有人可以对此有所了解。谢谢。