Is there any mechanism to synchronize between host and device memory space ?
Some hint, references or case studies is requested.
Shouldn't cl_events do the trick? You can associate a event object to any execution or data transfer API, and then wait on that event for synchronization. Refer to OpenCL spec 1.2 for details on events.
Retrieving data ...