Nvidia spricht über GPU-beschleunigtes Physx: Keine Pläne für eine Portierung auf DirectX 11 oder Open CL
Nvidias Physx-Technologie ist seit dem Aufkauf von Ageia ein heiß diskutiertes Thema. In einem ausführlichen Interview sprechen drei Mitarbeiter der Geforce-Macher über die Physik-Bibliothek: Die Themen sind Physx unter DX11 und Open CL, die Multithreading-Tauglichkeit, die Anzahl kommender Spiele mit GPU-Physx und vieles mehr.
Einst war die Physx-Technologie Teil von Ageias Plänen, mit den Physics Processing Units (PPUs) in Form von Steckkarten die Physik in Spielen zu revolutionieren - Techdemos wie das passende benannte Cellfactor Revolution sind bis heute beeindruckend. Anno 2008 kaufte Nvidia die Pioniere auf und portierte die Physx-Physik-Bibliothek auf die hauseigene Schnittstelle CUDA. Somit läuft nicht nur Gameplay-relevante Physik auf CPU, sondern auch zusätzliche Effekte via GPU-Beschleunigung sind möglich.
Auf Geforce-Karten exklusiv versteht sich, denn Nvidia nutzt GPU-Physx um diverse PC-Spiele grafisch aufzuhübschen und als Alleinstellungsmerkmal - was vielen Nutzern einer Radeon-Grafikkarte nicht gefällt, da diese sich mit der Standard-(Konsolen-)Optik zufrieden geben müssen. Den Hybrid-Betrieb aus Radeon-Renderer-Karte und Geforce-Physx-Beschleuniger unterstützt Nvidia nicht und wird es auch nicht, wie der Hersteller erläuterte (der Aufwand für die QA sei zu hoch).
Im Gespräch mit Tony Tamasi, Senior Vice President of Content & Technology bei Nvidia, Ashu Rege, Vice President of Content & Technology sowieRev Lebaredian, Director of Engineering, gingen die Kollegen von Physx-Info einigen Halbwahrheiten und Gerüchten rund um die Physik-Bibliothek auf den Grund. So erwartet Nvidia für 2012 und 2013 deutlich mehr Titel mit GPU-Physx-Support als noch in den vergangenen Jahren. Die Arbeiten am Physx-SDK 3.x erforderten viel Aufwand, die entsprechenden Ressourcen konnten daher nicht genutzt werden, viele Spieleentwickler zu unterstützen - dies sei eine bewusste Entscheidung gewesen.
In die gleiche Richtung geht die Unterstützung anderer Schnittstellen abseits von CUDA: Laut Nvidia seien die Entwickler nicht an einer Portierung auf DirectX 11 - genauer die Compute Shader - oder Open CL interessiert und auch die Geforce-Macher hegen (ergo) keine Pläne einen solche Unterstützung umzusetzen [Achtung: Physx ist mit DX11 oder OCL in Spielen natürlich kompatibel, es geht rein um die GPU-Beschleunigung abseits von CUDA!]. Allerdings seien die CPU-seitigen Optimierungen im Physx-SDK 3.x gegenüber 2.8 vor allem im Bereich Multithreading zu suchen, wenngleich Nvidia betont, eine lineare Skalierung über eine bestimmte Anzahl an Kernen solle man nicht erwarten. Die Spieleentwickler würden das SKD gut aufnehmen, schließlich habe Nvidia das Paket auf diese zugeschnitten.
Der Fokus liege auf Spielen und vor allem die beiden APEX-Module Clothing und Destruction treibe Nvidia voran, zudem werde Physx auf allen (kommenden) Plattformen falls möglich unterstützt und sobald mobile Geräte CUDA bieten, soll es eine entsprechende GPU-Beschleunigung geben. Gegenüber der Art-Gallery-Demo, eine Präsentation von Feststoff-Physik auf der GDC 2011 in Kombination mit der Unreal Engine 3, habe man bereits große Fortschritte erzielt.
Das komplette Interview mit Tony Tamasi, Ashu Rege und Rev Lebaredian sowie weiteren Fragen samt Antworten finden Sie bei den Kollegen von Physx-Info.

BF3 und HL2 sind gescriptet, nicht dynamisch. Beide benötigen übrigens Havok ...
Was ist jetzt das besondere daran? In HL2 kann ich die Kisten auch zerschießen. Da brauch man kein PhysX für. Alles nur Marketing. Also ich kaufe mir für sowas keine NV karte.
Bei BF3 kann man auch viel zerschießen und es läuft nicht extra über eine Engine die PhysX bedarf.
Bei den preiswerteren 1155-Boards wird es schon schwieriger - wenn da zwei drauf sind, bleibt als Indiz: NV-SLI möglich - 2x8. Kein SLI, aber Crossfire - 1x16, 1x4. Aber nur als grobe Daumenregel - genauer hinschauer sollte man dann doch - aber für die Vorauswahl reichts erstmal.
(was natürlich auch wieder bedeutet, dass wir hier von Spielen reden, die es so oder so nicht gibt)
Dass die aktuellen SB-iGPUs beim transkodieren von Videos die GTX580 mit CUDA um Längen schlagen, liegt ja nicht an der Leistungsfähigkeit der Shader, sondern an einer speziellen Hardware-Engine. Ob man die auch für die Physik-berechnung nutzen kann, ist eher zweifelhaft.
Die von AMD geförte GPU-Ausgabe von Bullet sollte iirc Compute Shader nutzen. Das wird sicher vermutlich nicht auf eine sekundäre Karte umleiten lassen, es sei denn der Grafikkartentreiber unterstützt dies intern (was wiederum nur geht, wenn er für primäre und sekundäre Karte nötig ist)
Aber erstmal muss überhaupt jemand hochrechenlastige Physik damit realisieren.
Also ich kenne kaum welche mit 8/8/4 (systemathisch danach suchen ist allerdings auch schwer, weil x16@4 ja immer sinnloserweise als 16 geführt werden)
Da ""GPU"-PhysX" läuft genauso ""CPU"-PhysX" auch auf dem CPU-Client. Zwar bei den bisherigen Effekten unspielbar langsam - aber ich würde mal sagen: Die Titel, bei denen sich ein Hersteller den Aufwand macht, eine derart aufwendige Gameplay-Physik zu entwickeln, dass sie die CPU überlasten, die hätten auch eine Grafik, die sie auf dem IGP-Markt sowieso unspielbar macht.
(was natürlich auch wieder bedeutet, dass wir hier von Spielen reden, die es so oder so nicht gibt)
Ich bin ja auch der Meinung, ober besser gesagt ich würde es begrüssen, wenn PhysX auch auf AMD Karten funktionieren würde, will aber anmerken, dass dies für AMD noch ein haufen Arbeiten bedeuten würde. Wenn ich in einer der Letzten PGHW zurückblicke, waren Benchmarks welch über die offene Bullet Engine gemacht wurden, und hier waren fast ausschliesslich nvidia Karten vorne. Die Topmodelle verglichen sprich 6970 gegen gtx580 bringt die gtx 30% mehr Leistung in dem Bereich, was schon beachtlich ist.
Kurz, wenn das erste Game kommt, welche für die GPU-Physik BUllet nutzt, wird das zwar von AMD unterstüzt, und trotzdem wird AMD schlecht gegenüber nvidia Karten dastehen.
Mal ne andere Frage, ist es eigentlich möglich eine separate AMD Karte für Bullet-Physik bereitzustellen?