PDA

View Full Version : MS working on "Direct Physics" - API for physics on GPUs


Titanio
05-Sep-2005, 19:01
I did both a forum search and a google search of the entire site, and couldn't find mention of this. But sorry if it is old! Also wasn't very sure where to put this..this seemed about as good a place as any.

MS has posted this job ad recently seeking an engineer to join a team working on "Direct Physics":

http://www.uklug.co.uk/jobs/17995159.html

The Windows Graphics and Gaming Technology group is looking for a software design engineer to join a growing team responsible for developing Direct Physics. This team is responsible for delivering a great leap forwards in the way game developers think about integrating Physics into their engines. Physics and real time, accurate simulation is a key part of the next generation gaming experience, bringing increased realism, greater immersion and more interesting experiences.
You will be a member of the core engine team who will be primarily responsible for working closely with our Direct3D team, helping to define, develop and map optimized simulation and collision algorithms onto data structures that are optimized for the GPU. Extensive experience with graphics shading languages such as HLSL is expected as well as a good understanding of modern graphics hardware and associated algorithms.
You should have excellent C/C++ skills with at least 4 years of development experience. You should have a good understanding of 3D Math as well as current CPU and GPU architecture. Knowledge of DirectX and shipping game applications is strongly recommended. An understanding of Havok, Ageia, MathEngine, Meqon or ODE would be ideal. A BA/BS degree in Computer Science, Math, Physics or equivalent experience is required.

In some ways it seems obvious given the increasing amount of research work, and work by NVidia/ATi on "general processing" on GPUs, and specifically physics. I could see this being complementary to CPU engines (Havok etc.), and I could in fact see such engines leveraging an API like this to offer devs the choice of using the GPU for physics if they wanted. I actually think it would require the support of the likes of Havok and AGEIA in fact, since I don't know if too many devs would want to distribute their physics code across two different APIs and try to synch them appropriately.

I just wonder how much of an appetitie there currently is for sacrificing GPU time for physics, though. Good to have the option, but I think it'd be more popular once the level of power available in GPUs becomes a little more surplus to demand. Of course I doubt we'll see this till at least DX10, if not later (?)

Tim Murray
05-Sep-2005, 19:08
'scuse me, I need to go register www.beyondphysics.com (http://www.beyondphysics.com) edit: nope, too late, I lost

wonder how Ageia and the like are going to respond to this. going to drive adoption, or going to steal Ageia's thunder?

digitalwanderer
05-Sep-2005, 19:12
Good to have the option, but I think it'd be more popular once the level of power available in GPUs becomes a little more surplus to demand. Of course I doubt we'll see this till at least DX10, if not later (?)
I dunno, I still think I'm over-powered in the GPU department with an X800 TT....I'd love to see the option.

Inane_Dork
05-Sep-2005, 19:15
Between this and SLI/Crossfire, PPUs might be superceded.

Titanio
05-Sep-2005, 19:16
I dunno, I still think I'm over-powered in the GPU department with an X800 TT....I'd love to see the option.

I must say you're the first I've heard who thinks we've too much GPU power ;)

I think it's good to have if you do have power to spare though, undoubtedly.

As for AGEIA - obviously they have another hardware interest in the PPU. And I was previously thinking that this wouldn't affect that, and it probably wouldn't. Use of the GPU for physics is likely to be supplementary to what's being done elsewhere (be it on a CPU or PPU or whatever). And from a software side that'd actually then require the support of the likes of AGEIA, since you're physics on your CPU/PPU and GPU would need to be very well integrated..

..but then I got to wondering, what if this API is in support of "other" hardware going onto GPUs? What if ATI/NVidia are working on dedicated logic for physics to start integrating with GPUs? There was a brief rumour of that before..crazy I guess :P ? It wouldn't exactly be a total deviation from their raison detre either, physics can be tightly linked to graphics, it might just be that graphics processors of tomorrow will start to explicitly accomodate that?

..or what if this API would be in anticipation of multiple dedicated physics chips from other vendors, like AGEIA? MS getting in early to fill a need for a common API in such circumstances? It's classed as being for GPUs now, but if a competitive market did develop with multiple different vendors for dedicated chips, it could perhaps be extended to that.

Between this and SLI/Crossfire, PPUs might be superceded.

It's interesting indeed to think if using a GPU in this way could increase utilisation in a SLI scenario, since on the graphics side there seems to be some difficulty tapping the second chip's power fully. I don't know if something else could occupy the space or if there are some other hurdles..

Oh, and one wonders what Carmack thinks of all this :P The growth of physics on CPUs seems to irk him enough, I wonder what he thinks of it encroaching on GPU territory - his territory (and perhaps even influencing the design of GPUs? i wonder if we'll see mandated specs that gpus need to comply with in order to be classed as "Direct Physics 1.0" gpus)

digitalwanderer
05-Sep-2005, 19:33
I must say you're the first I've heard who thinks we've too much GPU power ;)

I think it's good to have if you do have power to spare though, undoubtedly.
My old 17" CRT can only do 1024x768 @ 100Hz , I can push it to 1280x1024 or whatever at 85Hz but there isn't much difference to me so I generally just stick with 1024x768. :oops:

I still like the idea of the option to do it though, the more options the better. :)

And Baron you raise a good point and something that I was wondering a bit about too, and I think either way this will help the adoption of a much better level of physics in gaming so for me it's all good...it's just waiting to see which one wins so I know what to buy. :twisted:

Jawed
05-Sep-2005, 20:32
Nice find.

If anything this work would seem to be targetted first at Xenos which is the first GPU, courtesy of MEMEXPORT, to be able to perform arbitray vector maths for the CPU and return results to it without having to jump through hoops (a la BrookGPU).

Additionally, much like Cell's SPEs, Xenos's shader core is simply a high-performance streaming vector engine. Cell's SPEs are 7-way MIMD with 2 threads per SPE. Xenos is 3-way MIMD with 16 threads per array.

The nice thing about Xenos is its low-cost dynamic branching...

I do wonder if there's much spare capacity on Xenos for physics on top of graphics.

Since Xenos seems to be a fairly direct implementation of the DX10 pipeline, it seems like it would make a very good platform to start off down the road of physics-on-GPU.

Jawed

991060
06-Sep-2005, 02:46
In current games, physics just takes a fraction of the CPU time, given GPU is much more powerful when doing vector math, devs can throw much more data to the physics engine, at approximately the same cost.

Good to see physics finally caught some attentions, it's really important to improve the gameplay IMHO. A complete solution would be desirable, since many developers find it hard to write an efficient and stable physics engine from groud up. Low-level API should also be exposed, such as raycasting, collision report, etc, they can be used in other areas such as AI path finding, occlusion culling. I'm sure they can get some inspiration from Novodex.

nelg
06-Sep-2005, 05:36
I understand this is something different from having multiple render target in n various memory pools, are you implying an ALU can arbitrarily output something anywhere in system memory?
If this is true..well..it would open a new whole world to GPGPU-like processing
(and a brand new world of bugs too :) )
It would be nice to know if it can even manage mem coherency, but I bet this is left as an exercise to shaders writers ;)
To which Dave replied....

:wink:

To which I suggested

Novadex?



http://www.beyond3d.com/forum/showpost.php?p=482297&postcount=84

blakjedi
06-Sep-2005, 16:51
Cell's SPEs are 7-way MIMD with 2 threads per SPE. .

Jawed

SPEs are single threaded.

Jawed
06-Sep-2005, 16:56
I was trying to take account of the dual-issue capability of each SPE...

Jawed