Sauerei: Nvidia limitiert künstlich Batman AA bei Einsatz der CPU für Physik

alles richtig nur ebenso spekulation. wie sich das ganze verhälten hätte ist nicht anhand des verlinkten threads zu sehen. was jedenfalls so halbwegs sichtbar ist, ist dass das game scheinbar auf dualcore optimiert ist. dort gibts den größten sprung und weitere cores bringen nur maginal etwas. wenn ich die auslastung des taskmanagers sehe liege ich in etwa bei 100%@Dualcore. so schalte ich nun physx hinzu und belaste die zwei kerne noch dadurch ist doch wohl logisch dass die leistung runter geht oder nicht?

nun kann man sich überlegen warum des so ist. hat es was mit nv zu tun oder liegt es einfach an der core-optimierng des games (+ schlechtere leistung bei der CPU gegenüber der GPU)? so und genau dazu gibts keine aussage. jedenfalls davon auszugehen, wenn man 4/8 kerne hat diese dann auf 100% laufen zu haben ist doch wohl zumindest derzeit noch eher ein wunsch als faktum. ob man die physx-berechnung tatsächlich mit der engine die verwendet wird auf zusätzliche core verlagern könnte ist immer noch die frage. in diesem fall aber direkt von nem skandal und "nv limitiert" anhand des verlinkten threads ohne weitere erkenntnisse zu sprechen ist einfach an den haaren herbeigezogen und berut auf keinerlei fakten sondern vermutungen. und zu vermutungen sag ich nur :wayne:

Also zuerster einmal gibt es keine Programme die auf eine bestimmte Anzahl an Cores hin optimiert sind. Es gibt entweder Single Threaded oder Multithreaded...
Single Threaded besagt ein einziger Thread für die Anwendung und dementsprechend nur ein einziger Core wird ausgelastet.

Bei Multithreaded lässt man mehrere Threads gleichzeitig laufen, da aber in Games eine gewisse Abhängigkeit der Thread besteht erreicht man damit nur schwer eine Auslastung über sehr viele Cores... Soweit erstmal zum Gängigen.

Nun zu PhysX, PhysX als Physikengine kann hervorragend mit mehreren Threads umgehen, es bringt Multicore Support von Haus aus mit, sprich steigt der Rechenaufwand kann man durchaus diesen 1A in mehreren Threads abarbeiten.
Nur scheint es hier künstlich ein Limit für die PhysX Threads auf 1? zu geben... Zumindest schreibt man das ja oben im ersten Post...

Es ist logisch, das man als Spieleprogrammierer da ein wenig eingreifen muss, um langsamere CPUs (oder CPUs mit weniger Cores) nicht gänzlich unter den PhysX Aufgaben zu ersticken, aber warum sollte man dies nicht durchaus dem Anwender überlassen, wie er seine Einstellungen wählt?

Und das ist doch der springende Punkt, hier wird eindeutig von NV oder dem Spieleprogrammierer die fähigkeit von PhysX auf nicht NV Hardware beschränkt... --> Ergo man schafft sich hier einen deutlichen Vorteil.

das geht aber jetzt wieder in die richtung die ich schon beschrieben hatte. wenn das game für die nv-API optimiert ist und ist die leistung einer ati im vergleich dazu möglicherweise gering. nen bsp hatte ich ja dazu schon genannt. die frage wäre nun wieder was ist wenn du z.b. ne nv auf der ati-API laufen hast: wie verhält sich die nv-karte? spkultion also. fakt ist ich seh bei F@H die 5870 auf G80-level rumlaufen. so und wenn dem in diesem game ebenso ist kannst höchstens anprangern, dass die nv-API genutzt wird. andersrum könnte ich als nv-user dann bei der ATI-API rummjammern.

wie sich die beiden hersteller bei opencl und directcompute verhalten ist immer noch nicht klar. vergleichsmöglicheiten gibbet nedd. dazu ist das noch zu neu.

Warum kommst du immer mit F@H?
Das hat doch rein gar nix mit PhysX zu tun...

Und nochmal, hier verlangt sicher keiner irgendwelche NV only Features auf AMD GPUs berechnen zu lassen, es geht einzig und allein um die Tatsache, das PhysX auch auf der CPU berechenbar ist, auch so verkauft wird seitens NV und zudem noch in den meisten Games die PhysX nutzen so eingesetzt wird.
Und hier bremst irgendwer künstlich im Beispiel von Batman die Leistung bei erkannter nicht NV Hardware aus... In dem Fall darüber, das der Multithread Support der PhysX Engine deaktiviert wird... Ergo die CPU implementierung von PhysX nie und nimmer ihre Stärken ausspielen kann... Nämlich die lineare Steigung der Rechenleistung mit steigung der Coreanzahl.

Nicht mehr und nicht weniger ist hier aktuell das Problem...



Um GPGPU Anwendungen gehts hier erstmal gar nicht ebenso nicht um die Leistung bei Berechnung von Anwendungen über OpenCL oder DX Compute Shader...
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn der Spieler also PhysX nicht nutzt läuft das ganze ohne Probleme auch auf ATI. Ich kann zwar nicht nachvollziehen warum PhysX sich überhaupt bei ATI Hardware aktivieren lässt (ohne diese Funktion gäbe es diesen Thread nicht), trotzdem weiß ich nicht ob sich die Effekte ohne weiteres auf die CPU auslagern lassen würden, rein vom Leistungsvergleich CPU zu GPGPU.

