NVidia PhysX Performance/Bildqualitäts-Thread CPU/GPU
Hallo Leute,
da in den letzten Tagen vermehrt über Performancemessungen und Bildqualitätsvergleiche in PhysX Anwendungen diskutiert wurde, möchte ich an dieser Stelle eine Plattform schaffen, welche allen einen möglichen Überblick über die derzeitige PhysX Umsetzung seitens NVidia gibt.
Der Thread wird von Zeit zu Zeit mit neuen Ergebnissen gefüllt.
1. Fluidmark
Als erstes möchte ich anhand des Benchmarks Fluidmark Version 1.2.0 (Downloadlink) aufzeigen, was man von aktuellen CPUs/GPUs erwarten kann.
Natürlich könnt ihr hier auch mit euren mit Sicherheit teilweise besseren Systemen Werte posten, welche ich dann auch gerne im Startpost übernehmen werde.
Fluidmark ist ein Tool, welches mithilfe des PhysX SDKs erstellt wurde. Es nutzt in der aktuellen Version 1.2.0 volle Multicore/Multi CPU Funktionalitäten. Es ist in der Lage, die Berechnungen auf aktuellen (seit dem G80) NVidia GPUs auszulagern.
Dies lässt einen sehr schönen Vergleich zwischen CPU und GPU Leistung zu.
Fluidmark Version 1.2.0 Beispielbild
In Fluidmark wird die Auslastung mehrerer CPU Kerne dadurch erreicht, indem man mehrere Quellen (sogenante Ermitters) für die Partikel im Bild verwendet. Soll die Berechnung in einem Thread ablaufen, so verwendet man eine Quelle. Soll sie in zweien ablaufen, so eben zwei usw.
Aktuell kann man bis zu 31 Quellen im Bild platzieren und hat somit Support für maximal 31 Threads. Selbst für aktuelle Dual Hexacore Systeme (Intel Nehalem EP) oder aktuelle AMD Dual 12 Kern Systeme steht also nix im Wege...
Ich habe auf meiner Workstation also ein paar Test laufen lassen...
Zunächst einmal die Hardware/Software:
CPUs: 2x Intel (Woodcrest) Xeon 5160 @ 3,33GHz
RAM: 10240MB DDR2-667 FBDimm
GFX: PoV NVidia Geforce 465GTX @ 470GTX @ 750/1500/1600MHz
OS: Windows Vista Business SP2 x64
Treiber: Forceware 258.96 + PhysX 9.10.0513
1.1 Fluidmark Einstellungen:
Also ich habe mal verschiedene Konstellationen durchgetestet. Alle Tests liefen mit folgenden Settings:
Fluidmark Einstellungen (nicht über den Screen wundern, der ist mit einem anderen PC geschossen)
- 1680x1050, 0xMSAA
- Fullsreen
- enable Multi-core PhysX
- disable Async mode
- benchmarking
- Time-based = 60000ms
- use particle count = 10000-120000
- # of ermitters = 1-31
- enable Force PhysX CPU (or disable for use GPU)
1.2 Messwerte und Erklärung:
Messwerte - Spalten=Partikel, Zeilen=Berechnungsart
Man erkennt sehr schön die 1A Skallierung bei steigender Anzahl der CPU Kerne. Mein System hat zwei physische CPUs mit jeweils zwei CPU Kernen. Normal müsste die Skallierung größer 4 Ermitters stark wegbrechen. Trotzdem skalliert das ganze mit steigender Anzahl der Ermitters weiter. Zwischen 4 und 31 liegen grob 40% Performancezuwachs. Die CPU Auslastung lag bei den CPU Tests idR bei 99-100% (außer eben bei den Tests mit weniger als 4 Ermitters)
Die Messwerte für einen CPU Ermitter sinken ab einem bestimmten Punkt nicht mehr. Das liegt daran, das eben ein Ermitter nicht ausreicht um die ganzen Partikel ins Bild zu bringen. So sind die Ergebnisse immer gleichbleibend. Aus Vergleichsgründen habe ich bei diesen Werten eine "0" vergeben, um die Vergleichbarkeit zu wahren, denn im Bench musste die CPU bei einem Ermitter ab 70000 Partikeln nur noch ~65000 berechnen...
Die GPU Werte sind ebenso unten angehängt.
Man erkennt sehr schön, das die GPU weniger stark einbricht, als es die CPU tut. Dennoch sinken die FPS Raten größer 110000 Partikeln unter die 25er Marke.
Mit dem letzten Punkte hatte ich versucht eine 460GTX zu simulieren. Da eine 470GTX in Schnitt ohne AA/AF in etwa 25% schneller rendert als eine 460GTX, habe ich die Taktraten für GPU und Shader im selben Verhältniss (ca. 25%) abgesenkt. Zu meinem Erstaunen musste ich feststellen, das aber die Messwerte weit weniger gesunken sind. Es scheint also so, das PhysX bzw. speziell Fluidmark deutlich mehr auf mehr Ausführungseinheiten reagiert als auf Takt derselben... Aus diesem Grund habe ich die Messwerte mit den Standard 470GTX Taktraten gleich weggelassen und nur OC vs. simulierte 460GTX getestet. Die echte 470GTX liegt so ziemlich genau zwischen den Messwerten, was ich Stichprobenartig ausgetestet hab.
Zum Schluss noch das ganze in einem Diagramm zusammengefasst:
Diagramm
1.3 Fazit Fluidmark:
Wie man anhand der Messwerte sehen kann skallieren selbst betagtere PC Systeme (mein Testsystem ist von Jan. 2007) sehr gut mit PhysX. Im Vergleich zum CPU Test gewinnt die aktuelle HighEnd GPU ca. um das 2,5 fache. Leider sind diese Werte bei weitem nicht beeindruckend in meinen Augen. Denn wenn man bedenkt, aktuelle HighEnd NVidia GPUs können bis über 1000GFlop/s liefern. CPUs schaffen da nur einen Bruchteil im Bereich 50GFlop/s. Es bleibt unterm Strich also eine extrem ineffiziente Umsetzung seitens NVidia für die GPU.
Aber, man muss ebenso erwähnen, die Werte stützen sich einzig und allein auf einen Benchmark. Im Moment fehlt es aber an weiteren Aussagekräftigen und vor allem Vergleichbaren Benchmarks um mehr Messwerte zu erziehlen.
2. BQ Vergleich Mafia II Benchmark:
Zuguter letzt in diesem Thread möchte ich noch ein kleines Vergleichsvideo vorstellen. Ich habe Mafia II einmal im CPU Modus und einmal im GPU Modus gebencht. Die Leistung soll hier in erster Linie erstmal im Hintergrund stehen. Sondern es geht einzig und allein um die Vergleichbarkeit dieser beiden Messungen.
Man erkennt sehr schön, das beide Messungen etwas unterschiedlich sind... Aber bildet euch selbst eine Meinung
YouTube - Mafia_II_PhysX_Vergleich_CPU/GPU
Am besten ihr schauts in 720p an, sonst leidet die Qualität leider ein wenig
letztens - Allgemeiner Hinweis
Dies ist ein Sammelthread für NVidias PhysX und dessen Umsetzung, das heißt, es darf und soll hier über die Software und auch über die Umsetzung diskutiert werden.
Was allerdings nicht hier rein gehört:
- Offtopic Beiträge (beispielsweise eine Technikdiskussion über die Architektur des RV770 a la HD 48x0), Gespamme oder "Privatkriege -> NV vs. ATi".
- Sinn und Unsinnigkeitsmeldungen über PhysX
Es ist nur im Interesse des Forums, dass es hier gesittet abläuft.
Bei Postings, die zu sehr OT sind oder etwa nur reine Provokation, am Besten gar nicht darauf eingehen, sondern durch Benutzen des "Beitrag melden-Buttons" (
Sollte es zu mehrmaligem Verstoß gegen die Regeln kommen, so können auffällige User eine Auszeit von diesem Thread erhalten.
In diesem Sinne...
fdsonne