Physics processing on GPUs is inevitable
The future direction of GPUs is turning firmly toward multi-platform physics support - we just need Nvidia, Intel and AMD to agree on a standard, says Nathan Taylor.
We received word this week that EA is using Nvidia’s PhysX SDK for its upcoming Mirror’s Edge game. It’s a rare win for Nvidia – Intel’s Havok dominates the advanced physics engine market right now.
I don’t know whether this will lead to other developers following suit, however. The big advantage that PhysX has is that it can use the processing power of modern GPUs to accelerate certain physics calculations.
In effect, it provides hardware acceleration for physics, assuming the graphics card has enough oomph to do both graphics and physics at the same time. This extra power allows for better particle effects, realistically destructible environments and objects that behave more naturally in the 3D world (like fabric or hair wafting in the breeze).
The problem with PhysX, of course, is that it’s built on top of CUDA, an engine for using the processing power of Nvidia GPUs for general purpose tasks (hence the term GPGPU – general purpose computing on graphics processing units).
The key word there is Nvidia; AMD/ATI has not signed up, which means that developers will still have to use a physics engine that supports the AMD architecture.
Although Havok FX, a version of Havok that was slated to use hardware acceleration on both AMD and Nvidia GPUs, is apparently dead, I would expect that physics processing on GPUs is an inevitability. Mostly it’s just a matter of getting the three major hardware vendors (Nvidia, Intel and AMD) to agree to a standard computing interface for GPGPUs.
Most likely we’ll see broad multi-platform GPGPU and hardware physics support when DirectX 11 hits, although the 1.0 specification of OpenCL (developed by Apple) did just come out a few weeks ago.
In the longer term, we might even see the core x86 instruction set architecture expanded to incorporate more stream processing elements beyond the current SIMD extensions (stream processing, which GPUs are so good at, is about performing the same calculation on a large number of data elements).
AMD’s Fusion processor, which will incorporate a GPU into the main CPU, could be a stepping stone to that kind of architectural integration. Even if there is a supplementary graphics card in a Fusion system, for example, the Fusion GPU on the main CPU die could be used for physics and other stream processing tasks.
Of course, Fusion could also be just a cheap variant on embedded graphics.
Other Blog Entries written by Nathan Taylor:
Thoughts on this article? Add a comment below.
Be the first to comment on this article.