Alternatively they could make their own API, independent from OpenCL.  I have written a small amount in each languages (a rainbow table generator), and found the CUDA version much more pleasant to use.  CUDA made it really easy to get a good idea of the underlying hardware, and make architectural changes in order to make the code faster.<p>OpenCL (using an ATI card) was much harder to program, since the abstraction level was much higher.  Writing two separate kernels and have them each be faster than a generic version that ends up compromising for compatibility.<p>The OpenCL one ended up being faster, but I suspect that&#x27;s due to ATI hardware being superior at the time.