wird dir ja wohl klar sein wieso ati user physX einschalten können.;)
 
dann sollte man sich aber auch nicht aufregen wenn manche games mit AMD/ATI-HW halt schlechter laufen als mit möglichem support.

Es besteht ein Himmelweiter Unterschied zwischen gebremst werden und generell schlecht laufen (aus welchen Gründen auch immer)

Beispiel Stalker, verlangt massiv nach Filterleistung... Eine R600 hatte ein Filterproblem, kein Mensch verlangt hier das die Karte auf gleichem Niveau mit der Konkurenz ist...

Aber hier im Beispiel geht es darum mögliche unsachgemäße Beeinträchtigungen von NV oder des Spieleprogrammierers zu finden und aufzudecken, die eine ganze Masse an Usern künstlich den Spielspaß drastisch drosseln würde, ohne jeglichen Grund...

Klar es ist das gute Recht vom Spieleentwickler zu machen was er für richtig hält. Aber ich kann so gar nicht verstehen, wie sich hier eigentlich unvoreingenommene User auch noch darauf stürtzen und das ganze auf biegen und brechen verteidigen müssen...
Merkt doch endlich mal, das sowas für uns Endkunden nur schlecht sein kann...
 
Zuletzt bearbeitet:
Und hier bremst irgendwer künstlich im Beispiel von Batman die Leistung bei erkannter nicht NV Hardware aus... In dem Fall darüber, das der Multithread Support der PhysX Engine deaktiviert wird..

belegt wodurch? ich seh da keine nv karte im selben vergleich. was also wenn dieses verhalten für alle karten zu sehen ist und sogar wegen optimierung auf "schwache" dualcores angesetz wird? nur bei die physx-engine vielleicht generell alle cores nutzen kann muss dass im zusammenspiel mit der engine des spiels nicht der fall sein. des weiteren bringen dir auch 8 cpu-kerne nicht annähernd die leistung die eine (!!) GPU hat. wie willst du nun ohne die genaue programmierung rückschlüsse auf die mögichen einschränkungen ziehen? das da nv ne künstliche bremse installiert hat ist immer noch nciht durch die messdaten in dem angesprochenem thread belegt. somit immer noch ne reine spekulation und somit wenn überhaupt nen wunschdenken der ati-gemeinde

und warum F@H: dort zeigt nv halt deutliche stärken bei der GPGPU-berechnung. wenn dem generell so sein sollte ist die leistung der ATIs bei dem game hier kein großes wunder

Es besteht ein Himmelweiter Unterschied zwischen gebremst werden und generell schlecht laufen (aus welchen Gründen auch immer)

so und sollte sich nun herausstellen dass das einfach hw-bedingt ist und da selbst mit bester optimierung nix besser läuft? was dann? ob dem so ist ist bisher nicht geklärt und reine spekulation. und wenn du jetzt kommt ja man verliert spaß weil man die nv-api nutz: da sag ich dir einfach: pech gehabt! nv only feature ;) dreh dem programmierer doch wenn du willst nen strick. das hat aber mit nv nix zu tun
 
Zuletzt bearbeitet:
Werbezwecke scheinen wahrscheinlich, da gebe ich dir recht.

Nochmal, du kannst PhysX nicht gänzlich deaktiveren. Eine gewisse Basis ist wohl immer drin... Und diese wird auch mit ausgeschaltetem PhysX Schalter im Menü bei erkannter nicht NV Hardware in nur einem einzigen Thread abgearbeitet... Was unnötig ist und Leistung verschenkt...
 
Und diese wird auch mit ausgeschaltetem PhysX Schalter im Menü bei erkannter nicht NV Hardware in nur einem einzigen Thread abgearbeitet...

steht wo? bzw wo siehst du dass das bei nv nicht der fall ist? nur weil die anderen benchmarks mehr leistung für nv zeigen als für ati? ich seh dazu keine taskmanageranzeige ;) der unterschied kann ebenso rein durch die GPGPU-leistung zutandekommen. ebenso bei einem thread für die nv karte.

von daher verdreh bitte nicht die fakten oder ziehe rückschlüsse aus fakten die so nciht zulässig sind
 
Nochmal, du kannst PhysX nicht gänzlich deaktiveren. Eine gewisse Basis ist wohl immer drin... Und diese wird auch mit ausgeschaltetem PhysX Schalter im Menü bei erkannter nicht NV Hardware in nur einem einzigen Thread abgearbeitet... Was unnötig ist und Leistung verschenkt...

Ich weiß nicht ob man da noch von verschenkter leistung sprechen kann klick mich.

So viel Physik das dann nicht mal ein einzelner Kern damit klarkommen würde mute ich dem spiel jetzt auch nicht unbedingt zu wenn die Physik auf minimal läuft, ist aber auch nur eine Vermutung meinerseits.
 
