具有较大全局ID的工作项是否可以在具有较小全局ID的工作项之前执行?

时间:2012-08-24 21:54:28

标签: opencl

我阅读了OpenCL规范,但没有找到如何分配全局ID。是在EnQueue时间内分配,还是在运行时分配?

如果以后,很容易看到id较小的工作项总是更早或同时执行(如果在同一个warp中)具有更大id的工作项。如果在EnQueue时间内分配,我们能否保证执行顺序与全局ID一致?

1 个答案:

答案 0 :(得分:3)

OpenCL无法保证工作组的执行顺序,因此您的算法不应该依赖于此。

为了给出一个如何假设失败的具体例子,想象一下内核中有一个数据相关的分支。在一个工作组中,可能需要采用分支的两侧,而在另一个工作组中,仅需要一侧。后一工作组将首先完成,即使它可能与前者同时启动。