GeForce 210 als PhysX beschleuniger?

nVVater schrieb:
wieso eine gtx 650?
wenn man für physx 100€ ausgeben möchte dann bitte die 650ti( 90€ )

ja, so im detail hab ich mich nicht mit der "dedizierten" karte auseinandergesetzt, war ja nur als groben schuss, was es afaik sein müsste
...ehe ich mir eine zusatzkarte nur wegen physx zur 770 stecke, schalt ich lieber physx ab ...

stimme dir aber zu, wenn dann wohl eher die TI, das war das was ich auch mal rausgekramt hatte, als ich letztes jahr noch ne AMD karte hatte ...
aber nunja ... nur wegen physx war es mir am ende den ärger (und das geld) nicht wert, weshalb ich beim upgrade der GPU den NV aufpreis in kauf genommen hab (was seinerzeit ~25 euro an aufschlag im vergleich zu einer ähnlich flotten amd karte gewesen sind)
 
Zuletzt bearbeitet:
eLeSde schrieb:
meines wissens nach läuft es dann immernoch nicht unter benutzung diverser cpu erweiterungen, die die berechnungen beschleunigen könnten (wie SSE, AVX) und damit läuft physx auf der CPU dann immernoch ineffizienter, als es eigentlich könnte
SSE2 wird afaik seit PhysX SDK 3.x per Default genutzt. Implementiert ist es seit PhysX SDK 2.8.x von 2010.

ist aber auch nur zu logisch, wenns 1a auf der CPU laufen würde, würde nvidia ein zusätzliches verkaufsargument fehlen, also kann ihnen nur daran gelegen sein, es nicht "zu gut" zu unterstützen
Richtig. Da nvidia keine x86 CPUs designt liegt dort nicht das Hauptinteresse.
 
Na-Krul schrieb:
Dann nimmst aber gleich die 750 für 95€ ;)

die 750 ist langsamer als die 650ti.
sie taktet zwar vom werk aus höher als die 650ti hat aber deutlich weniger shader.
Bei PhysX kommt es nicht auf dem Takt an sondern auf die Rohleistung
 
Zuletzt bearbeitet:
das ist die 750ti, wir sprechen aber von der 750
die 750ti kostet über 130€

Zwar ist die 750 in dem test minimal schneller als die 650ti aber auch nur weil sie mal eben 200MHz höher taktet
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:
ich habe ausersehen falsch verlinkt

aber trotzdem Fakt: die 650ti hat höhere Rohleistung
 
Unyu schrieb:
[…]
Verbreite bitte keine Unwahrheiten. CPU PhysX ist multi-threaded.
Richtig, auf der GPU – und da auch nur, wenn es sich um eine mit CUDA-Funktion handelt.
Für alles Andere hätte nicht nur ich gerne mal ein paar oder wenigstens eine Stichhaltige Quelle!


Wie eLeSde schon richtigerweise schrieb, läuft PhysX ‒ meines Wissens nach – seit Jahren lediglich nur noch single-threaded, sofern auf CPU ausgeführt.


Erklärungsversuche …

Grundsätzlich wäre und ist PhysX rein theoretisch fähig, selbst auf der CPU als PPU Multi-Threading zu nutzen.
Jedoch wird den Entwicklern der schwarze Peter zugeschoben, weil nVdia sich die Hände in Unschuld waschend es standardmäßig deaktiviert und es etwas diffizil gestaltet wurde, jenes programmiertechnisch trotzdem multi-threaded laufen zu lassen – um es mal charmant zu umschreiben.
Was darin resultiert, das es bisher nicht seitens etwaiger Spiele-Entwickler jemals in einem Titel Mehrkern-CPUs dementsprechend nutzte.

nVidia hat offensichtlich reges Interesse daran, PhysX – wenn nicht auf einer CUDA-fähigen PPU laufend – im schlechten Licht dastehen zu lassen und versucht alles nur erdenkliche, um es zu benachteiligen.


Von x87 zu 3D Now! …

Angefangen bei der expliziten Nutzung des x87-Befehlssatzes …
x87 ist eine Untermenge des x86-Befehlssatzes für Gleitkommaberechnungen und wurde erstmals 1980 mit dem 8087-Koprozessor für den 8086 (Null-Sechsundachtziger) eingeführt.

Mit der Zeit verbessert und effizienter gestaltet wanderte es schnell in die eigentliche CPU.
Die im 386'er integrierte FPU beispielsweise konnte die selben Berechnungen fast 20× so schnell wie die ursprüngliche Implementierung berechnen, ein 486'er bereits 56×.

Immer wieder erweitert und unter dem neuem Namen MMX schaffte es der erste Pentium die Leistung um den Faktor 5400× zu toppen.
AMD konterte abermals und hob mit 3D Now! eine wesentlich effizientere Variante aus der Taufe, die sagenhafte 58000× so schnell wie die erste FPU-Revision war.