belegt wodurch? ich seh da keine nv karte im selben vergleich. was also wenn dieses verhalten für alle karten zu sehen ist und sogar wegen optimierung auf "schwache" dualcores angesetz wird? nur bei die physx-engine vielleicht generell alle cores nutzen kann muss dass im zusammenspiel mit der engine des spiels nicht der fall sein. des weiteren bringen dir auch 8 cpu-kerne nicht annähernd die leistung die eine (!!) GPU hat. wie willst du nun ohne die genaue programmierung rückschlüsse auf die mögichen einschränkungen ziehen? das da nv ne künstliche bremse installiert hat ist immer noch nciht durch die messdaten in dem angesprochenem thread belegt. somit immer noch ne reine spekulation und somit wenn überhaupt nen wunschdenken der ati-gemeinde
Der CPU ist es total egal wie viele Threads da abgearbeitet werden müssen, wenn du mit genau zwei Threads 100% Last erzeugen kannst, und eine Leistung in FPS von x hinten rausbekommst, wirst du beim zuschalten des Multithread Supports für PhysX immernoch die gleiche Leistung auf dem Schirm sehen...

Einem Thread über die Laufzeit CPU Rechenzeit zugeteilt, ob da nun ein Thread die volle Rechenzeit bekommt oder 10 Threads jeweils nur ein Zentel der Zeit spielt am Ende keine Rolle. Wenn die Anwendung 1A über mehrere Threads skalieren kann (und das tut PhysX ohne Zweifel) ist ein Limitieren der Threads auf nur einen einzigen eindeutig eine Performance Bremse, die so nicht hätte sein müssen... (man schadet quasi allen Usern mit mehr als zwei Cores im PC)

und warum F@H: dort zeigt nv halt deutliche stärken bei der GPGPU-berechnung. wenn dem generell so sein sollte ist die leistung der ATIs bei dem game hier kein großes wunder

GPGPU Berechnungen interessieren nur leider im Fall von PhysX berechnet auf der CPU überhaupt nicht... Da kann NV noch tausende mal schneller sein als AMD in F@H. Es hat damit nix aber auch gar nix gemein...

so und sollte sich nun herausstellen dass das einfach hw-bedingt ist und da selbst mit bester optimierung nix besser läuft? was dann? ob dem so ist ist bisher nicht geklärt und reine spekulation. und wenn du jetzt kommt ja man verliert spaß weil man die nv-api nutz: da sag ich dir einfach: pech gehabt! nv only feature ;) dreh dem programmierer doch wenn du willst nen strick. das hat aber mit nv nix zu tun

Man nutzt nur keine NV API... Was auch immer du damit meinen magst...
Das Spiel basiert nach wie vor auf DX. Wo ist da bitte NV drin?

Und wie schon bestimmt 5 mal gesagt, es regt sich kein Mensch auf, das hier GPU basiertes PhysX für schönere Effekte auf NV Karten möglich ist...
Es geht einzig und allein um die Einschränkung, bei erkannter nicht NV Hardware...

steht wo? bzw wo siehst du dass das bei nv nicht der fall ist? nur weil die anderen benchmarks mehr leistung für nv zeigen als für ati? ich seh dazu keine taskmanageranzeige ;) der unterschied kann ebenso rein durch die GPGPU-leistung zutandekommen. ebenso bei einem thread für die nv karte.

von daher verdreh bitte nicht die fakten oder ziehe rückschlüsse aus fakten die so nciht zulässig sind

Schaust du hier:
http://media.bestofmicro.com/J/T/230105/original/Batman PhysX CPU ThreadingB.jpg

Bei ausgeschaltetem PhysX gibts wundersamerweise auf einmal ne CPU Auslastung größer 50% auf nem Quad, ergo zwei Kerne und ein bisschen werden voll belastet.
Schaltet man PhysX ein sinkt diese CPU Auslastung auf einmal um fast die Hälfte ab?

Also bitte, wer hier nicht erkennt, das da jemand ein künstliches Limit eingeschalten hat, der ist wirklich Bild auf den Augen...

Mal rein von der logischen Herangehensweise, wie kann bitte die CPU Auslastung drastisch sinken, obwohl man der CPU mehr Aufgaben zum Berechnen gibt?



Aber so langsam macht es keinen Spaß mehr hier zu versuchen weiter zu argumentieren... Du scheinst derart an NV zu kleben, das dich offensichtliche Einschränkungen und Beeinflussungen der Konkurenz überhaupt nicht stören...
Das CPU Auslastungsdiagramm spricht Bände, wer das nicht sieht, neja gut, dann ist das eben so...
 
Der CPU ist es total egal wie viele Threads da abgearbeitet werden müssen, wenn du mit genau zwei Threads 100% Last erzeugen kannst, und eine Leistung in FPS von x hinten rausbekommst, wirst du beim zuschalten des Multithread Supports für PhysX immernoch die gleiche Leistung auf dem Schirm sehen...

genau da liegt der punkt ;) ich behaupte ganu das gegenteil.
bedingt durch die physik-berechnung geht die leistung der cpu deutlich für die anderen aufgaben zurück. das führt dann zu dem rückgang in der leistung. du kannst ohne die programmierung zu kennen nciht davon ausgehen, dass der physx-thread dann automatisch auf nen zusätzlichen kern ausgelagtert wird.

