0
以下程序使用'Cuda By Example'實現原子鎖,但運行該程序會凍結我的機器。 有人能告訴我我的程序有什麼問題嗎?非常感謝CUDA中的原子操作
益肺
#include <stdio.h>
__global__ void test()
{
__shared__ int i, mutex;
if (threadIdx.x == 0) {
i = 0;
mutex = 0;
}
__syncthreads();
while(atomicCAS(&mutex, 0, 1) != 0);
i++;
printf("thread %d: %d\n", threadIdx.x, i);
atomicExch(&mutex,0);
}
上面的程序只是我想要做的一個例子。我知道我可以在上面的例子中使用atomicAdd來增加i。然而,在我的真實情況下,關鍵部分更復雜 – user11869 2012-01-18 21:30:36