[ODE] Future of physics processors and IM API

David Black dblack at fastmail.fm
Sat May 14 12:00:38 MST 2005


Hi,

I have been thinking about physics hardware and how it might be accessed 
through an API effectivly.

The AGEIA chip looks interesting, except what worries me is that novodex 
is a little too high level and as a result seems less flexible.

I can see a number of levels for physics hardware(just considering the 
joint solver for now).

The simplest would be a hardware implimentation of a gauss seidel or 
jacobi iterator(or even something smarter, like a hybrid 
iterative/dantzig solver or multi grid inspired method). This would be 
relativly simple to create an API for, ie store matrices in shared 
memory and issues requests to process them, with either an error 
tolerance or set number of iterations. Then recieving the results some 
time later.

The next level in sophistication would be a chip which can perform the 
above, but in addition has the ability to build jacobians(and associated 
parameters) from a fixed set of joint descriptions(eg contact, ball and 
socket, slider etc).

After this you get to the next level where you have 'physics shaders', 
in a similar way to GPUs. There function is to build the jacobians(etc) 
on the PPU while being passed joint parameters from the user.

Then there is the integrator, there are many choices for this, but I 
presume something fairly standard would have to be chosen, eg RK4 or 
semi implicit euler etc. Again some sort of shader type language could 
be used, but I am not sure it is so necasery for the integrator.

Following on there is group/island managment and sleeping/autodisable. 
Which is more difficult. The higher you go the more policy you need to 
put in the hardware and the less flexible it becomes.

I just hope AGEIA (or someone else) comes up with a physics chip which 
can be accessed at these levels, rather than only through something like 
novodex(which is great, but not suited to everyones needs and I am sure 
given the chance people could improve upon it).

I also wonder if the AGEIA chip isnt just novodex in the firmware on the 
card and executed by a CPU with some additional hardware. (Anyone 
remember rendition graphics cards?). I just dont think such an approach 
is very scalable...

What are peoples thoughts?

David


More information about the ODE mailing list