2 u011376813 u011376813 于 2013.07.14 15:27 提问

cuda cudaMemcpy 报错 unkown error

我是一个cuda新手,现在在测试一个程序,它报的错误是 unkown error ,是从最后的cudaMemcpy报出来的,求高人指教,我不知道是错在哪里了,在此谢过

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include
#include
#define N (128*128*2)

global void times(int *div_c)
{
int tmp = threadIdx.x+ blockIdx.x*blockDim.x;
while(tmp<N)
{
div_c[tmp]=tmp;
tmp+=blockIdx.x*gridDim.x;
}
}

int main(void)
{
int c[N];
int i;
clock_t t;
int *div_c;
cudaError_t error;

for(i=0;i<N;++i)
{
    c[i]=0;
    if(c[i]!=0)
    {
        printf("error4");
    }
}
printf("start\n");
t=clock();
error=cudaMalloc((void **)&div_c,sizeof(int)*N);
if(error!=cudaSuccess)
{
    printf("error1");
    getchar();
    return 1;
}
error = cudaMemcpy(div_c,c,sizeof(int)*N,cudaMemcpyHostToDevice);
if(error!=cudaSuccess)
{
    printf("error2");
    getchar();
    return 1;
}
times<<<128,128>>>(div_c);

error = cudaMemcpy(c,div_c,sizeof(int)*N,cudaMemcpyDeviceToHost);
if(error!=cudaSuccess)
{
    printf("%s\n",cudaGetErrorString(error));
    getchar();
    return 1;
}
t= clock()-t;
printf("%d\n",t);
getchar();
printf("%d\n",c[0]);
getchar();
for(i=0;i<N-1;++i)
{

        printf("%d  %d \n",c[i],c[i+1]);
}
getchar();
return 0;
cudaFree(div_c);

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!