簡體   English   中英

共享內存上的原子操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM