Nvidia Physx: Ab sofort komplett Open-Source

Worum es mir geht: Das besondere an der Engine, die gemeinhin als "PhysX" bezeichnet wird, ist die PhysX-Schnittstelle für Hardware-Beschleunigung. Entfernt man diese, bleibt eine weiterentwickelte Novodex-Physik-Engine für andere Berechnungswege, aber hat diese noch Vorteile gegenüber Havoc & Co? Spannend wäre eine Schnittstelle, mit der über die PhysX-Schnittstelle vergebene Befehle, also explizit die Physikberechnungen aller PhysX-Spiele einschließlich bereits bestehender, beispielsweise auf einer Radeon berechnet werden können. Da reden wir aber vom Backend auf der anderen Seite der Schnittstelle, nicht vom Software-SDK.
 
Angesichts immer leistungsfähigerer CPUs: Braucht man überhaupt noch eine Entlastung von Physik- oder Stoffberechnungen durch die GPU?
Es gab ja früher auch HavokFX als Alternative zum "normalen" CPU-Havok. Aber kam das irgendwo überhaupt zum Einsatz?:ugly:
 
@ Locuza & yummycandy: das sind doch 2 unterschiedliche Sichtweisen - die von rechts und die von oben z.B. Wie die Spiel-Engine (Frostbite, Unreal, Cry...) innen drin kocht und tickt ist dann z.B. die Sicht von oben. Welche Physik-Engine (PhysX, HavoK, OpenCL...) die Spiele-Engine unterstützt ist dann de Sicht von rechts. Der unterstützte Renderer (DirectX, Vulkan, OpenGL...) wäre dann die Sicht von links von mir aus, oder besser von vorne, um in 3D zu bleiben. So gesehen hat der PCGH_Torsten recht.
Es ist eine Sichtweise von Oben nach Unten.
Ganz am Boden wäre so etwas wie x86, CUDA, OpenCL, DirectCompute etc.
physx1-jpg.1022070


PhysX und Havok sind selber Softwarebibliotheken geschrieben durch irgendeine Programmsprache und auf der Basis gewisser APIs.
OpenCL oder CUDA sind z.B. spezifizierte Compute-APIs, welche von vielen Herstellern mit entsprechenden Treibern unterstützt wird.


Worum es mir geht: Das besondere an der Engine, die gemeinhin als "PhysX" bezeichnet wird, ist die PhysX-Schnittstelle für Hardware-Beschleunigung. Entfernt man diese, bleibt eine weiterentwickelte Novodex-Physik-Engine für andere Berechnungswege, aber hat diese noch Vorteile gegenüber Havoc & Co? Spannend wäre eine Schnittstelle, mit der über die PhysX-Schnittstelle vergebene Befehle, also explizit die Physikberechnungen aller PhysX-Spiele einschließlich bereits bestehender, beispielsweise auf einer Radeon berechnet werden können. Da reden wir aber vom Backend auf der anderen Seite der Schnittstelle, nicht vom Software-SDK.
Laut Benchmarks (Etwas biased von einem Nvidia Entwickler) und einem Spielentwickler ist CPU-PhysX die schnellste Softwarebibliothek auf dem Markt.
Coder Corner >> Archivio Blog >> The evolution of PhysX (11/12) - More sweep tests

Somit sind Vorteile gegenüber Havok & Co gegeben, noch mehr wenn man alles zusammenzählt, was die Technik in Bezug auf Features, Stabilität und Performance angeht und daneben die Kosten, die Dokumentation und das öffentliche einsehen und teilen von Informationen.

