title: OpenCL, Vulkan, Sycl
body: <p>I am trying to understand the OpenCL ecosystem and how Vulkan comes into play. </p>
  
  <ul>
  <li>I understand that OpenCL is a framework to execute code on GPUs as well as CPUs, using kernels that may be compiled to SPIR.</li>
  <li>Vulkan can also be used as a compute-API using the same SPIR language.</li>
  <li>SYCL is a new specification that allows writing OpenCL code as proper standard-conforming C++14. It is my understanding that there are no free implementations of this specification yet. </li>
  </ul>
  
  <p>Given that,</p>
  
  <ul>
  <li><p>How does OpenCL relate to Vulkan? I understand that OpenCL is higher level and abstracts the devices, but does ( or could ) it use Vulkan internally? (instead of relying on vendor specific drivers)</p></li>
  <li><p>Vulkan is advertised as both a compute and graphics API, however I found very little resources for the compute part. Why is that ?</p></li>
  <li><p>Vulkan has performance advantages over OpenGL.  Is the same true for Vulkan vs OpenCl? (OpenCL is sadly notorious to being slower than CUDA.)</p></li>
  <li><p>Does SYCL use OpenCL internally or could it use Vulkan ? Or does it use neither and instead rely on low level, vendor specific APIs to be implemented ?   </p></li>
  </ul>