[問題] cuda synchronization的問題

看板C_and_CPP (C/C++)作者 (Cobra)時間14年前 (2011/09/21 00:25), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) linux cuda 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) cuda 問題(Question): 每個thread都會執行這個 for(j=0 ; j<64.0f ; j=j+1.0f) { if(mag[i]<(j+0.5f)/63) { counts[(int)j]++; } } 但是有可能會寫到同一個count[j]中 count[64] 是宣告有64個element 因為會開不只一個block所以無法使用__syncthreads() 不知道有什麼其他的function可以解決這種只需要write的synchronization問題呢? 還有cuda中允許我寫(int)j這種東西把float轉成int的事情嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.64.10

09/22 04:16, , 1F
atomicAdd, 但最好先local做完最後在加過去atomic 很貴的
09/22 04:16, 1F

09/28 10:51, , 2F
OK~~~3Q
09/28 10:51, 2F
文章代碼(AID): #1EUBvZEl (C_and_CPP)
文章代碼(AID): #1EUBvZEl (C_and_CPP)