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