OpenCL™ Runtime and Compiler for Intel® Processor Graphics
OpenCL™ memory objects, created on a shared context, are shared among the context devices. Applications do not need to copy them (using a "Read" or "Write" operation) between the context devices to process on the target device.
Intel OpenCL devices use true resource sharing in a shared context. There is no hidden memory copy when processing the memory object on different devices. However, there might still be a copy on clEnqueueMapBuffer[Image] or clEnqueueUnmapMemObject of the memory objects created with the CL_MEM_USE_HOST_PTR flag set.
The OpenCL™ Optimization Guide for Intel® Processors Graphics provides more information on how to avoid memory synchronization overhead with the host application.
OpenCL™ Optimization Guide for Intel® Processor Graphics