des weiteren (ich sags mal vorsichtig) können andere gpu-berechnungen ebenfalls von den physx-ergebnissen abhängen sprich die anderen berechnungen dürfen warten. wenn sich sagen wir jetzt mal stark vereinfacht ein bild aus 50 physikberechnungen und 150 reinen cpu-berechnungen zusammensetzt so kommt das bild erst auf den screen wenn die 50 physikberechnungen erledigt sind. sowas nennt sich auch bottleneck. dann geht die cpu-last eben runter weil sie idled und auf den physx-thread warten muss.

Schaltet man PhysX ein sinkt diese CPU Auslastung auf einmal um fast die Hälfte ab?

durchaus verständlich oder? siehe oben. ein bottleneck ala singlecore physix-problem führt damit automaisch zu niedrigeren fps und somit ebenso zu weniger nötigen cpu-berechnungen. als ergänzung: physikberechnungen belasten nicht nur die GPU sondern auch die cpu in geringen maße.

das zusammengefasst ergibt dann den angezeigten cpu-lastvergleich der somit gut zu erklären ist. ohne bzw mit kleinester stufe hat sich das problem nahezu gegessen


was mcih hier stört sind einfach behauptungen ohne grundlage bzw ausblednung von überlegungen.
 
Zuletzt bearbeitet:
genau da liegt der punkt ;) ich behaupte ganu das gegenteil.
bedingt durch die physik-berechnung geht die leistung der cpu deutlich für die anderen aufgaben zurück. das führt dann zu dem rückgang in der leistung. du kannst ohne die programmierung zu kennen nciht davon ausgehen, dass der physx-thread dann automatisch auf nen zusätzlichen kern ausgelagtert wird.

Doch kann ich...
Denn der Programmierer hat sogut wie keinen Einfluss auf die Abhandlung der Threads auf den einzelnen Cores, denn das macht das OS.
Dem OS ist es (im Falle von Windows kleiner Windows 7) sogar egal, ob das echte Cores oder virtuelle Cores sind (SMT bei Intel)...
Ergo kann der Programmierer hier nur einschreiten, indem er die Anzahl der Threads für bestimmte Berechnungen beschränkt... Hier in dem Fall wohl nahezu offensichtlich ein Thread für PhysX, obwohl PhysX von Haus aus Multithreading unterstützt.

Die Threadverteilung geschiet dann je nach dem welche Cores gerade "frei" sind vom OS. Wenn aber nur ein einziger Thread genutzt wird, bzw. vllt auch zwei oder drei für das gesamte Game, die wiederum ne Starke Abhängigkeit haben, dann kommt die CPU gar nicht dazu die Threads gleichzeitig abarbeiten zu können. Ein Thread der auf nen anderen wartet, erzeugt nahezu keine Last.

des weiteren (ich sags mal vorsichtig) können andere gpu-berechnungen ebenfalls von den physx-ergebnissen abhängen sprich die anderen berechnungen dürfen warten. wenn sich sagen wir jetzt mal stark vereinfacht ein bild aus 50 physikberechnungen und 150 reinen cpu-berechnungen zusammensetzt so kommt das bild erst auf den screen wenn die 50 physikberechnungen erledigt sind. sowas nennt sich auch bottleneck. dann geht die cpu-last eben runter weil sie idled und auf den physx-thread warten muss.
Das ist soweit ja erstmal richtig, aber es geht darum, das man künstlich Threads einspart um so die Nutzung von mehreren Cores und somit direkt deutlich höhere PhysX Geschwindigkeit...

Wenn man hier im Falle auf Multithreaded PhysX gesetzt hätte, dann wäre die CPU Auslastung deutlich größer 30%, sogar deutlich größer 50%, wenn 50% das ist, was das Game bei deaktiviertem PhysX Zusatzeffekten verbraten würde.
Da das aber nicht der Fall ist, lässt sich auch ohne genauen Programmcode zu kennen hier drauf schließen, das die PhysX Berechnung in nur einem Thread (oder besser in sehr sehr wenigen Threads) abläuft.

durchaus verständlich oder? siehe oben. ein bottleneck ala singlecore physix-problem führt damit automaisch zu niedrigeren fps und somit ebenso zu weniger nötigen cpu-berechnungen. als ergänzung: physikberechnungen belasten nicht nur die GPU sondern auch die cpu in geringen maße.

das zusammengefasst ergibt dann den angezeigten cpu-lastvergleich der somit gut zu erklären ist. ohne bzw mit kleinester stufe hat sich das problem nahezu gegessen.

Wieso sprichst du jetzt auf einmal von "singlecore physix-problem"?
Das doch genau das, was ich die ganze Zeit sage... Denn PhysX ist seit Jahr und Tag in der Lage, 1A mit der Coreanzahl zu skalieren... Es sei denn, man schaltet Multithreading ab und nutzt nur einen Thread.
 
Zuletzt bearbeitet:
ja nun sind wir auf dem gemeinsamen punkt ;) erstens:

