1

我可以确定在这个例子中,原子操作将按照线程的数字顺序执行吗?或者如何以不同的方式做到这一点,不包括只使用一个线程?

__shared__ unsigned int cnt[MAXLEN], s[MAXLEN];

#pragma unroll
for (int i = 0; i < MAXLEN; i+= blockDim.x) 
   p[atomicSub(cnt + s[threadIdx.x + i], 1) - 1] = threadIdx.x + i;
__syncthreads();
4

1 回答 1

3

如果按照线程的数字顺序,您的意思是线程 ID 号,或者线程启动的顺序,答案是否定的。这些因素在线程中事件的排序中没有可靠的作用。

于 2012-09-23T18:24:23.703 回答