2
我正在創建一個調用Nvidia內核減少量(reduction6)的例程,但是當我比較CPU和GPU之間的結果時,得到的誤差隨着向量大小的增加而增加,所以:使用浮點數減少內核精度
CPU和GPU的減少是彩車
Size: 1024 (Blocks : 1, Threads : 512)
Reduction on CPU: 508.1255188
Reduction on GPU: 508.1254883
Error: 6.0059137e-06
Size: 16384 (Blocks : 8, Threads : 1024)
Reduction on CPU: 4971.3193359
Reduction on GPU: 4971.3217773
Error: 4.9109825e-05
Size: 131072 (Blocks : 64, Threads : 1024)
Reduction on CPU: 49986.6718750
Reduction on GPU: 49986.8203125
Error: 2.9695415e-04
Size: 1048576 (Blocks : 512, Threads : 1024)
Reduction on CPU: 500003.7500000
Reduction on GPU: 500006.8125000
Error: 6.1249541e-04
任何想法,這個錯誤?謝謝。
我沒有看到錯誤,我看到了差異。而且可能完全正常,並有可能出現差異。寫一個雙精度總和減少並在CPU上運行,然後將CPU和GPU單精度結果與雙精度結果進行比較。你可能會驚訝的結果..... – talonmies 2013-02-28 15:46:54
@talonmies不應該是相同的雙精度?或者它取決於GPU架構? – pQB 2013-02-28 15:57:09
@pQB:也許你誤解了。我的意思是,單精度解決方案(GPU和CPU)應該與雙精度或四精度參考解決方案進行比較,而不是相互比較。 – talonmies 2013-02-28 16:00:18