• Mitspieler gesucht? Du willst dich locker mit der Community austauschen? Schau gerne auf unserem ComputerBase Discord vorbei!

News Project Cars: Entwickler und AMD arbeiten an Leistungssteigerung

Vielleicht liest du jetzt nochmal in aller Ruhe meinen Ursprungsbeitrag durch und die Zusamenhänge werden klar.
https://www.computerbase.de/forum/t...stungssteigerung.1474016/page-5#post-17368012
Daedal schrieb:
Genau so war mein erster Absatz gemeint in dem Beitrag den du zitiert hast :)

Ich dachte hier kennen alle die Quelle dass dieser Effekt genutzt wird. Siehe z.B.
http://www.anandtech.com/show/8546/nvidia-gameworks-more-effects-with-less-effort

Alle Titel mit "particel PhysX" nutzen diesen Effekt.

Project Cars fur Staub, Dreck und Gras das aufgewirbelt wird.

Krautmaster schrieb:
Krautmaster schrieb:
Edit.
Wenn PhysX so viel ausmacht erklärt es auch die CPU Skalierung. Gut möglich dass diverse Gameworks Erweiterungen auf PhysX aufbauen.

Edit2:
wobei hier das Abschalten bei GPU PhysX bzw Umschalten auf CPU, bei Nvidia ja sogar zur Besserung führt... ergo kanns das auch nicht wirklich sein.
Und alles passt zusaammen:
Daedal schrieb:
Krautmaster schrieb:
Edit2:
wobei hier das Abschalten bei GPU PhysX bzw Umschalten auf CPU, bei Nvidia ja sogar zur Besserung führt... ergo kanns das auch nicht wirklich sein.
Ja und auch absolut konsistent wenn man sich die Beiträge anschaut. Dies liegt aber daran, dass nicht jegliche Physik auf der GPU gerechnet wird. Es ist eine Lastverteilung, die man nicht für jedes System vorhersehen kann. Die dortigen User waren alle im GPU Limit und hatten noch 25% oder mehr CPU Reserven auf dem Hauptthread. Alle anderen Threads liegen mit ca. 5% fast brach. Hier hat die Entlastung der GPU mehr eingebracht als die Entlastung der CPU zuvor mit GPU PhysX. Bei einer GTX970 dürfte dies nicht mehr der Fall sein wie bei der 780 Ti, da Maxwell doppelte PhsyX Performance bietet wie diese Analyse zeigt.
https://developer.nvidia.com/content/maxwell-gpu-physx-particles
Hier wohl auch durch das neue Feature der shared memory atomis:
We can see from the above profile that using shared atomics results in a 2x performance improvement. However, using atomics comes with caveats. Due to the nature of atomics, execution becomes non-deterministic. Using the parallel prefix sum example, we can see that the sequence of the prefix sum is in increasing order or in the general case, it has a predictable order. Unfortunately, when using atomics, the ordering is no longer guaranteed because it depends on scheduling and how conflicts are resolved by the GPU. So depending on the use case and algorithm, use of atomics could lead to non-deterministic ordering of the final results and this could make debugging much more difficult. The recommendation is to have a deterministic version to fall back on for debugging or to sort the final results so that ordering can be restored.
Nur hier sehen wir auch was bei der Benutzung dieses Features weiterhin für eine Konsequenz entsteht. Ich habe das mal blau markiert.

Man sieht, dass es ein neues Scheduling der GPU erfordert wegen möglichen Kollision im Speicher. Es gäbe einen Fallback-Pfad den man erstellen soll. Ich vermute, dass genau hier der Hund begraben liegt, und auf diesem Fallbackpfad nachgebesert werden muss. Die Keplers performen ja auch schlechter, was in etwa konsistent ist mit den Forenmeldungen, da Kepler halb soviel PhysX Performance aufbringt im Vergleich zu Maxwell. Daher fallen auch diese zurück in den Benches, haben aber sicherlich noch ein besseres Scheduling verbaut für Nvidia optimierten Code als das was für AMD dann genutzt wird im Fallback Modus (Falls die dann nicht mit Nvidias Scheduling arbeiten müssen) Da geht alles drauf auf die CPU. Hier kann man sicher nachbesseren, doch völlig lösen wird sich das Dilema nicht lassen, denke ich.
 