SSE: Oder AVX, AltiVec & Konsorten …

Mit dem Pentium III wurde um 1999 erstmals SSE eingeführt, welches wiederum eine starke Verbesserung und Erweiterung beinhaltete, womit x87 praktisch in SSE aufging.
x87 ist demzufolge seit geraumer Zeit seitens Intel und AMD zugunsten von SSE aufgegeben worden.
Jeder jemals erschienene Mainstream/Consumer-Prozessor seit spätestens 2005 hat grundsätzlich SSE.

x87 in Form des ausgesprochen verbesserten 3D Now! etwa, wird seit dem 2003 erschienenen K8 gar nicht mehr seitens AMD integriert.
Intel hat sich mit dem Pentium IV mit Einführung von SSE2 gänzlich von x87 verabschiedet.
VIA unterstützt seit '05 mit dem C7 nur noch mindestens SSE2, während der x86-64-Befehlssatz grundlegend nur noch wenigstens SSE2 unterstützt.
Die 64-bit Version von Windows verbietet zudem seit jeher explizit die Nutzung von x87 statt SSE2 im Kernelmode.


Ohne Not, Ageia … Oder: NovodeX

Bedenkt man, daß x87 nur einen elementaren Bruchteil der Leistungsfähigkeit bietet, die mit SSE zu erreichen wäre …

Ageia's PhysX wurde seinerzeit 2004 von der Eidgenössischen Technischen Hochschule Zürich als NovodeX entwickelt und von Ageia auch lediglich aufgekauft und auf den Markt gebracht
Mit dem neuen Eigner wurde seitens Ageia auf x87 gewechselt, obwohl bereits vor Markteinführung von PhysX 2006 flächendeckend SSE und/oder SSE² verfügbar war.

Zieht man zudem in die Tatsache in Betracht, daß nach SSE² mit SSE³ und in der neuesten Reinkarnation Namens SSE4a+SSE4.2 ein im Vergleich zur Ur-x87-Implementation kaum vorstellbarer Geschwindigkeitszuwachs stattfand, dann …


Superskalarität oder “Instructions per Cycle”

Nicht nur bedingt durch den Fakt, daß PhysX 32-bittige Instruktionen verwendet;
SSE bietet zudem den enorm geschwindigkeitsverbessernden Vorteil, daß es Super-skalar ist.
Somit wäre bei der bloßen Nutzung der selben Befehle unter SSE durch die gebotenen 128-Bit Instruktionen allein eine Performanceverbesserung von gegeben – bei selbem Takt wohlgemerkt.


„Up to 4× as fast as the fastest implementation on CPU“

Kurios ist ja, daß nVidia stets meint, eine Portierung auf oder Nutzung von SSE würde einen unüberschaubaren Programmieraufwand bedeuten und die Spiele-Entwickler würden diese Mehrarbeit in jedem Fall scheuen.
Außerdem würde eine CPU überhaupt nicht in der Lage sein, eine annähernd adäquate Performance zu liefern, um neben den Hauptaufgaben noch die Physik-Berechnungen zu meistern.
Wir sehen an dieser Stelle einfach mal davon ab, daß es überhaupt nicht Aufgabe der Spiele-Entwickler ist, PhysX auf SSE umzustellen.


“Marketing Is Everything”

Durchschaubar mutet nur der Fakt an, daß nVidia höchstselbst den Kritikern von PhysX die Gegenargumente liefert und PhysX auf den Konsolen unterstützt.

Paradoxerweise läuft PhysX auf der XBox 360, der PS3 & Wii.
Eigenartig dabei ist, daß keine der Konsolen eine explizite CUDA-Hardware gleich welcher Art besitzen – wobei nVidia nicht müde wird, eben genau dies als Argument gegen eine performante Umsetzung auf anderer Hardware als ihren Karten vorzubringen.
Wobei die Wii lediglich einen Single-Core besitzt und somit überhaupt nicht von irgend einer Art von SMT profitieren könnte.
Die PS3 nutzt eine Variante des G 70/G 71 – offiziell benötigt PhysX mindestens eine G80 GPU …
Merkwürdig ist hier weiterhin nur, daß auf den Konsolen das so vielbeschworene Multi-Threading ganz hervorragend funktioniert.

Eine Konsole, die nicht einmal die Leistung eines Low-End P4 erreicht schafft es, PhysX ohne CUDA-fähige Hardware auf der CPU neben dem Spiel flüssig laufen zu lassen?

Wie das tatsächlich sein kann?
Nun, nVidia erlaubt auf den Aspiranten für‘s Wohnzimmer nicht nur volles Multi-Threading sondern nutzt für die Gleitkomma-Berechnungen von PhysX überraschenderweise sogar SSE in Form der AltiVec-Einheit des PowerPC.
Und es bestätigt sich die These, daß PhysX ohne Weiteres auf einer normalen CPU laufen könnte – nachweislich auch performant genug.


