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