我还没有创建一个程序来查看GCC是否需要它通过,当我这样做时,我想知道如何启用严格的浮点模式,这将允许运行和计算机之间的可重现结果,谢谢.
-msse2
在支持它的Intel/AMD处理器上进行编译将使您几乎到达那里.不要让任何库将FPU置于FTZ/DNZ模式,并且您将大部分设置(尽管处理器错误).
对于其他架构,答案会有所不同.那些没有提供任何方便的方法来获得精确的IEEE 754语义(例如,预先SSE2 IA32 CPU)的架构将需要使用浮点仿真库来获得您想要的结果,而且性能会受到很高的影响.
如果您的目标体系结构支持fmadd
(没有中间舍入的乘法和加法)指令,请确保在源代码中有明确的乘法和加法时,编译器不会使用它.除非使用-ffast-math选项,否则GCC不应该这样做.
归档时间: |
|
查看次数: |
10064 次 |
最近记录: |