0
나는 cuda 프로그램을 작성 했으므로 아래 커널 기능을 제공했습니다. 장치 메모리는 CUDAMalloc()을 통해 할당 된
입니다. * md의 값은 10입니다.
__global__ void add(int *md)
{
int x,oper=2;
x=threadIdx.x;
* md = *md*oper;
if(x==1)
{
*md = *md*0;
}
if(x==2)
{
*md = *md*10;
}
if(x==3)
{
*md = *md+1;
}
if(x==4)
{
*md = *md-1;
}
}
는 cudaMalloc()는 장치 메인 메모리에 할당 될 상기 코드
add<<<1,5>>(*md) , add<<<1,4>>>(*md)
for <<<1,5>>> the output is 19
for <<<1,4>>> the output is 21
1) I 의심이 실행? 2) 마지막 스레드 만이 위의 프로그램에서 항상 실행되는 이유는 무엇입니까?
는
으로 코드를 실행해야 할 일입니다. 반환 상태를 확인하면 알려지지 않은 세그 폴트를 프로그램 할 수 있습니다. – Anycorn