Beim drüberfliegen auf GitHub war es für mich als Laie nicht erkenntlich, ob der CUDA-Solver auch mitenthalten war, was die Portierung bezüglich eines ähnlichen Solvers über OCL oder DirectCompute natürlich massiv erleichtern würde.
Allgemein würde ich mir da aber keine großen Hoffnungen machen, dass in naher Zukunft sich dort etwas bewegen würde und jemand einen anderen Solver herstellerübergreifend implementiert und dann noch Spieleinbindungen geschehen, womit GPU-PhysX bei alten Spielen bei allen läuft.
Es ist vor allem langfristig interessant was Leute daraus lernen, entnehmen, modifizieren und umsetzen.
Die Möglichkeiten groß und das ist auf jeden Fall ein massiver Schritt den Nvidia dort gegangen ist.


Angesichts immer leistungsfähigerer CPUs: Braucht man überhaupt noch eine Entlastung von Physik- oder Stoffberechnungen durch die GPU?
Es gab ja früher auch HavokFX als Alternative zum "normalen" CPU-Havok. Aber kam das irgendwo überhaupt zum Einsatz?:ugly:
HavokFX wurde relativ früh beerdigt, nachdem Intel Havok übernommen hat, ob Zufall oder Kalkül, keine Ahnung.
In den letzten Jahren hat man aber GPU R&D betrieben, ob da schon was für die kommerzielle Nutzung abgefallen ist, weiß ich auch nicht, aber dank mangelnder PR und dem Echo im Internet wahrscheinlich nicht.

Und aufgrund unterschiedlicher Algorithmen und Stärken&Schwächen bei CPUs respektive GPUs für eine bestimmte Sorte davon, wird man immer beide Einheiten für gewisse Aufgaben brauchen.
Teilweise wandert mal eine Aufgabe zu einer anderen Unit.
 

Anhänge

  • physx1.jpg
    physx1.jpg
    56,1 KB · Aufrufe: 237
Beim drüberfliegen auf GitHub war es für mich als Laie nicht erkenntlich, ob der CUDA-Solver auch mitenthalten war, was die Portierung bezüglich eines ähnlichen Solvers über OCL oder DirectCompute natürlich massiv erleichtern würde.
Allgemein würde ich mir da aber keine großen Hoffnungen machen, dass in naher Zukunft sich dort etwas bewegen würde und jemand einen anderen Solver herstellerübergreifend implementiert und dann noch Spieleinbindungen geschehen, womit GPU-PhysX bei alten Spielen bei allen läuft.



Hab den Solver auch nicht entdecken können, lediglich ein Include, was auf den ersten Blick eher rudimentär aussah. Da das LLVM-Backend auch nicht OS ist, könnte man nicht über CU2CL oder HIP* gehen?
* GitHub - ROCm-Developer-Tools/HIP: HIP : Convert CUDA to Portable C++ Code
 
Angesichts immer leistungsfähigerer CPUs: Braucht man überhaupt noch eine Entlastung von Physik- oder Stoffberechnungen durch die GPU?
Es gab ja früher auch HavokFX als Alternative zum "normalen" CPU-Havok. Aber kam das irgendwo überhaupt zum Einsatz?:ugly:
Wurde nie fertig entwickelt da Intel Havok vorher aufgekauft hat. Intel wollte nicht, dass Physiklast auf die GPUs übertragen wird. Ist auch klar, weil Physik ein großes Potential hat und man das natürlich in einer Form haben möchte, die die eigene Hardware an die Grenzen treibt (und man dadurch stets neue Hardware verkaufen kann).

PCGH schrieb:
Außerdem betont der Chiphersteller, dass die BSD-3-Lizenz für Windows, Linux, Android, Mac OS und iOS gilt. Für die Playstation 4 (Pro) und Xbox One (X) bleibt die hauseigene EULA in Kraft.
Ist Nvidia rein technisch gesehen überhaupt ein Chiphersteller oder nur Designer?. Scheinbar gibts auf den Konsolen noch Geld zu holen.
 
