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