OpenCL同步问题

tobephy 2016-07-14 06:25:24
关于同步的问题。。。

当设定的global_item_size超过了GPU的最大item时
(比如: maxgroup=28,maxItemPerGrup = 255
而设定的global_item_size = { 3000, 3000}(处理一个图像))

此时运算模块只能一部分的一部分的计算。。。

于是发现
work_group_barrier(CLK_LOCAL_MEM_FENCE);
work_group_barrier(CLK_GLOBAL_MEM_FENCE);
也无法完成整个图像处理的同步。。

请教下各位朋友,有没有什么办法实现同步?

我的目的是处理一个3000*3000的图像

处理完了后存入一个3000*3000的中间缓存
就是这里需要同步,保证中间缓存的数据全部完成更新

再将缓存中的数据做一次处理(依然是3000*3000的维度)后,输出。

在实际测试中,暂时找不到什么办法能实现这样的同步?

(PS:我不想用pipe,那种方法不适合我的情况,如果有办法实现同步,我的项目后期会大量使用。)
...全文
640 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
韩大先生1 2017-09-06
  • 打赏
  • 举报
回复
opencl全局同步,参考这个:靠主机端实现同步。 http://www.cnblogs.com/jinxiu0406/articles/7390754.html 时隔一年,估计楼主早解决了吧。
tobephy 2016-07-18
  • 打赏
  • 举报
回复
明白了,多谢,个人感觉,要搞什么同步,最好还是只弄local的,也不怎么影响性能
PiPiDad 2016-07-16
  • 打赏
  • 举报
回复
一般确定操作是否完成有两种方法,一种异步的情况下使用事件,另一种是直接设定为同步。 还有一个就是,opencl里边线程的调度本来就是乱序的,我们在每一个kernel中都只能用坐标来确定我们要操作的那个原子。 另一个,什么work group size,max work size和硬件没有关系,只和opencl版本有关系,在opencl的官方文档中有这样一句话:把任务交给opencl以后,它会尽量并行执行所有任务。所以,当device unit不够的情况下肯定就有一部分的任务需要串行了,开发人员不用去管(其实也管不了,没有提供这样的接口),把它当成完全并行的就可以了。
bluewanderer 2016-07-16
  • 打赏
  • 举报
回复
引用 2 楼 penghy0520 的回复:
可能是显卡不太兼容吧,这个问题我也不清楚,就是通过clGetDeviceInfo获取 CL_DEVICE_MAX_COMPUTE_UNITS CL_DEVICE_MAX_WORK_GROUP_SIZE CL_DEVICE_MAX_WORK_ITEM_SIZES 得到的是28(maxgroup),256(maxItemPerGrup ),以及{256,0,256} 感觉低了点,我这个显卡还是公司采购的amd W7100的高级显卡。。。 不知道问题出在哪儿。。。驱动重装几次了
max compute units只是说你的设备有几个运算单元,没说你不能提交大于这个数的work group(所以说你那个maxgroup,是怎么来的...) max work group size说的是你一个work group的尺寸限制,依然和work group个数无关。 max work item size说的是一个work group最多的项目数,还是和work group个数无关。
tobephy 2016-07-15
  • 打赏
  • 举报
回复
可能是显卡不太兼容吧,这个问题我也不清楚,就是通过clGetDeviceInfo获取 CL_DEVICE_MAX_COMPUTE_UNITS CL_DEVICE_MAX_WORK_GROUP_SIZE CL_DEVICE_MAX_WORK_ITEM_SIZES 得到的是28(maxgroup),256(maxItemPerGrup ),以及{256,0,256} 感觉低了点,我这个显卡还是公司采购的amd W7100的高级显卡。。。 不知道问题出在哪儿。。。驱动重装几次了
bluewanderer 2016-07-15
  • 打赏
  • 举报
回复
我这儿一堆1K x 512K的玩意... 另外你那些名词都是哪儿来的

602

社区成员

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

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