关于这个问题,NVIDIA的whitepaper提供了很好的讨论。基本上: IEEE-754标准已经被几乎所有现有设备所实现; 即使在忠实地实现该标准的情况下,您仍然可以看到结果上的差异(例如,英特尔内部使用80位进行双精度计算),或者您的编译器高度优化设置可能会改变结果 2.0及更高版本的NVIDIA显卡支持IEEE-754单精度和双精度,只有非常小的限制 某些舍入模式不支持某些操作——只有在代码中明确更改舍入模式时才相关 有一些关于融合乘加的微妙之处 CUDA还提供了一些(略低于)精度更低但更快的实现,当然,如果您明确或隐含地使用这些实现(使用编译器选项),您自然无法获得完全符合ieee-754标准的结果 1.3版本的显卡支持双精度的IEEE-754标准,但不支持单精度(单精度不支持非规格化——例如非常小的数,没有FMA,平方根和除法不完全准确) 1.2版本的显卡仅具有单精度,不符合上述完全符合IEEE-754标准的要求。