OpenCL:多个clEnqueueNDRangeKernel()调用

Ada*_*m S 1 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()调用?

Mat*_*gro 5

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