Quote Originally Posted by EpochDC View Post
OpenCL is the industry's standard, CUDA is a proprietary Nvidia technology.
Though it has a very large market penetration, it's not the standard...
Industry standard != open specification. Windows, DirectX and Exchange are all proprietary and in the same time are industry standards.
Look at this link: http://blogs.amd.com/fusion/2011/01/...stry-standard/
Microsoft offers ways to integrate in embedded their solutions: http://www.microsoft.com/windowsembe...solutions.aspx

I put MS here, but are many other industry standards that are standards but not open. Java for a long time was not open, and even OpenJDK is the open specification, certainly the Oracle's JDK is the Industry standard and most distros and OSes do install the Oracle's Java and not OpenJDK (you're free though to install the OpenJDK).

OpenCL though is a better standard to bet into future: if AMD (or eh, Intel) will bring tomorrow a much better compute GPU, you can switch to it even you bought today NVidia. With CUDA you will be always stuck. Also theoretically at least (it depends on the final device OS support) OpenCL allows to split the computing tasks through all cores and GPUs, so if you have a very fast CPU and a mediocre GPU you can "accelerate" the computations on your CPU, when again if you're using CUDA, your CPU will simply wait for your GPU to finish all computations.