auch wenn du hingehen würdest und für die physx-berechnungen volle 8 kerne nutzen würdest so läge die leistung dieser lösung immer noch minimalst 6x oder wenn man von anderen vergleichen ausgeht 30x tiefer als mit einer einzelnen (nv-) gpu. mit ati wären wir bei sagen wir mal zur aktuellen stunde bei knapp 15x. also würde diese cpu-lösung immer noch langsamer (wenn auch - spekulation an - wahrscheinlich ausreichend schnell) sein im vergleich zur verwendung einer GPU. was ist das dann? unfair gegenüber der CPU? die bösen GPU-hersteller?

so und sollte sich herrausstellen (ich werd da erstmal noch ne zweitlang warten - im mom siehst so aus dass trotz deutlich theoretischer leistung die ATI nur bei 50% leistung der nvs liegeb - mal weitere treiber/programme/benchmarks abwarten) so ists doch dann ersichtlich, dass mit ner nv-karte bedingt durch das dann deutlich kleinere (eigentlich ja eher größere aber ich denke man sieht was gemeint ist) bottleneck dann auch mehr fps hinten rauskommen.

so und wo ist dann das problem dass nv angeblich hier irgendwas limitiert? wenn bei der derzeitigen lage eben nur ein cpu-kern für physx genutzt wird (ob mehr cpu-kerne gingen sei mal dahingestellt) und dies sowohl bei nv und ati karte (was eben wie ich schon mehrfach schrieb bei dem test eben NICHT (!!!) angegeben ist/zu sehen ist) der fall ist: wo ist dann bitte die limitierung seitens nv die hier ja angeblich vorliegt? diese leigt nur vor wenn mit erkannter nv-karte mehrere cpu-kerne für physx verwendet würden. das passende bild fehlt jedoch (macht ja auch sinn - mit ner nv im system würd eh jeder physx mittels nv-gpu anhaben. man könnte dennoch um die behauptung der limitierung zu widerlegen ja trotzdem den test machen).

so sollte also bei beiden herstellern nur maximal ein core für die physx-berechnung verwendet werde so ist entweder

A: der programmierer (absichtliche core-beschrnkung - warum auch immer) oder
B: die engine

der böse bube und nicht (unbedingt - da in fall A: ja vielleicht einfluss genommen wurde) der grafikkartenhersteller


warum es also nur den physx-thread nur auf einer cpu-core gibt wird dir also nur der programmierer oder der herausgeber sagen können u.U. aber nciht unbedngt sagen wollen. um es also aufzuklären müsste man an diesen stellen nachfragen. und welch wunder:

We're trying to get clarification from the developers at Rocksteady about this phenomenon--it's almost as though the game is artificially capping performance at a set level, and is then using only the CPU resources it needs to reach that level.


ist dann das schon angedachte bottleneck 1x core only
 
Zuletzt bearbeitet:
auch wenn du hingehen würdest und für die physx-berechnungen volle 8 kerne nutzen würdest so läge die leistung dieser lösung immer noch minimalst 6x oder wenn man von anderen vergleichen ausgeht 30x tiefer als mit einer einzelnen (nv-) gpu. mit ati wären wir bei sagen wir mal zur aktuellen stunde bei knapp 15x. also würde diese cpu-lösung immer noch langsamer (wenn auch - spekulation an - wahrscheinlich ausreichend schnell) sein im vergleich zur verwendung einer GPU. was ist das dann? unfair gegenüber der CPU? die bösen GPU-hersteller?
Du gehst da nach wie vor von der falschen Seite aus ran...
Es streitet gar kein Mensch ab, das only GPU Features auf der CPU zu langsam ausgeführt werden würden. Aber, darum geht es auch gar nicht...

Es geht um das beeinträchtigen der Rechengeschwindigkeit beim verwenden von CPU PhysX.

Und wie gesagt, versetz dich in die Lage des Endkunden... Nicht jeder hat ne 260GTX aufwätz, da gibts viele die dümpeln mit ner kleinen 9600GT und tiefer rum.
Was machen die? Da ist schon allein für die 3D Rechenparts die GPU Leistung zu lahm, wenn dort jetzt noch PhysX mit drauf kommt, dann hast du noch ein Problem mehr...
Mich würde mal ein Test interessieren, der CPU PhysX mit High Details zeigt aber auf ne NV Karte setzt. Im PhysX Treiber müsste man doch GPU PhysX deaktivieren können, sprich CPU PhysX erzwingen können?

Ich Wette mit dir, in dieser Konstellation (kleine NV GPU + sehr starke CPU) wäre die CPU Auslastung merklich höher, weil zugeschaltetes Multithreading, als bei der gleichen Hardware mit AMD Karte...

Leider habe ich das Game nicht, sonst hätt ich das lange schon getestet ;)
 
wenn meine CPU für die effekte zu langsam ist, dann kann ich damit leben.
wenn meine CPU künstlich ausgebremst wird und es deshalb ruckelt, dann ist das ne sauerei, da werde ich direkt trotzig und kauf erst recht keine nvidia gpu.
 
Zuletzt bearbeitet:
Mich würde mal ein Test interessieren, der CPU PhysX mit High Details zeigt aber auf ne NV Karte setzt. Im PhysX Treiber müsste man doch GPU PhysX deaktivieren können, sprich CPU PhysX erzwingen können?