Zuletzt bearbeitet:
Alle anderen Threads liegen mit ca. 5% fast brach. Hier hat die Entlastung der GPU mehr eingebracht als die Entlastung der CPU zuvor mit GPU PhysX...
Das kann gut möglich sein & sollte man ggf. mal genauer überprüfen. Ich habe die Soft (noch) nicht, aber wenn ich mir PC mal gönnen werde, dann werde ich das auch mal überprüfen.
@NV-User: Warum konntet ihr bitte die einfache Frage nicht beantworten, ob GPU-PhysX ebenfalls unterstützt wird? Beim nächsten Mal, bitte klare & genaue Antworten...^^

Die Keplers performen ja auch schlechter, was in etwa konsistent ist mit den Forenmeldungen, da Kepler halb soviel PhysX Performance aufbringt im Vergleich zu Maxwell. Daher fallen auch diese zurück in den Benches,
Real, also in Games aber nicht "extrem" oder wie es manches Balkendiagramm suggerieren möchte. Die Abstände sind in Wirklichkeit wesentlich geringer, da Kepler-Grakas oft mit "Stocktaktraten abgebildet wird", wie auch bspw. im aktuellen CB-Test mit Performanceangabe.
 
Hey Leute. So hier hoffentlich eine belastbare Aussage. Gefunden auf HardwareLuxx, bitte bei Update: lesen, sehr interessant. Jetzt kommt bestimmt wieder das ist nicht wahr und weil NVIDIA kann man eh nicht glauben.
http://www.hardwareluxx.de/index.ph...t-leistung-auf-amd-gpus-in-the-witcher-3.html

Update:

Via Reddit hat sich Rev Lebaredian (Senior Director, Content & Technology und damit unter anderem für GameWorks verantwortlich) zu den Vorwürfen geäußert, NVIDIA würde anderen Herstellern den Zugang zu den APIs verwehren. Dem sei nicht so, schließlich sei der komplette Sourcecode von PhysX bei GitHub zugänglich. Jeder Entwickler und Konkurrent sei dazu eingeladen sich den Code anzuschauen und eigenhändig zu optimieren.

"The assumptions I'm seeing here are so inaccurate, I feel they merit a direct response from us.

I can definitively state that PhysX within Project Cars does not offload any computation to the GPU on any platform, including NVIDIA. I'm not sure how the OP came to the conclusion that it does, but this has never been claimed by the developer or us; nor is there any technical proof offered in this thread that shows this is the case.

I'm hearing a lot of calls for NVIDIA to free up our source for PhysX. It just so happens that we provide PhysX in source code form freely on GitHub (https://developer.nvidia.com/physx-source-github), so everyone is welcome to go inspect the code for themselves, and optimize or modify for their games any way they see fit.

Rev Lebaredian
Senior Director, GameWorks
NVIDIA"

Das ist doch mal eine Aussage.
 
Also kurz in Deutsch. Er sagt das keine Berechnung auf der GPU durchgeführt wird, eingeschlossen NVIDIA. Er weiß nicht woher die Aussagen kommen die das behaupten würden. So viel Spaß beim diskutieren. Hätte NVIDIA mir mal ein Key geschenkt, hätte ich es wenigstens selbst testen können.
 
Gibt es mittlerweile Fortschritte, weiß jemand was?
Würde gerne weiterspielen aber es läuft einfach nicht rund genug, obwohl es nur auf Hoch steht. Das finde ich für die gebotene Grafik nicht zufriedenstellend.
Die Entwickler hätten sich mal Hilfe von Codemasters holen sollen, die wissen wenigstens wie man auch mit weniger Power ordentliche Grafik macht. Z.B. Grid 2 sieht toll aus und läuft sogar auf meinem Notebook flüssig.
Wobei dieses ja Nvidia hat, vermutlich läuft pCars da auch besser :lol::grr:
 
@RayKrebs
Wahrscheinlich von den Videos und Usern die das benutzen auch wenn der Herr das anscheinend nicht weiss. Nur ist es eben nicht immer so wie manche das hier aus dem englischen übersetzen.

Klar ist der PhysX Code frei einsehbar und anpassbar. Doch was nützt es AMD wenn ein Entwickler den in GameworX nutzt und die Implementierung die der Spielehersteller nutzt nicht sichtbar ist? Netter Versuch, doch am Thema völlig vorbei.

Der Punkt ist wie ich es oben schon mal geschrieben hatte: Völlig egal ob das dann echter GPU-PhysX Code ist oder nicht, durch GameworX wird das Scheduling genutzt. Da kann man sich noch so oft daran fest beissen, dass der Code selber nicht auf der GPU ausgeführt wird, doch es bleibt, dass alles in einen CPU-Thread gequetscht wird im Gegensatz zu Nvidias GPUs, die mehr als nur eine Physik-Instanz auf der CPU initieren kann. Unter AMD GPUs wandert alles in einen schlecht implementierten Fallback-Pfad.

