Ok, physics can be done on the gpu, and there have already been demos of it. Something like a particle system can be processed entirely on the gpu, with the physics of it and all. But the fact remains that the gpu isnt as flexible as a cpu from a coding perspective, and often you have to rewrite the algorithm to make it run efficiently. For example, gpu's work best when running the same instructions on a large amount of data. If you have a large number of objects, you can store their position, velocity, and acceleration vectors in a 2D array represented by a FP32 texture (RGB representing the x,y,z components). Then you run a pixel shader that reads every texel in the texture and performs the calculations. The speed of such calculations would be orders of magnitude faster than what you can do on the cpu.
The major concern with this, though, is that the gpu is already busy rendering the graphics, so ideally you'd need a second gpu with decent pixel shading power to run the physics math.
The major concern with this, though, is that the gpu is already busy rendering the graphics, so ideally you'd need a second gpu with decent pixel shading power to run the physics math.