jopp das geht


Ich Wette mit dir, in dieser Konstellation (kleine NV GPU + sehr starke CPU) wäre die CPU Auslastung merklich höher, weil zugeschaltetes Multithreading, als bei der gleichen Hardware mit AMD Karte...

der vergleich ist nur objektiv wenn die ati genauso stark bei der physik-berechnung ist wie die nv-karte. und genau da fehlts im mom an daten.

alternativ müsstest für eine grobe aussage die FPS mit einbeziehen. klar ist es logisch, dass wenn für ein bild 50gpu und 150cpu-berechnungen benötgt werden und die nv karte 100 berechnungen pro sekunde schafft und die ati nur 50, dass dann auch die ~ doppelte CPU-belastung vorliegt ;) das ist dann aber ein reinen bottleneck bedingt durch die rechenleistung der ati oder im anderen fall halt nv je nach ergebnis.

also wenn vergleich dann nur rein cpu-physik und GPU komplett ausgeschaltet (also nicht auf min physx aondern per treiber ausgestellt)
 
Zuletzt bearbeitet:
Hier gibts schon nen patch wo man die für ATI Karten künstlich beschnittene Game engine von Batman austricksen kann das MSAA richtig funzt.
http://www.tommti-systems.de/start.html
Here is our patch to enable MSAA on ATI/AMD Graphics cards. The achived MSAA with this patch is faster, than the MSAA you can force via the Catalyst Control Panel and it let the Game Engine detect a ATi/AMD based card for applying proper IHV optimizations.
 
Zuletzt bearbeitet:
der vergleich ist nur objektiv wenn die ati genauso stark bei der physik-berechnung ist wie die nv-karte. und genau da fehlts im mom an daten.

Nochmal für mich zum Mitschreiben...
Wieso willst du immer die AMD Karte für die Physikberechnung hinstellen? So langsam habe ich das Gefühl, du willst damit was anderes ausdrücken, als es wirklich rüber kommt...
Denn das geht doch überhaupt nicht... Den letztendlichen Effekt der durch Shadercode erzeugt wird, müssen beide GPUs (egal ob AMD oder NV) sowieso darstellen, das sollte klar sein. Aber im Falle von AMD GPU kommt PhysX (sprich die die reinen Anweisungen für die Physikalischen Berechnungen) einzig und allein von der CPU...

alternativ müsstest für eine grobe aussage die FPS mit einbeziehen. klar ist es logisch, dass wenn für ein bild 50gpu und 150cpu-berechnungen benötgt werden und die nv karte 100 berechnungen pro sekunde schafft und die ati nur 50, dass dann auch die ~ doppelte CPU-belastung vorliegt ;) das ist dann aber ein reinen bottleneck bedingt durch die rechenleistung der ati oder im anderen fall halt nv je nach ergebnis.

also wenn vergleich dann nur rein cpu-physik und GPU komplett ausgeschaltet (also nicht auf min physx aondern per treiber ausgestellt)

Ähhm na was denn selbst, wenn du im Vergleich zur NV GPU diese gleichzeitig noch PhysX Berechnungen durchführen lässt, verfälscht sich das Bild drastisch und ist nicht vergleichbar... Aber das hat auch niemand beabsichtigt...

Zum oberen, wie kommst du darauf, das eine NV GPU 100 Berechnungen schafft und ne AMD GPU nur 50?
Berechnungen von was? Oder für was?
Also was meinst du genau damit?

Wenn du damit auf GPGPU Anweisungen (implementiert durch OpenCL oder DX Compute) abzielen solltest, kannst das gleich wieder wegpacken, denn das kommt überhaupt nicht hier zum Tragen, stört uns also überhaupt nicht.
 
in bezug auf mein zuvor genanntes stark vereinfachtes bsp. 50berechnungen/sekunde

und es geht hier rein um die berechnung wie auch immer umgesetzt. ob das in opencl/cuda/eierbrezel oder sonstwas ausgeführt ist ist sowas von egal es geht einfach nur um die berechungen die eine ati-cpu bei der brechnung im vergleich zur nv schafft.

wenn eh alles von der cpu bei ati kommt (siehe dein letzer post) siehts doch logischer weise noch schlimmer aus. da wird die leistung bei physx auf ner nv gpu zwangsweise zu mehr fps und cpu-last führen. einfache logik

von daher: vergleichen wenn die physx-effekte im game auf high gestellt sind und im nv-treiber die hardware-beschleunigung per GPU aus ist. alles andere ist sonst kein wirklich aussagekräftiger beweis.

wenn das game dann keine GPU-nutzung der ati-karte für die effekte zulässt ist das dann sind high-physx-effekte eben ein nv-feature. willst se haben musst ne nv im sys haben. wenn du ne ati-hast stellst auf physx = min und schon hast es ebenso lauffähig.

@€dit: http://media.bestofmicro.com/N/T/228953/original/Batman PxHigh 1280.png

