You’ve asked some good, low-level questions, but hopefully I can help by redirecting you a bit...
If you’re interested in writing an SVM application, I believe you’d want to use the OpenCL 2.0 API.
Since your Skylake supports OpenCL 2.0’s Fine-Grained Buffer SVM, no explicit GPU cache flushing is necessary (i.e. all involved caches are coherent). Whereas if you want more explicit flushing control, you can instead use their Coarse-Grained Buffer SVM.
Hopefully this article can help you get up to speed on these concepts: OpenCL™ 2.0 Shared Virtual Memory Overview | Intel® Software