OpenCL:多个clEnqueueNDRangeKernel()调用

时间:2011-09-27 17:45:02

标签: opencl

我很困惑clEnqueueNDRangeKernel()在多次调用时如何工作。假设我排队10次(例如,使用for循环),每次使用global_work_size = 32.假设内核采用了一个全局参数,它用get_global_id(0)填充。

我的问题是关于global_id的枚举。

我的期望: 编号最高的global_id将是(10 * 32-1)= 319。

实际发生的事情: 编号最高的global_id是(32-1)= 31。

有人可以解释每个工作项是如何逐步枚举的,因为进行了多次clEnqueueNDRangeKernel()调用吗?

1 个答案:

答案 0 :(得分:5)

在每个clEnqueueNDRAngeKernel调用中创建的NDRange空间彼此独立,全局工作项ID在每次调用之间都不是连续的或相关的。