在Opencl内,关于group的疑问?

刘静爱it 2014-03-07 03:24:35
大家好!在cuda里,“一个sm同时执行8个block”。那相对于opencl,对于group是否有类似的说法呢?
...全文
820 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
清风水岸 2014-12-15
  • 打赏
  • 举报
回复
sm流多处理器,block对应OpenCL的work-group。翻译过来就是流多处理器可以同时并行执行8个warp(CUDA)中的。实际上你可以看做每个SIMD都具有缓存指令的功能。如GCN架构下的CU中,由4个SIMD阵列组成和一个标量ALU组成,每个SIMD阵列中有16个ALU模块,每个SIMD阵列可以缓存10条指令。所以一个CU就可以并发40个wavefront。
刘静爱it 2014-08-31
  • 打赏
  • 举报
回复
引用 1 楼 lcwyylcwyy 的回复:
workitem == threads workgroup == blocks 但是cuda中每次计算全局线程号都需要blockIdx.x*blockDim.x+threadIdx.x 而CL中只需要get_global_id(0);0就是x的索引,1为y的索引 get_group_size(0)为blockDim 基本都有对应关系,建议看看《大规模并行处理器变成实战》中OpenCL那一章
谢啦,看了看相关的书籍,似懂非懂,还得琢磨一下
yancheng518 2014-03-15
  • 打赏
  • 举报
回复
Thread Block 对应的应该是 workgroup
zenny_chen 2014-03-07
  • 打赏
  • 举报
回复
如果是AMD的GPU的话,与Block对应的是wavefront。在Tesla架构中,一个block由32个work-item组成;而在RV770~Evergreen中,一个wavefront由64个work-item构成~ 当然,这些都是硬件架构决定的,对于CUDA、OpenCL本身而言并未定死。
lcwyylcwyy 2014-03-07
  • 打赏
  • 举报
回复
workitem == threads workgroup == blocks 但是cuda中每次计算全局线程号都需要blockIdx.x*blockDim.x+threadIdx.x 而CL中只需要get_global_id(0);0就是x的索引,1为y的索引 get_group_size(0)为blockDim 基本都有对应关系,建议看看《大规模并行处理器变成实战》中OpenCL那一章

604

社区成员

发帖
与我相关
我的任务
社区描述
异构开发技术
社区管理员
  • OpenCL和异构编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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