理解OpenCL中的工作组、工作项的索引

本文深入解析OpenCL中工作组和工作项的概念,包括全局ID和局部ID的定义,通过一维数据处理和二维图像池化的实例进行说明,帮助理解并行计算中的并行组织结构。
摘要由CSDN通过智能技术生成

理解OpenCL中的工作组、工作项的索引

 ==============================================================

目录结构

1、工作组和工作项

2、一维数据的工作组和工作项

3、深度学习中二维图像的池化(Pooling)

4、参考

 ==============================================================

 

关键词:OpenCL   工作组   工作项    深度学习池化Pooling

本文第1节介绍了OpenCL中的工作组和工作项,摘抄自书本《OpenCL编程指南》,因其在并行计算中比较重要,特别作为重点从理论到实践理解。

第2节以核函数为例,该函数的输出是输入数组数据的两倍,同时输出各个工作项对应的全局ID和局部ID。

第3节以深度学习中的池化为例,介绍了2维图像的工作组和工作项ID,以及简单提及3维内容的工作组和工作项ID。

1、工作组和工作项

OpenCL运行时系统会创建一个整数索引空间,索引空间是N维的值网格,N为1、2或3,又称NDRange。

执行内核的各个实例称为工作项(work-item)。工作项在整个索引空间中由一个全局ID标识,就像学校给学生用学号标识。

工作项组织为工作组(work-group)。全局索引为工作组指定了工作组ID(就像学校给班级编号),工作组内又为工作项指定了局部ID(就像班级里又为学生编了号)。

所以,如何通过坐标方式找到工作项。

(1)可以通过工作项的全局索引

(2)先通过工作组索引号,再通过局部索引号

使用(gx,gy)表示工作项的全局ID,全局索引工具大小为(Gx,Gy)。

所以工作项的坐标范围为[(0,Gx-1), (0,Gy-1)]。

用w表示工作组ID,W工作组各个维度的维度大小。

把一

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值