5.8.5 Executing kernels
Queuing the kernel for execution does not mean that it executes immediately. The kernel execution is put into the command queue so the device can process it later.
The call to
not a blocking call and returns before the kernel has executed.
It can sometimes return before the kernel has started executing.
It is possible to make a kernel wait for execution until previous
events are finished. You can specify certain kernels wait until
other specific kernels are completed before executing.
Kernels are executed in the order they are enqueued unless
set when the command queue is created.
Kernels that are enqueued to an in-order queue automatically
wait for kernels that were previously enqueued on the same queue.
You are not required to write any code to synchronize them.