【发布时间】:2011-11-09 21:14:59
【问题描述】:
我还没有创建一个程序来查看 GCC 是否需要它通过,当我这样做时,我想知道如何启用严格的浮点模式,这将允许在运行和计算机之间重现结果,谢谢。
【问题讨论】:
-
请注意,由于硬件中的错误,即使强制执行严格模式也可能无法为您提供可重现的结果。这些真的发生了:cs.earlham.edu/~dusko/cs63/fpu.html、lwn.net/Articles/89586、reghardware.com/2006/04/28/amd_opteron_fpu_bug...
-
@liori “错误”是指“仅以众所周知且记录在案的方式提供比 IEEE 754 双精度更高的精度”。硬件没有错误。它不会让编译器获得他们想要的干净的 IEEE 754 双精度语义,当然,但这不是错误,只是功能错误。
-
@liori 我必须指出,我在您添加链接之前写了我的评论。有趣的。我撤回评论中的“硬件没有错误”部分。
-
@Pascal Cuoq:是的,我实际上添加了链接,因为我认为有人会这样想 :-)
-
即使有硬件错误,我也看不出它如何支持“浮点不给出可重现的结果”的位置。这只是意味着某些硬件已损坏,不应使用。由于 f00f 错误,您会声称 x86 锁定前缀不会给出可重现的结果吗?不,您只需调用表现出错误缺陷的 cpus...