我应该使用什么说明进行浮点操作?
-
02-10-2019 - |
解决方案
如果您愿意忘记向后兼容性,那么SSE就是必经之路。它具有更丰富的指令集和向量支持。如果您想对正在运行的任何处理器进行优化,则应尝试使用更高级别的语言编写,并使用ICC编译,该章程检查处理器当前正在运行并执行对此进行了优化的代码。
归根结底,这取决于软件的预期用户。
其他提示
如果您需要向后兼容,则必须使用X87说明。否则,正如内森·费尔曼(Nathan Fellman)所说,SSE#指令可能是必经之路,也是因为为它们编写代码(他们使用普通寄存器模型,而X87使用堆栈)。
话虽如此,您可能需要使用X87代码(或混合X87/SSE代码)的原因有很多:
(1)X87提供了更高的精度,即80位浮点计算。 (X87/SSE都提供32位和64位浮子。)这可能是一些可能需要额外精确度的科学代码的问题。
(2)X87提供了一些不受SSE#指令集涵盖的操作,即三通操作的说明(SIN,COS,...)和对数。
不隶属于 StackOverflow