ATI and Physics Acceleration
At Computex 2006 ATI have been showing off their accelerated physics implementation for the Havok FX engine. Just like Nvidia a few months back, ATI have been showing off accelerated Havok FX demonstrations mainly focusing around collision detection.
CPU’s can run all the different tasks present in current 3D games, like artificial intelligence, physics, rendering, networking, audio, and so on, and those who remember playing games before the advent of graphics accelerators will remember how "interesting" that was (320×200 pixels gaming was especially excruciating). To increase graphics to the levels we have today special purpose processors were designed to off load some of those tasks from the CPU. I’m talking about the GPU of course, but soon we’ll be seeing another attempt to off load specific tasks – Physics.
Modern GPU’s excel at data parallel processing (DPP) tasks, where a common set of instructions are executed simultaneously across a large set of input data. Besides rendering, the detailed physics simulations that enhance the experience of recent 3D games also happen to fall into this category. Now GPU’s can be used to accelerate these simulations, and so today?s GPU’s will start to take on an expanded role in game computing.
To expose the data parallel processing capabilities of the Radeon X1000 family of GPU’s to game physics engines and other applications that can take advantage of it, ATI has designed a DPP abstraction interface. This interface makes the GPU appear as a simplified data parallel processor, as illustrated in the diagram below.
|click to enlarge|
ATI Data Parallel Processing Architecture for Physics Acceleration.
Asymmetric Processing With graphics acceleration it is easy to improve execution speed due to its parallel nature. You can distribute the same processing tasks across two or more GPU’s providing both GPU’s have the same feature set and performance. This is known a symmetric processing and is how SLI and CrossFire currently work.
|click to enlarge|
Some of the different asymmetric configurations possible with CrossFire, using two or three graphics cards.
Because physics acceleration is independent to graphics acceleration this idea goes out of the window. You can use any R5xx based (X1600 and above) GPU for physics acceleration without having to worry about symmetrical processing in your array. For example, you can use two X1900 XT’s for graphics and a single X1600 for physics if you like, that’s not a problem. This is the first asymmetric solution for multiple GPU’s announced, but we will no doubt be seeing more of this in the future from both red and green.
It should be pointed out that though it is asymmetric, each top tier feature (graphics acceleration, physics acceleration) is still bound to scaling symmetrically, so for rendering you still need two identical cards, and if ATI ever decide to support multiple boards for physics acceleration you would need identical boards there, too.