3
我從CUDA讀取由實施例,章節9.4,即在GPU全局存儲器使用的原子操作時不正確,程序的性能可能比當在CPU純粹執行,因爲存儲器存取爭用的,會更糟。CUDA,全局內存或主機內存哪個更快?
最糟糕的情況是,在GPU上執行的程序是高度序列化的,沒有線程並行執行,這只是單線程程序在CPU上運行的方式。所以關鍵的問題是程序訪問內存的速度有多快。
考慮到我提到的書中的例子,CPU似乎比GPU訪問設備上的全局內存更快地訪問主機內存。
是這樣嗎?還是在我剛剛描述的情況下還有其他因素影響了節目的表現?
我想你應該提供更多的信息,因爲這個問題是開放的。你能提供書中的示例代碼嗎? FWIW,Kepler GPU上的原子操作比Fermi GPU更快,特別是在許多線程原子地更新相同地址的昂貴情況下。這本書已經在GPU年代已經很老了...... – harrism 2012-07-12 03:10:43
也許我不應該提到'原子操作'...我只是想知道GPU如何運行與CPU不同的單線程代碼,以及性能的差異。所以我認爲下面的答案很好地解釋了我所要求的。 – 2012-07-12 14:46:26