You may have never heard of CUDA or OpenCL, and that’s no surprise. Only a very limited number of AI, VR researchers, and programmers use them. However, the AMD graphic cards of your Mac, your XBox games, Google searches, and Facebook newsfeed rely on these technologies, and you’re inadvertently reaping the benefits.
CUDA and OpenCL are gateways to your computers’ GPU. Once used for gaming mainly, GPUs are today the main components of AI servers, VR machines and blockchain miners. With Moore’s Law’s demise, they’re increasingly replacing CPU in the ranking of importance in computer architecture.
GPUs can be described as multiple dumb CPUs stacked together in a single unit. They excel at parallel processing of certain mathematically-intensive tasks. A convolutional neural network training operation can be completed a hundred times faster, if programmed with CUDA or OpenCL APIs and run on GPUs, instead of CPUs.
CUDA was developed by Nvidia, and today it’s the golden standard of GPU computing. Many AI papers reference their research and computations to CUDA. OpenCL is its open alternative, mainly supported by AMD.
The war between CUDA and OpenCL is similar to the one that played out between DirectX and OpenGL circa the 1990s and 2000s. DirectX, introduced by Microsoft, was the de-facto multimedia programming standard for game programmers and OpenGL was its open source competitor, popular in the UNIX world. Despite the fact that OpenGL was getting stronger and faster to a point where the difference between the two had become negligible, it never caught on as much as its proprietary counterpart, and game programmers continued to release their games on Microsoft platforms predominantly for very long times.
Today, Nvidia (and CUDA) continues to lead in the new holy wars of GPU, but the gap may be tightening. Despite AMD’s wins in gaming stations, XBox One and PS4 as well as latest Apple desktops, Nvidia remains the top choice in more serious, resource-hungry applications such as driverless vehicles, and data centers.
With the rise of AI, AR and blockchain, we will hear more about these two platforms in the days ahead. Nevertheless, they may be both beneficial to invest your time and energy as a developer.