0
我一直在do-while
循環中使用atomicCAS
來在我的第一個並行程序中需要時執行各種算術運算。我發現有其他操作,例如atomicInc
,這與atomicCAS
在do-while
中的增量是一樣的,是正確的?這會更有效率(在時鐘週期方面),還是沒有任何意義從我過度使用atomicCAS
?什麼時候應該使用atomicCAS來支持更具體的原子操作?
我一直在do-while
循環中使用atomicCAS
來在我的第一個並行程序中需要時執行各種算術運算。我發現有其他操作,例如atomicInc
,這與atomicCAS
在do-while
中的增量是一樣的,是正確的?這會更有效率(在時鐘週期方面),還是沒有任何意義從我過度使用atomicCAS
?什麼時候應該使用atomicCAS來支持更具體的原子操作?
對於這個問題唯一明智的答案是「每個場景中都有一個用於執行相同操作的構建原子基元」。
在nVIDIA GPU上,使用atomicCAS作爲算術運算周圍的人造互斥鎖只有在沒有其他選擇的情況下才有意義。即使今天沒有明顯的性能差異,通過使用可轉換爲PTX指令的原子基元,您的代碼也可以在未來的硬件和未來的工具鏈中提供性能提升的可能性,因爲NVIDIA改進了它們的實現。
威利請考慮接受@talonmies的答案。 – einpoklum