新手,CUDA求教

zjr448948193 2016-09-01 04:29:14
本人初学CUDA,想请教一下cudaMalloc、cudaMemcpy里各个参数是什么,有什么注意事项,下面这段代码希望可以分析讲解一下

cudaMalloc((void**) &gpudata, sizeof(int) * DATA_SIZE);/分配内存
cudaMalloc((void**) &result, sizeof(int) * THREAD_NUM* BLOCK_NUM);
cudaMalloc((void**) &time, sizeof(clock_t)* BLOCK_NUM * 2);
cudaMemcpy(gpudata, data, sizeof(int) * DATA_SIZE,cudaMemcpyHostToDevice);

sumOfSquares<<<BLOCK_NUM, THREAD_NUM, 0>>>(gpudata, result, time);
...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhongke007 2016-09-05
  • 打赏
  • 举报
回复
cudaMalloc()和cudaMemcpy()的作用其实和C语言里面的malloc()和memcpy()一样,就是用来分配内存的,但是分配的是GPU里面的显存。cudaMemcpyDeviceToHost和cudaMemcpyHostToDevice说明了内存操作源和目标地址:是从显卡内存复制到主机内存,还是从主机内存复制到显卡内存!这些API的参数含义请参考CUDA编程手册!
zjr448948193 2016-09-01
  • 打赏
  • 举报
回复
还有这个

cudaMemcpy(&sum, result, sizeof(int) * THREAD_NUM* BLOCK_NUM, cudaMemcpyDeviceToHost);
cudaMemcpy(&time_used, time, sizeof(clock_t)* BLOCK_NUM * 2,cudaMemcpyDeviceToHost);

581

社区成员

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

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