SVM logically extends global memory into host address space, and the cache support for global memory on Kaveri is CL_READ_WRITE_CACHE.
Does it mean that SVM will be cached as read and write type?
Does anyone know the difference between zero copy buffer and SVM ? which one is preferred to use?
Cache behavior depends on fine grain and coarse grain SVM. With coarse grain, since the coherency is guaranteed to sync points like kernel launch/exit, the cache invalidation happens only at sync points. For fine grain, it can be controlled by the developer using c11 memory model/atomics. Zero copy buffer is still buffer and so pointers (within a data structure) cannot be shared.