CUDA, OpenCL, and OpenGL all come into play as professional graphics applications learn to play nice with multiple CPUs and GPUs.
There is no good reason why software developers can’t improve the performance of their software by using the new software tools for GPU compute. If you’re a software developer reading that first sentence you might well have just taken your computer and thrown it against the wall. Sorry.
Truth is, it’s really hard for software developers to take advantage of the growing number of processors in CPUs and GPUs. It’s hard to automatically distribute the work between the CPU and GPU and deal with modern software algorithms that were originally designed for older processors. Software engineers are building new tools to accommodate modern software architectures, but it is a revolution just getting started.
At NAB this year, it was striking to see how many companies have taken advantage of GPU compute to improve the performance of their applications. Video, rendering, imaging, and effects are all tasks that can benefit from the parallelism of GPU compute. Nvidia’s CUDA and OpenGL have been around for a long time, but we’re also seeing the first of the OpenCL applications coming online.
Characteristically, we think, Nvidia has been concentrating on HPC and professional applications first. The results of their early work shows up in the accompanying chart. OpenCL apps are coming along, and there are even more for mainstream applications because that’s where AMD is putting their efforts. We admit that there are probably other examples we missed. By the time NAB 2013 rolls around, this chart will be too big to publish.