zeigt schön wie physix auf ner GPU und Physx auf ner CPU im vergleich dastehen. interessant bzw was fehlt ist physix mittels cpu bei der nvidia-karte. wenn ich aber die min-fps sehe von 24 kannst direkt vermuten, dass diese ebenfalls runter gehen werden. der verglech hinten mit der cpu-auslastung gibt 15fps als minfps für die ati an. also liegt demnach das ergebnis später bei irgendwas zwischen 15 und 24 min-fps. nen höheres ergebnis als die 24fps ist eher sehr unwahrscheinlich.

würde jetzt mal rein spekuliert dann rauskommen dass ich 15 minfps und z.b. 18 minfps bei der nv sehen würde würd ich das nciht als limitierung ansehen ;) der vergleich fehlt jedenfalls, die maximalen auswirkungen sind aber schön zu sehen
 
Zuletzt bearbeitet:
Hallo,

ich hab mich mal selbst etwas mit dem Thema beschäftigt.
Infos zum Test:
OS: WinXp 32 Bit (unter Win7 hab ich die Demo von Batman AA nicht zum Laufen gebracht,
laut der Kompatibilitätsliste im Luxx läuft das Spiel auch nicht)
Update: unter Win7 läufts jetzt auch. Eventuell lag es an meinen Experimenten mit der DirectCompute-Schnittstelle.
CPU: Core i7-920@4 GHz
Graka: HD 5870@Standardtaktraten
Alle Messdaten habe ich mit Everest erfasst.

Versuche:
PhysX-Effekte aus mit Framelimiter (ich hab nicht gleich rausgefunden, wie
man den ausschalten kann)
PhysX-Effekte normal (hier empfiehlt das Spiel bereits eine GTX 260)
PhysX-Effekte high (hier empfiehlt das Spiel zusätzlich zur GTX 260 eine
weitere Graka, die nur PhysX beschleunigen soll)
PhysX-Effekte aus ohne Framelimiter
PhysX-Effekte aus mit 2x2SGSSAA (über den Treiber erzwungen)

Der dargestellte Bereich erstreckt sich über die erste Ingame-Sequenz und
den darauf folgenden Kampf im "Eingangsbereich" vom Arkham Asylum.
Ich habe nicht weiter getestet, da bereits in diesem ersten Kampf mit aktivierten
PhysX-Effekten eigentlich keine spielbaren Fps mehr gegeben sind.
Da außer der Schlägerei nichts passiert, dürfte es halbwegs reproduzierbar sein.

Und nun zu der Ergebnissen:

Mit normal (ich kürze ab hier ab) ist die Auslastung von Kern1 genauso hoch wie bei aus mit deaktiviertem Framelimiter (in dem Diagramm mit Vsync bezeichnet). Bei high fällt die Auslastung wieder, was sich aber bei Betrachtung einer der anderen CPU-Kerne erklärt.


Bei Kern2 ist die Auslastung in allen Fällen recht gering, wobei sie mit normal und high am geringsten ist. Die höchste Last ergibt sich mit aus und deaktivertem Framelimiter gefolgt von 2x2SGSSAA


Die geringste Last erzeugt nun aus. normal und high erzeugen eine etwas höhere Last. So richtig zu tun bekommt dieser Kern aber eigentlich erst bei aus mit deaktiviertem Framelimiter. Die mit Abstand höchste Last ergibt sich aber bei aus mit 2x2SGSSAA.


Mit Kern4 haben wir dann auch die Erklärung gefunden, warum bei high die Auslastung von Kern1 wieder sinkt. Anscheinend läuft PhysX nun zum größten Teil auf Kern4. Die Auslastung bewegt sich auf dem gleich hohen Niveau wie bei Kern3 mit aus und 2x2SGSSAA. Normal, aus mit Framelimiter und aus ohne Framelimiter liegen in etwa auf dem gleichen Niveau.

Man sieht hier schon, dass sich eine recht ungleichmäßige Lastverteilung bei einer 4-Kern-CPU nicht nur durch das Nutzen von CPU-PhysX ergibt.
Auch die Nutzung von über den Treiber erzwungenem 2x2SGSSAA hat den gleichen Effekt (hoffentlich kommt jetzt nicht jemand mit einer weiteren Verschwörungstheorie):

Ein Kern ist jeweils fast voll ausgelastet, während die anderen 3 Kerne nur sehr gering ausgelastet sind.

Der im Startpost verlinkte Artikel erweckt zeigt ebenfalls auf, dass die CPU mit aktiviertem PhysX ingesamt weniger stark ausgelastet ist. Einige haben daraus eine künstliche Ausbremsung der CPU geschlussfolgert. Meiner Meinung nach kommt die ingesamt höhere Auslastung bei deaktivierten PhysX Effekten daher, dass die CPU nicht durch PhysX überfordert ist und somit voll für die GPU zur Verfügung steht. Diese kann sich deshalb voll entfalten und belastet dadurch wiederrum die CPU stärker.
Das sieht man auch bei einem Vergleich zwischen mit und ohne Framelimiter:

Ohne Framelimiter (Vsync im Diagramm genannt) fällt die CPU-Auslastung nicht nur insgesamt höher aus, die Kerne scheinen mir auch insgesamt gleichmäßiger belastet zu sein.

