On an APU, the system memory is physically shared between the GPU and the CPU. However it is visible by either the CPU or the GPU at any given time. During the map/unmap operations, no physical/actual data transfer happens for zero-copy objects; it logically moves the buffer between the CPU and the GPU address space. A kernel running on the GPU can access the zero-copy data directly and the access bandwidth is generally much higher than the dGPUs.
One important point to note. Even though physical memory is shared, the memory access path can be different for CPU and GPU, hence no CPU-GPU synchronization is guaranteed other than the memory synchronization points defined by the OpenCL standard. Hence, host or device should not access the data while other one is using it.
P.S. I've whitelisted you.