[英]atomic operations on shared memory
如何在共享內存上執行原子操作?
我有類似的東西:
__shared__ int a[10];
//set a
if(tid<5)
a[2]++;
因此5個線程正在遞增a。 我怎樣才能做到這一點?
我知道我以這種方式將5個線程的執行序列化,但是這對翹曲有何影響? 是將經線中的所有線程序列化還是僅將前5個線程序列化?
用[2] ++替換
atomicAdd( a + 2, 1 );
如果您可以創建一個無符號的,則您可能更喜歡使用atomicInc(),但是任何一個都會降低性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.