>> Sunday, February 20, 2011
I started learning OpenCL because I wanted my code to run on as many vendors' devices as possible. But whenever I find GPU code on the web, it's always in CUDA, which only targets Nvidia devices.
CUDA is older than OpenCL, so it's understandable that it has a larger developer base. But still, a search on indeed.com tells me there are 217 job openings for "cuda -opencl" but only 79 job openings for "opencl -cuda". So even though the OpenCL Working Group contains AMD, Intel, IBM, Apple, and Nvidia, companies are still only interested in targeting Nvidia hardware.
Not really that surprising, I suppose. Many corporations support OpenCL, but none of them are as passionate about the language as Nvidia is about CUDA. GPGPU development is still a novelty to most, but Nvidia keeps making dedicated GPGPU hardware like their Tesla servers. Nvidia has released cuBlas, a library of BLAS-related matrix routines. OpenCL doesn't have anything like it. CUDA has three books and a certification exam. OpenCL has no books at all. Not yet, anyway.