我是一个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);
}