天天看點

nvidia顯示卡計算的單精度和雙精度問題

之前伺服器環境使用的是NVIDIA的Tesla P4的環境,程式運作沒有問題,但是換成Tesla M40,程式就算就出現較大的偏差。

大緻原因是M40是單精度的浮點數的運算,P4是雙精度,在雙精度上的計算結果用在單精度上運作,運算精度不一樣,是以計算偏差比較大,導緻的結果不一緻。特别是乘除法的矩陣運算,結果運算偏差會很大。

解決方式是模型訓練時,指明單精度運算做訓練:

如:

改寫為:

參考:

  • CUDA 中 單精度浮點操作和 雙精度浮點操作
  • Different results for CUDA addition on host and on GPU

繼續閱讀