I have a doubt: if Im working with data parallel (using ClEnqueueNDRangeKernel..) and Im launching many kernels and in some cases the data that is the input of a kernel is the output of a previous one, and all these is in a loop that is executed n times, can I be certain that the kernels will not overlap and use inconsistent data? or do I have to make something to make it work like that? Up to the moment I thought that it should be automatic as Im not using task parallel. Thanks!!