Nur das ist keine Thematik mit der sich Nvidia befassen muss, sondern die Spieleentwickler. Daher kann sich Rev Lebaredian auch so non-chalant äussern.
 
Daedal schrieb:
Unnötiges Zitat entfernt

Also das Video habe ich mir mal angesehen. Was sollte man da erkennen? Es wird zwar die gleiche Strecke abgefahren, aber Situationen und Kollisionen sind unterschiedlich und hat daher wenig Aussagekraft für mich. Daher gibt es auch etwas unterschiedlichen Auslastungen an CPU und GPU. Größeres konnte ich da nicht erkennen.

Das der Quellcode schon mal offen gelegt ist, ist ja schon mal was. Wobei für mich nicht ganz klar ist, ob Gameworks, bzw. CUDA nun Bestandteil von PhysX ist und auch offen gelegt sind. Aber in weit das AMD helfen kann ihre Treiber zu optimieren kann ich nicht beurteilen. Generell will ich hier niemanden verteidigen und ich sagte ja bereits, dass ich proprietäre Lösungen beider "Kandidaten" nicht gut finde. Wird immer zum Nachteil für die Kunden. Das hier NVIDIA ihre Marktmacht ausübt, hmm.

Das alles in einen "Thread" gequetscht wird, ist doch aber nicht NVIDIAs Schuld, oder? Wie sollte es Deiner Meinung nach möglich sein, das eine NVIDIA GPU mehrere "Physik-Instanz auf der CPU initieren kann". Das erschließt sich mir nicht. Laut PhysX 3.0 kann der Entwickler mehrere PhysX Threads erzeugen und die Last verteilen, muss sich aber selbst drum kümmern, im Gegensatz zu GPU PhysX, die aber hier nicht zum Einsatz kommt. Soweit ich noch in Erinnerung habe, haben andere ja auch bestätigt, dass die anderen CPU Kerne bei 5% rum dümpeln. Wie wäre das zu erklären wenn es wirklich mehrere CPU PhysX-Threads bei NVDIA GPUs gäbe und bei AMD nicht?
 
Zuletzt bearbeitet von einem Moderator: (Unnötiges Zitat entfernt)
zB durch die Gameworks Dateien? Nvidia stellt die GW Bibliotheken wo eben die MT Verteilung eingebaut ist, bei AMD hätte dies der Entwickler machen müssen, hat er aber nicht.

Und schon ist das System mit nvidia GPU besser, da die Aufgaben besser verteilt werden.
 
RayKrebs schrieb:
Also das Video habe ich mir mal angesehen. Was sollte man da erkennen? Es wird zwar die gleiche Strecke abgefahren, aber Situationen und Kollisionen sind unterschiedlich und hat daher wenig Aussagekraft für mich. Daher gibt es auch etwas unterschiedlichen Auslastungen an CPU und GPU. Größeres konnte ich da nicht erkennen.
Was willst du da erkennen wenn es darum geht, dass das selbe Spiel auf der CPU mit PhysX und nebendran auf der GPU PhysX im selben Video darstellt. Das solte doch ausreichen als Beweis, dass beides vorhanden ist. Der Himmel ist blau. Du brauchst Luft zum atmen - nur für den Fall, dass man dich darauf auch hinweisen muss.

Ich schrieb es vorhin schon mal: Wer sich dumm stellt beim argumentieren, erscheint nicht intelligenter.
 
Es ist nur der Dumm der dummes macht. Ist aber nicht mein Zitat.

Wenn doch so intelligent bist, dann sage doch bitte noch ein paar erhellende Worte zum Video-Vergleich. Ich würde dann schon nochmal genauer hin schauen.
 
Du liest aus meinem Satz raus ich würde mich selbst für intelligent halten? Lies nochmal ^^

Es spielt keine Rolle was du dort siehst - es spielt nur eine Rolle, dass es eine Möglichkeit gibt zwischen GPU und CPU PhysX umzuschalten im Nvidia Control Panel. Die gäbe es nicht, wenn es keinen Efekt hätte. Das Video beweist dass es keinen optischen Unterschied macht ob GPU oder CPU verwendet wird. Es macht einen Unterschied in der Performance.

Damit ist die GPU PhysX in Project Cars bewiesen. Nichts anderes.
 
Physx läuft bei pCars IMMER über die CPU. Ich hab es jetzt extra nochmal getestet. Hier der Beweis:
Ich habe auch kein bisschen Unterschied in den FPS.



