CUDA kernel核函数读取global memory数据

anew_moon 2019-11-14 10:31:37
现在需要利用GPU-CUDA计算一个很大的数组问题,但是数组很大(eg. 10000),但是由于GPU设备可调用的线程总数有限(eg. 5000),所以计划将数组分为等大小的4分,分四次调用kernel核函数。
示例代码如下

//将大小为10000的数组整个传递到GPU global memory中
cudaMemcpy(d_a, h_a, sizeof(int)*10000);
//大小为10000数组a,分为4份, 分别调用核函数
for(int i=0; i<4; i++)
{
//...
kernel<<<grid, block>>>(ai)
}

问题:
每次调用核函数,kernel从global中是读取1/4的数组a(即2500个数据),还是每次读取整个数组(即10000个数据);
...全文
156 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

579

社区成员

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

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