1
有禍了,我必須確保GPU和CPU上的浮點結果相同。好吧,我瞭解IEEE已經照顧了我,並提供了一個很好的標準來堅持幾個舍入選項;並且CUDA部分被整理出來(有不同舍入模式的內部函數),所以這只是動機。在C++中使用不同的IEEE浮點舍入模式
但在主機端C++代碼中 - 如何在特定的舍入模式下執行浮點運算(我的意思是在特定的語句中,而不是在我的翻譯單元中)?有沒有在引擎蓋下使用程序集的包裝函數?有不同舍入模式的浮點數代理的一組類嗎?
我也在提問有關翻譯單元級別的問題。編譯翻譯單元時,如何使編譯器(gcc/clang/MSVC)默認爲某個舍入模式?
http://en.cppreference.com/w/cpp/numeric/fenv/FE_round IEEE四捨五入模式是CPU的運行時配置屬性,我不認爲您可以在編譯時選擇特定的舍入模式。 –
@AndreasPapadopoulos,但你也許可以將其設置http://en.cppreference.com/w/cpp/numeric/fenv/feround(或者發現你不能和重新組合) – StoryTeller
@StoryTeller是的,這基本上是什麼我在我上面的評論中鏈接了。 –