Kindergarten 2.0 aka nVidia-Only

Es stellt sich die Frage, warum seit 2005 ausdrücklich auf den x87-Befehlssatz gesetzt wird.
Der x87-Befehlssatz ist nicht nur nicht wenigstens halbwegs aktuell sondern kann tatsächlich architektonisch und softwaretechnisch bestenfalls als antiquiert tituliert werden, da er seit Urzeiten überhaupt nicht mehr seitens AMD und Intel unterstützt wird – seit fast 15 [sic!] Jahren.

Selbst der schnellste i7 kann maximal 2 x87-Instruktionen pro Takt verarbeiten.
Bedingt durch die 128 weiten Register von SSE kann beispielsweise selbst ein in die Jahre gekommer Nehalem schlechtestensfalls 4 Operationen mit doppelter oder 8 mit einfacher Genauigkeit berechnen, pro Takt – AVX würde diese Marke auf 16 erhöhen.

Sicherlich, nVidia kann mit einer großen Anzahl an parallelen Stream-Prozessoren Punkten …
Bei einer GTX 285 beispielsweise, welche über dieser 240 besitzt und ist laut nVidia 4× so schnell wie der schnellste Intel Core (zum Zeitpunkt der Behauptung dieser Aussage).

Wenn man die selben Beschränkungen auf die GPU-Version von PhysX anwendet, wie die, welche nVidia der CPU-Variante auferlegt, wäre die GPU plötzlich 60-120× langsamer als die bereits unoptimierte CPU-Version.
Sofern wenn man der CPU lediglich einfaches SSE angedeihen würde, wäre sie trotzdem um den Faktor 960-1920× schneller als die selbe Single-Threaded-Implementierung auf einer CUDA-GPU.
Selbst eine Atom-CPU wäre mutmaßlich 100× schneller als Single-Threaded-GPU-PhysX …

Letztlich kann man mit Gewissheit sagen, daß die Nutzung von x87 in Verbindung mit der Limitierung auf Single-Threading, wenn PhysX auf einer üblichen CPU genutzt wird, rein marketingtechnischer Natur ist.


Zum Verständnis …

Leider hat die nVidia-PR ganze Arbeit geleistet und hat in den Köpfen der User bis heute die Vorstellung manifestiert, das es sich bei PhysX um eine spezielle in Hardware gegossene Physik-Erweiterung handelt.
Das ist nicht der Fall.

Es geht lediglich um die Fähigkeit der Gleitkomma-Berechnungen …

Unyu schrieb:
SSE2 wird afaik seit PhysX SDK 3.x per Default genutzt. Implementiert ist es seit PhysX SDK 2.8.x von 2010.
Ersetze „wird“ mit „kann“ und ich stimme Dir zu - es ist komplett optional …


Lektüre:

In diesem Sinne

Smartcom



PS: Man verzeihe mir die möglicherweise zwecks Erläuterung erhebliche Simplifizierung der jeweiligen Sachverhalte.
 
Zuletzt bearbeitet:
Smartcom5 schrieb:
Richtig, auf der GPU – und da auch nur, wenn es sich um eine mit CUDA-Funktion handelt.
Für alles Andere hätte nicht nur ich gerne mal ein paar oder wenigstens eine Stichhaltige Quelle!
Wie wärs mit nvidia.com statt wikipedia. Ich soll auf Befehl Fakten liefern weil ich deine faktenlose Falschdarstellung wiederlegt habe. Gut ich fass mich kurz.
https://developer.nvidia.com/physx-sdk-v31

Oder wen der Hersteller nicht reicht, meinetwegen Testberichte.
http://www.tomshardware.com/reviews/nvidia-physx-hack-amd-radeon,2764-5.html

Der Entwickler muss sich natürlich um eine gute Umsetzung kümmern, Crossfire bei Mantle gibts auch nicht gratis. Trotzdem macht es die höhere Mantle Leistung nicht schlecht.

Ersetze „wird“ mit „kann“ und ich stimme Dir zu - es ist komplett optional …
Wenn es nicht so wäre, beschwer dich nicht bei nvidia, wenn ein Anderer meint auf SEE verzichten zu müssen. Ist ja so als ob du dich bei AMD beschwerst, weil Rockstar zu Faul für FSAA war.

Abgesehen davon sehe ich es weiterhin so, das nvidia keinen Grund für maximale x86 Leistung hat. Das ist völlig logisch und ihnen kaum vorzuwerfen. Doch statt x86 gleich wegzulassen bieten sie sogar mutli core Support.
 
Zuletzt bearbeitet:
Zurück
Oben