作者guanrulee (Cobra)
看板C_and_CPP
標題[問題] cuda synchronization的問題
時間Wed Sep 21 00:25:04 2011
開發平台(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
→ akasan:atomicAdd, 但最好先local做完最後在加過去atomic 很貴的 09/22 04:16
→ guanrulee:OK~~~3Q 09/28 10:51