Это зависит от того, как вы создаете очередь команд.в clCreateCommandQueue есть параметр свойств, который может содержать CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, который разрешает непоследовательное выполнение в очереди команд.
Если это свойство установлено, команды могут выполняться не по порядку или параллельно, и единственный способ синхронизацииони используют события.
Если это свойство не задано, команды последовательно выполняются в очереди.