title: Run C# code on GPU
body: <p>I have no knowledge of GPU programming concepts and APIs. I have a few questions:</p>
  
  <ol>
  <li>Is it possible to write a piece of managed C# code and compile/translate it to some kind of module, which can be executed on the GPU? Or am I doomed to have two implementations, one for managed on the CPU and one for the GPU (I understand that there will be restrictions on what can be executed on the GPU)?</li>
  <li>Does there exist a decent and mature API to program independently against various GPU hardware vendors (i.e. a common API)?</li>
  <li>Are there any best practices if one wants to develop applications that run on a CPU, written in managed language, and also provide speed optimizations if suitable GPU hardware is present?</li>
  </ol>
  
  <p>I would also be glad for links to any kind of documentation with appropriate learning resources.</p>
  
  <p>Best,
  Jozef</p>