0
HAi,CUDA線程輸出不同的值
我寫了一個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;
}
}
以上代碼執行
add<<<1,5>>(*md) , add<<<1,4>>>(*md)
for <<<1,5>>> the output is 19
for <<<1,4>>> the output is 21
1)I有疑問,cudaMalloc()將在設備主存儲器分配? 2)爲什麼最後一個線程總是在上面的程序中執行?
謝謝
有失誤的一堆東西。檢查你的返回狀態,你編程段未知的段錯誤。 – Anycorn 2011-02-24 07:26:15