Obwohl die Auslastung eines einzelnen Kerns mit high stark steigt, sind die anderen Kerne ähnlich hoch ausgelastet wie bei aus und aktiviertem Vsync.

Die geringe Auslastung dieser Kerne kommt imho daher, das die Threads, die auf diesen Kernen ausgeführt werden, deutlich schneller abgearbeitet werden können, als die, die auf Kern1 laufen. Ergo müssen die restlichen Kerne öfter auf Kern1 warten und ihre angezeigte Auslastung sinkt.
Schlingel_INVs Ausführungen gingen auch in diese Richtung.

Ich hab mir dann noch für den Bereich zwischen den Messpunkten 40 und 70 (hier dürfte sich das eigentliche Spielgeschehen abgespielt haben) das Ganze zahlenmäßig angeschaut:

Hier sieht man auch recht gut, dass die GPU bei den Effekten auf normal und high auf die CPU warten muss.
In diesen Fällen ist die Gesamt-CPU-Auslastung auch um ca. 20 % kleiner als bei der Einstellung aus ohne Vsync.
Allerdings sieht man auch, wie wenig die CPU zu tun hat, wenn der Framelimiter aktiv ist.

Jetzt sollte man sich fragen, warum nutzt PhysX mehr oder weniger nur einen CPU-Kern?
Es muss imho nicht zwingend böse Absicht seitens Nvidia sein.
Nvidia verkauft GPUs und keine CPU. Da Zeit und Arbeiter Geld kosten, werden sie die Entwicklung verständlicherweise auf den GPU-Teil konzentrieren.
Letztendlich könnte es aber auch mit den Berechnungen an sich zu tun haben.
Aus der Mehrkörperdynamik (dürfte den PhysX-Effekten, die Spiele aktuell so nutzen, recht nahe kommen) und aus der numersichen Simulation im Allgemeinen weiß ich, es gibt nicht den auf jedes Problem optimal anwendbaren Solver. Und da gehts bisher nur um die Mathematik selbst und noch nicht um die Umsetzung in eine Multithreaded Anfwendung.
Wegen der ganzen Problematik hab ich mir zwei UT3-Level angeschaut, die starken Gebrauch von PhysX machen.
Leighthouse (während dieser Anzeige habe ich Wände zerstört):


Tornado (während dieser Anzeige habe ich direkt in den Tornado geblickt,
der dabei große Gegenstände durch die Luft wirbelte)


In Leighthouse scheint Kern4 stärker als die restlichen Kerne ausgelastet zu sein.
Die Kritiker werden sagen: Ja, klar, da haben wir es ja. Nichts anderes als in Batman.
Allerdings zeigt sich in Tornado eine deutlich gleichmäßigere Lastverteilung.
Während Tornado flüssig spielbar ist, ruckelt Leighthouse schon nach den ersten 1-2 zerstörten Wänden.
Das stützt imho meine Annahme, die Lastverteilung hängt auch von der Art der Berechnungen ab.
Keiner kommt hoffentlich auf die Idee, zu sagen, Nvidia würde absichtlich nur ein einzelnes Level ausbremsen.

Nochmal zurück zu der Aussage mit dem Solver. Es kann sogar sein, dass sich in Zukunft eine Situation herausstellt, in der die Wassersimulation in der Physik-Engine X besser umgesetzt (besser kann vieles bedeuten: physikalisch höhere Korrektheit bei gleicher Rechenlast oder niedrigere Rechenlast bei gleicher Korrektheit der Ergebnisse) ist als in der Engine Y. Dafür aber Y wieder Vorteile bei der Simulation der Interaktion von Festkörpern miteinander hat.
Warum die Korrektheit der Ergebnisse eine Rolle spielt? Weil das imho einen Einfluss hat, wie realistisch etwas wirkt. Wenn z.B. in Crysis eine Kiste nicht mehr zur Ruhe kommt und andauernd zappelt, dann kommt das imho von Ungenauigkeiten bei der Berechnung.

Mein Fazit:
Die PhysX-Berechnungen über die CPU könnten sicherlich noch etwas optimiert werden. Das Tornado-Level ist ja z.B. sehr gut spielbar, während dies für das Leightouse-Level oder Batman nicht gilt.
Allerdings sind die PhysX-Level in UT3 eine der ersten Anwendungen, die davon überhaupt Gebrauch machten. Batman AA ist dagegen das aktuellste Spiel und nutzt PhysX sicherlich auch deutlich umfangreicher.
Ob man hier mit einem besser optimierten CPU-Ansatz bei high wirklich auf ein spielbares Level kommen kann, bezweifle ich aktuell.
Allerdings ist keiner dieser Effekte direkt relevant für den Spielablauf. Sie erhöhen "lediglich" den Realitätseindruck des Spieles. Wenn aufgrund einer etwas älteren Graka z.B. die Texturqualität oder die Beleuchtungseffekte auf ein niedrigeres Level gestellt werden müssen, dann betrachtet dies ja auch jeder als etwas völlig normales.
Auch wird die CPU imho nicht künstlich ausgebremst. Die anderen Kerne warten lediglich öfter auf den Kern, der sich um PhysX kümmert.

ciao Tom
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh