如果不用于浮点数,现代cpu中的浮点硬件是否用于整数运算?

时间:2015-02-23 18:37:08

标签: floating-point x86-64

如果是整数性能密集型应用程序,cpu是否可以自动使用浮点硬件来协助进行此类计算?或者浮点硬件是否未使用除了浮点特定计算(例如,如果达到整数性能限制,那么在应用程序代码中将某些计算从整数计算更改为浮点计算会加速吗? )?

1 个答案:

答案 0 :(得分:4)

您的问题的答案取决于处理器。

很抱歉链接到数百页的PDF,但基本上你的问题的答案是你需要阅读Agner Fog的optimization manuals来深入了解现代(或者甚至是老式的处理器工作。

您将注意到,在某些型号的处理器中,某些执行端口可处理某些浮点指令和整数指令。这使得处理器内部某处可能已经用于计算浮点运算的晶体管被​​用于整数运算变得模糊。甚至没有必要(执行端口执行单元不同)。但是,即使将现代处理器的工作方式逆向设计到Agner Fog正在执行的执行端口的规模也是一项艰巨的任务。无论如何,这个问题没有实际意义。重要的是处理器消耗多少电流以及完成工作的速度。一些晶体管是否在整数和浮点之间共享只是这个问题的一小部分。