Eigentlich ganz witzig: Dadurch, dass die letzten Jahre über Intel und Nvidia CPU-Physikberechnungen nicht vorangetrieben haben, hat AMD jetzt einen Nachteil. Wieso?
Man stelle sich mal vor, CPU-Physikberechnungen wären viel weiter. Dann wäre plötzlich ein Threadripper die klar beste Gaming-CPU... :wow:
...und die Ryzen-News würden sich jedesmal nochmal ganz anders lesen, dann wäre Intel für nahezu gar niemanden mehr eine vertretbare Wahl.
 
Allgemein würde ich mir da aber keine großen Hoffnungen machen, dass in naher Zukunft sich dort etwas bewegen würde und jemand einen anderen Solver herstellerübergreifend implementiert und dann noch Spieleinbindungen geschehen, womit GPU-PhysX bei alten Spielen bei allen läuft.
Bedeutet im Endeffekt das keiner in dieser riesigen Industrie bereit ist mal über seinen Schatten zu springen und etwas allgemeinnütziges zu leisten. Wenn jemand also seine Millioneninvestition der letzten Jahre für alle open Source verfügbar macht, dann bitte auch so, das andere damit keine Arbeit haben!

Wäre ein treffliches Beispiel dafür, warum closed Source gar nicht so schlimm ist wie meist alle denken, denn selbst wenn etwas open source ist tun sich nicht alle zusammen um mal einen evolutionären Schritt zu gehen, in dem Falle hier beispielsweise eine Physik Bibliothek zu schaffen die GPU Hersteller und Game Engine übergreifend genutzt werden kann.


Eigentlich ganz witzig: Dadurch, dass die letzten Jahre über Intel und Nvidia CPU-Physikberechnungen nicht vorangetrieben haben, hat AMD jetzt einen Nachteil. Wieso?
Ganz ehrlich sehr witzig: Weil Intel und nVidia nix gemacht haben, ist AMD welche ebenfalls untätig waren jetzt im Nachteil?! Wieso hat AMD denn nichts die letzten Jahre gemacht um CPU Physik voranzutreiben, als einziger weiterer CPU Hersteller neben Intel? Hier hätte AMD doch spätestens beim Ryzen Release und ihrer Kernoffensive Punkten können. Selbstverschuldet brach liegendes Potenzial oder wird CPU berechnete Physik einfach überschätzt?!
 
Zuletzt bearbeitet:
Ab 3.4 sprach man von voller CPU Kompatibilität (Quellcode) und gab bei der Solveriteration eine 4fache Positionsiteration und 1fache Geschwindigkeitsiteration an. Kollisionsflächen waren maximal 32 möglich. Mehr werden ignoriert.

Wieso jetzt herstellerübergreifend, wenn AMD auf GPUs PhysX ausführen will, müssen sie sich sicher etwas Eigenes schreiben. Zumal diese meist auf ein Gauss-Seidel-Verfahren aufsetzen, muss das möglich sein. Die Frage ist ob sie das wollen.

Nach Kommentar ist es open Xbox und PS. Denke mal es wird daher CPU PhysX verbleiben.
 
Sorry aber was wollen die JETZT noch mit dem "offen legen" von GPU Physix nach dem alles tot ist? Publicity??

Ab dem Zeitpunkt wo ich gesehen habe wie eine CPU PhysX Kleider super geschmeidig ohne relevante Performanceeinbusen auf EINEM Kern berechnen kann, muss ich sagen habe ich keine Ahnung warum man noch die GPU die beschäftigt genug (meist um 80-100%Auslastung) ist noch mit Physikberechnungen belasten sollte.

Schon Crysis(1) hat auf einer 1Kern ausgelegten Engine gezeit was mit der Physikberechnung alles möglich wäre ohne NVidia, dass wir heute nicht weiter sind ist eine Schande!


PS: Borderlands2 läuft nicht "flüssig" wenn Flüssigkeitsberechnung ins Spiel kommen ! Das nur mal gesagt im Spiel mit der wohlmöglich besten Umsetzung Ihrer eingekauften Technologie.
 
Zurück