Difference between OpenCL and CUDA Can both co-exist?


I want to know the basic diffrences between OpenCL and CUDA. And which one should be considered a breakthrouigh technology? Can we integrated the two?
Actually we are developing an Intrusion Detection System, and we have a team of CUDA experts. Now I want to know whether we should re-invest our effort in exploring OpenCL or CUDA will be sufficient. Also do we get any significant advantage by using OpenCL?

Thanks in advance.


In my opinion, CUDA is the more mature technology, and has some features that are not yet available in OpenCL.

The main advantage of OpenCL is that it is cross-platform, although you will likely still have to optimize your kernels for each hardware target.


this is a question which is bothering me too.

In my personal opinion, OpenCL has more possibilities of CUDA: both multiplatform, and,

more important, try to integrate GPU and CPU.

Obviously OpenCL has just appeard … so is not as mature as CUDA,

The problem is that I think it will be a commercial decision: which platform do we support?

CUDA and OpenCL of just CUDA?


Gianluca Moro

I’ve yet to see cross platform support, except for the the prerelease of osx snow leopard.

Also, at least for the nvidia samples at least, for some reason the opencl samples ran at about half speed compared to the cuda samples, don’t know if it is opencl or the implementation

One last thing, opencl is very young and most guess I heard were that in order to achieve what is planned for it, it’s going to be a moving target for some time into the future. AFAIK 1.1 is in discussion at the moment already