shu*_*alo 5 floating-point performance scientific-computing fpu
虽然我知道(所以我被告知)浮点协处理器的工作速度比浮点运算的任何软件实现都快,但我完全没有直觉感觉这个差异有多大,按照数量级.
答案可能取决于应用程序和您的工作地点,微处理器和超级计算机之间.我对计算机模拟特别感兴趣.
你能指出这个问题的文章或论文吗?
一个通用的答案显然很模糊,因为性能取决于很多因素。
但是,根据我的理解,在没有在硬件中实现浮点(FP)操作的处理器中,软件实现的速度通常比整数操作慢10到100倍(如果实现不好,甚至更糟)。总是在CPU的硬件中实现。
确切的性能将取决于许多因素,例如整数硬件的功能-一些CPU缺少FPU,但是其整数运算中具有有助于实现FP计算的快速软件仿真的功能。
njuffa,Cristina Iordache和Ping Tak Peter Tang所提到的论文,《英特尔XScale架构上的浮点支持概述和数学库》均对此提供了支持。对于Intel XScale处理器,延迟列表(节选):
integer addition or subtraction: 1 cycle
integer multiplication: 2-6 cycles
fp addition (emulated): 34 cycles
fp multiplication (emulated): 35 cycles
Run Code Online (Sandbox Code Playgroud)
因此,这将导致整数和FP算术之间的系数大约为10-30。该论文还提到,GNU实现(GNU编译器默认使用的一种)的速度要慢10倍左右,这是100-300的总因数。
最后,请注意,上面是针对FP仿真器由编译器编译到程序中的情况。某些操作系统(例如Linux和WindowsCE)在OS内核中也具有FP仿真。优点是,即使没有FP仿真(例如,使用FPU指令)编译的代码也可以在没有FPU的进程上运行-内核将透明地在软件中仿真不受支持的FPU指令。但是,由于要增加额外的开销,因此这种仿真甚至比编译到程序中的软件仿真还要慢(大约10倍)。显然,这种情况仅与某些处理器架构没有FPU而有些处理器没有FPU(例如x86和ARM)的处理器体系结构有关。
注意:此答案将(模拟)FP操作的性能与同一处理器上的整数操作进行了比较。您的问题也可能被理解为与(模拟的)FP操作相对于硬件FP操作的性能有关(不确定您的意思)。但是,结果将大致相同,因为如果FP以硬件实现,则通常(几乎)与整数运算一样快。
| 归档时间: |
|
| 查看次数: |
4002 次 |
| 最近记录: |