Why your next CPU could be a GPU

GPUs excel at data parallelism because they have lots of maths units and fast access to onboard memory. They also achieve a high throughput on parallel tasks because programs can be executed on each shader core.

However, CPUs still rule the roost as far as task parallelism is concerned because their fast caches enable efficient data retention and they can handle branching. CPUs can achieve high performance on a single thread. In other words, the processors complement each other.

To get the most out of this CPU/GPU partnership in the future, developers will need to change the way that applications are coded. That's where programming languages such as CUDA and OpenCL come in.

We've yet to see the best of what GPGPU computation has to offer. The programmability of GPU cores could make real-time ray tracing a possibility, while the concept of GPU-accelerated storage could allow PCs to encrypt and compress files on the fly. And the GPGPU concept isn't restricted to desktop systems and workstations, either. There's scope for multiple processing on mobile devices too.

An alternative future

Another possible scenario is that current GPGPU initiatives are just a stopgap measure until CPU and GPU platforms converge. In a recent interview with website Ars Technica, Epic Games' co-founder Tim Sweeney suggested that: "In the next console generation, consoles could consist of a single non-commodity chip. It could be a general processor that has evolved from a past CPU architecture or GPU architecture, and it could potentially run everything – the graphics, the AI, the sound – in an entirely homogeneous manner. That's a very interesting prospect because it could dramatically simplify the toolset and the processes for creating software."

This sounds a little like Intel's Larrabee project, which is due for release in early 2010. So perhaps a dramatic change in processor architecture isn't as far away as some people might think. One thing's for sure, though: don't count the GPU out just yet.