gpt4 book ai didi

FPU与软件仿真的性能对比

转载 作者:行者123 更新时间:2023-12-04 19:10:55 24 4
gpt4 key购买 nike

虽然我知道(所以我被告知)浮点协处理器的工作速度比任何浮点运算的软件实现都要快,但我完全没有直觉感觉到这种差异有多大,按数量级排序。

答案可能取决于应用程序和您的工作地点,在微处理器和 super 计算机之间。我对计算机模拟特别感兴趣。

你能指出这个问题的文章或论文吗?

最佳答案

一般的答案显然会很模糊,因为性能取决于很多因素。

但是,根据我的理解,在硬件中没有实现浮点 (FP) 操作的处理器中,软件实现通常是 慢 10 到 100 倍 (或者甚至更糟,如果实现不好的话)比整数运算,它们总是在 CPU 上的硬件中实现。

确切的性能将取决于许多因素,例如整数硬件的功能 - 一些 CPU 没有 FPU,但在其整数算法中具有有助于实现 FP 计算的快速软件仿真的功能。

njuffa 提到的论文,Cristina Iordache and Ping Tak Peter Tang, An Overview of Floating-Point Support and Math Library on the Intel XScale Architecture支持这一点。对于英特尔 XScale将列表处理为延迟(摘录):

integer addition or subtraction:  1 cycle
integer multiplication: 2-6 cycles
fp addition (emulated): 34 cycles
fp multiplication (emulated): 35 cycles

因此,这将导致整数和 FP 算术之间的因数约为 10-30。该论文还提到 GNU 实现(GNU 编译器默认使用的实现)大约慢 10 倍,总系数为 100-300。

最后,注意以上是针对FP仿真为 的情况。编译成程序由编译器。一些操作系统(例如 Linux 和 WindowsCE)也有 FP 仿真 在操作系统内核中 .优点是即使没有 FP 仿真(即使用 FPU 指令)编译的代码也可以在没有 FPU 的进程上运行 - 内核将在软件中透明地仿真不受支持的 FPU 指令。然而,由于额外的开销,这种模拟甚至比编译到程序中的软件模拟还要慢(大约是另一个因素 10)。显然,这种情况只与处理器架构有关,其中一些处理器具有 FPU,而另一些则没有(例如 x86 和 ARM)。

注意:此答案将(模拟)FP 运算与同一处理器上的整数运算的性能进行了比较。您的问题也可能被解读为与性能有关
与硬件 FP 操作相比的(模拟)FP 操作(不确定您的意思)。但是,结果将大致相同,因为如果 FP 在硬件中实现,它通常(几乎)与整数运算一样快。

关于FPU与软件仿真的性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com