我今天正在阅读有关研究人员发现 NVidia 的 Phys-X 库使用 x87 FP 与 SSE2的文章。显然,这对于速度胜过精度的并行数据集来说不是最理想的。但是,文章作者继续引用:
英特尔在 2000 年底推出 P4 后开始不鼓励使用 x87。自 2003 年 K8 以来,AMD 弃用了 x87,因为 x86-64 是在 SSE2 支持下定义的;威盛的 C7 自 2005 年起就支持 SSE2。在 64 位版本的 Windows 中,x87 在用户模式下被弃用,在内核模式下完全被禁止。自 2005 年以来,业内几乎所有人都推荐 SSE 而不是 x87,并且没有理由使用 x87,除非软件必须在嵌入式 Pentium 或 486 上运行。
我想知道这一点。我知道 x87 在内部使用 80 位扩展双精度来计算值,而 SSE2 没有。这对任何人都没有关系吗?这对我来说似乎很奇怪。我知道当我对平面中的点、线和多边形进行计算时,在进行减法时值可能会出乎意料地错误,并且由于缺乏精度,区域可能会塌陷并且线会相互混叠。我想,使用 80 位值与 64 位值会有所帮助。
这是不正确的吗?如果没有,如果 x87 被淘汰,我们可以使用什么来执行扩展的双 FP 操作?