Bei gelegenheit mach ich auch noch ein Benchmark. Unglaublich...
 
Nun vielleicht glaubt man nun dem Entwickler:
http://www.reddit.com/r/pcmasterrac...my_word_if_we_dont_stop_the_nvidia_gameworks/
The game runs PhysX version 3.2.4.1. It is a CPU based PhysX. Some features of it can be offloaded onto Nvidia GPUs. Naturally AMD can't do this. In Project Cars, PhysX is the main component that the game engine is built around. There is no "On / Off" switch as it is integrated into every calculation that the game engine performs. It does 600 calculations per second to create the best feeling of control in the game. The grip of the tires is determined by the amount of tire patch on the road. So it matters if your car is leaning going into a curve as you will have less tire patch on the ground and subsequently spin out. Most of the other racers on the market have much less robust physics engines. Nvidia drivers are less CPU reliant. In the new DX12 testing, it was revealed that they also have less lanes to converse with the CPU. Without trying to sound like I'm taking sides in some Nvidia vs AMD war, it seems less advanced. Microsoft had to make 3 levels of DX12 compliance to accommodate Nvidia. Nvidia is DX12 Tier 2 compliant and AMD is DX12 Tier 3. You can make their own assumptions based on this. To be exact under DX12, Project Cars AMD performance increases by a minimum of 20% and peaks at +50% performance. The game is a true DX11 title. But just running under DX12 with it's less reliance on the CPU allows for massive performance gains. The problem is that Win 10 / DX12 don't launch until July 2015 according to the AMD CEO leak. Consumers need that performance like 3 days ago! In these videos an alpha tester for Project Cars showcases his Win 10 vs Win 8.1 performance difference on a R9 280X which is a rebadged HD 7970. In short, this is old AMD technology so I suspect that the performance boosts for the R9 290X's boost will probably be greater as it can take advantage of more features in Windows 10. 20% to 50% more in game performance from switching OS is nothing to sneeze at. AMD drivers on the other hand have a ton of lanes open to the CPU. This is why a R9 290X is still relevant today even though it is a full generation behind Nvidia's current technology. It scales really well because of all the extra bells and whistles in the GCN architecture. In DX12 they have real advantages at least in flexibility in programming them for various tasks because of all the extra lanes that are there to converse with the CPU. AMD GPUs perform best when presented with a multithreaded environment. Project Cars is multithreaded to hell and back. The SMS team has one of the best multithreaded titles on the market! So what is the issue? CPU based PhysX is hogging the CPU cycles as evident with the i7-5960X test and not leaving enough room for AMD drivers to operate. What's the solution? DX12 or hope that AMD changes the way they make drivers. It will be interesting to see if AMD can make a "lite" driver for this game. The GCN architecture is supposed to be infinitely programmable according to the slide from Microsoft I linked above. So this should be a worthy challenge for them. Basically we have to hope that AMD can lessen the load that their drivers present to the CPU for this one game. It hasn't happened in the 3 years that I backed, and alpha tested the game. For about a month after I personally requested a driver from AMD, there was new driver and a partial fix to the problem. Then Nvidia requested that a ton of more PhysX effects be added, GameWorks was updated, and that was that... But maybe AMD can pull a rabbit out of the hat on this one too. I certainly hope so.
Ganz nebenbei auch die Info zum DX Tier Level in blau gefärbt

Fazit:
So, in short, the entire Project Cars engine itself is built around a version of PhysX that simply does not work on amd cards. Most of you are probably familiar with past implementations of PhysX, as graphics options that were possible to toggle 'off'. No such option exists for project cars. If you have and AMD GPU, all of the physx calculations are offloaded to the CPU, which murders performance.
 
Zuletzt bearbeitet:
@Daedal:
Keine weiteren Fragen. Dies sollte eigentlich von CB im Test nachgetragen werden.
 
@an Computerbase

Wird es einen performance benchmark geben für Win7 vs. win8.1 vs win10 WHQL treiber geben???
Ich glaube das Spieler auf der ganzen Welt auf ein solchen offizielen benchmark warten...

Es wäre interesant es deutclich zu wissen wie und wo die performance unterschiede erscheinen.

Ich schlage vor ein par ältere karten wie 470-570-670-770-970,
bevorzugsweise in neuen und älteren spielen.

Es geht halt nicht nur um performance boost, sondern auch vielleicht um performance verlust.

Danke :)

Edit: Wollte das eigentlich hier Posten:
https://www.computerbase.de/forum/t...iber-mit-whql-zertifikat-frei.1476336/page-10
 
