【发布时间】:2017-01-05 06:37:24
【问题描述】:
不幸的是,我必须确保在 GPU 和 CPU 上获得相同的浮点结果。好的,我知道 IEEE 已经照顾了我,并提供了一个很好的标准来遵守几个舍入选项;并且 CUDA 部分被整理出来(有不同舍入模式的内在函数),所以这只是动机。
但是在主机端 C++ 代码中 - 我如何在特定舍入模式下执行浮点运算(我的意思是在特定语句中,而不是在整个翻译单元中)?是否有在引擎盖下使用组装的包装器功能?是否有一组具有不同舍入模式的浮点数代理类?
我也在问关于翻译单元级别的相同问题。编译翻译单元时如何使编译器(gcc/clang/MSVC)默认为某种舍入模式?
【问题讨论】:
-
@AndreasPapadopoulos,但你可以设置它en.cppreference.com/w/cpp/numeric/fenv/feround(或者发现你不能重新组合)
-
@AndreasPapadopoulos,是的,我似乎误读了您的评论,因为根本无法设置它。
标签: c++ rounding ieee-754 idioms