Если «поток» относится к коду хоста, используйте блокировку чтения с устройства clEnqueueReadBuffe(buffer,/*wait*/CL_TRUE,...)
.Если вы создали свою очередь с не по порядку выполнением, прикрепите событие к ядру, которое его вычисляет, и дождитесь этого события.
Если вам нужно подождать на самом устройстве, либо включите get_*_id(...)
внутри ядра и используйте barrier(CLK_GLOBAL_MEM_FENCE)
, чтобы другие рабочие элементы в рабочей группе (не все рабочие элементы) ожидали в этот момент.Если вам нужно это значение для всех ядер, то используйте enqueueTask
для однопоточного ядра, предшествующего перед вашим ядром, и передайте значение в буфер.