Zuletzt bearbeitet:
Hier wohl auch durch das neue Feature der shared memory atomis:
Man sieht, dass es ein neues Scheduling der GPU erfordert wegen möglichen Kollision im Speicher. Es gäbe einen Fallback-Pfad den man erstellen soll. Ich vermute, dass genau hier der Hund begraben liegt, und auf diesem Fallbackpfad nachgebesert werden muss. Die Keplers performen ja auch schlechter, was in etwa konsistent ist mit den Forenmeldungen, da Kepler halb soviel PhysX Performance aufbringt im Vergleich zu Maxwell. Daher fallen auch diese zurück in den Benches, haben aber sicherlich noch ein besseres Scheduling verbaut für Nvidia optimierten Code als das was für AMD dann genutzt wird im Fallback Modus (Falls die dann nicht mit Nvidias Scheduling arbeiten müssen) Da geht alles drauf auf die CPU. Hier kann man sicher nachbesseren, doch völlig lösen wird sich das Dilema nicht lassen, denke ich.

Das stimmt so nicht beziehungsweise ist so erklärt, als ob der Autor nicht wüsste was Shared-Memory oder Atomics überhaupt sind. Ausgiebige Erklärungen zu folgendem auf Nachfrage.

Mit Scheduling meint NVIDIA in dem Fall das Warp-Scheduling beziehungsweise das "Atomic-Scheduling", beides läuft komplett auf der GPU ab. Zudem verändert sich das Warp-Scheduling durch die verbesserten bzw. nativen Shared-Memory-Atomics nicht. Die Konflikte bei den atomaren Operationen werden durch die entsprechende Atomic-Hardware im/am Shared Memory aufgelöst. Shared-Memory-Atomics waren bereits vor Maxwell "vorhanden", allerdings nicht als native Instruktion. Deshalb wurden sie durch eine langsame Busy-Waiting-Schleife und Mutex realisiert.

Atomics haben immer die unangenehme Eigenschaft, dass die Korrektheit an sich zwar garantiert ist, die Reihenfolge jedoch, in der mehrere zeitgleiche atomare Operationen ausgeführt werden, "zufällig" ist. Dadurch wird auch unter Umständen das gesamte Ergebnis zufällig. Das kann wiederum das Debuggen erschweren, weil dadurch Fehler auch nur zufällig auftreten können. Deshalb empfiehlt NVIDIA für das Debuggen einen deterministischen Fallback einzubauen.

Da Shared-Memory Atomics vor Maxwell extrem langsam waren, waren sie eigentlich in vielen Fällen bei wichtigen Bereichen ein absolutes No-Go (https://compubench.com/result.jsp hatte afaik mal in älteren Versionen ein schönes synthetisches Bench dazu ist aber nicht mehr gelistet), weshalb man sich anderer Work-Arounds bedienen musste. In der Hinsicht kann die Performance tatsächlich absinken, falls man nicht spezifisch auf die alte Hardware ohne native Shared-Memory-Atomics optimiert. Shared-Memory-Atomics sind aber nur in manchen Fällen sehr "praktisch". Insgesamt spielen sie jedoch eher eine untergeordnete Rolle, da es oft schnellere Möglichkeiten gibt, Probleme, für die diese Atomics in frage kämen, zu lösen. Deshalb ist ein starkes Absinken der Performance durch ihre Verwendung ebenfalls unwahrscheinlich.

Fun Fact am Rande: AMD hat Shared-Memory-Atomics schon seit Jahren nativ unterstützt.
 
Zuletzt bearbeitet:
Nai schrieb:
Das stimmt so nicht beziehungsweise ist so erklärt, als ob der Autor nicht wüsste was Shared-Memory oder Atomics überhaupt sind. Ausgiebige Erklärungen zu folgendem auf Nachfrage.
Nett. Nur wird das in deinen weiteren Ausführungen nicht weiter ausgeführt. Du wiederholst weiterführend im Prinzip das selbe was der reddit Poster geschrieben hat Rückwärts. Auf Nachfrage zitiere ich dir gerne die identischen Passagen und schick sie dir per PN.

Zumal die genaue Funktionsweise und der Bezug dazu eben durch den weiteren Link zu Nvidias Developerseite inkl. Messungen belegt wird:
https://developer.nvidia.com/content/maxwell-gpu-physx-particles
Den post ich nun zum dritten mal.
 
Gibt es denn nun was Neues an der Optimierungsfront vom Entwicklerstudio / AMD?
 
Zurück
Oben