[問題] atomic operation 與 計算效率問題

作者: eagle32 (バスケがしたいです)   2022-05-24 22:35:02
我的經驗是使用 cpu 做平行計算時, 應該盡量避免 atomic operation, 因為計算效率可以不會太好.
但當用 gpu 做平行計算, 這個經驗還可靠嗎?有沒有很容易因為計算單元超多, 而彌補了計算單元的等待時間?
作者: wulouise (在線上!=在電腦前)   2022-05-24 23:57:00
你想說的是lockless或不用atomic type?
作者: eagle32 (バスケがしたいです)   2022-05-25 00:37:00
望文生義猜測是lockless. 看了以下這篇討論,我想gpu 的atomic operation 應該跟cpu的表現不太一樣。https://stackoverflow.com/questions/3148345/are-atomic-operations-on-global-memory-in-cuda-performed-in-parallel-across-a-wa
作者: tinlans ( )   2022-05-25 02:20:00
主要還是看處理器架構,有些架構可以選用不同 memorymodel 來避免效能損失太嚴重。
作者: wulouise (在線上!=在電腦前)   2022-05-25 09:01:00
gpu沒有人在同步資料的吧 都是算完一起拿回來應該說要同步的話 那當初就不要用gpu
作者: eagle32 (バスケがしたいです)   2022-05-26 11:28:00
謝謝大家的回覆,還有很多技術細節不懂,因為時間有限,還沒好好學習一下。
作者: suspect1   2022-06-17 20:10:00
我猜指的是MCU的atomic instruction吧?為了微控制器在處理重要任務時,為了防止其他硬體中斷的干擾,或是在多執行緒下,Muti-threads彼此發生race condition才會適度的使用atomic,但你也可以用semaphore、spin lock來處理。atomic 指令是在你執行保證不會被中斷用GPU當然會計算速度當然遠大於MCU/CPU 因為本來就是用來計算大量的矩陣運算的,要不然為什麼要買顯卡顯卡來挖礦?

Links booklink

Contact Us: admin [ a t ] ucptt.com