一个简单的cudaMemcpy,大神看看哪错了

baidu_28806005 2017-05-01 04:58:11
int main()
{
if (!InitCUDA()) return 0;
int *a;
int *d_a ;
int *h_a;
int b = 8;
a = &b;
printf("a is %d\n",*a);
cudaError_t error;
h_a = (int *)malloc(sizeof(int));
a = (int *)malloc(sizeof(int));
error = cudaMalloc((int **)&d_a,sizeof(int));
if (error != cudaSuccess)
error = cudaMemcpy(d_a,a,sizeof(int),cudaMemcpyHostToDevice);
cudaDeviceSynchronize();
if (error != cudaSuccess)
{
printf("cudaMemcpy returned error %s (code %d), line(%d)\n", cudaGetErrorString(error), error, __LINE__);
exit(EXIT_FAILURE);
}
else
printf("success");
error = cudaMemcpy(h_a,d_a,sizeof(int),cudaMemcpyDeviceToHost);
cudaDeviceSynchronize();
printf("cuda is %d\n",*h_a);
free(a);
free(h_a);
cudaFree(d_a);

}
...全文
354 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