首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCL线程占用

OpenCL线程占用
EN

Stack Overflow用户
提问于 2016-10-29 01:31:25
回答 1查看 64关注 0票数 0

我写了一个简单的OpenCL-raycaster,其中每个线程代表一个像素。当然,与其他线程相比,一些线程,特别是那些刚刚显示为空的线程终止得相当快。我的问题是:使用过的内核是否可供其他内核在return后运行,还是在工作组的最后一个甚至整个程序完成后释放?

EN

回答 1

Stack Overflow用户

发布于 2016-10-30 22:58:09

在OpenCL中,全局工作大小被细分为多个工作组(这些工作组可以串行或并行执行,直到实现,但在任何一种情况下都是独立的)。工作组大小各不相同(例如,通常为32到256个项目),您也可以指定工作组大小。在工作组中的所有线程都完成之前,工作组不会终止,因此一个线程上的繁重处理与附近线程上的轻量级处理相结合,可能会留下空闲的硬件。然而,由于局部性(对象与空白空间),这可能只会发生在对象的边界上。此外,在一个工作组中,一些线程可能被分组在一起,并作为SIMD处理,这也意味着分支可能导致硬件空闲(学习“线程分歧”)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40310336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档