I have a doubt: if I´m working with data parallel (using ClEnqueueNDRangeKernel..) and I´m 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 I´m not using task parallel. Thanks!!