GPU-Load - Mögliche Ursachen für dieses Phänomen?

SKu

Fleet Admiral Pro
Registriert
Aug. 2012
Beiträge
11.496
Hallo,

ich habe bei einer Software bei mir festgestellt, dass die FPS-Entwicklung mit meinem Verständnis für mich nicht nachvollziehbar ist.

GPU: GTX 1080 Ti
CPU: Ryzen R7 1700X

Ich habe die Situation, dass in Situation A) die GPU-Auslastung bei 40% liegt und ich 54 FPS erreiche. Nun habe ich in Situation B) eine GPU-Auslastung von 99% und erreiche 34 FPS.

Ich frage mich nun: Was tötet die GPU? Ich gehe sehr stark davon aus, dass die Entwickler auf Basis der Unity-Engine hier absoluten Bockmist gebaut haben oder nicht wissen was sie überhaupt tun.

Ist es möglich, dass die Entwickler von mir aus eine schier große Anzahl an Polygonen für ihre Objekte nutzen, was die GPU absolut tötet ohne dass es sich wirklich auf die Bildqualität auswirkt? Ich spreche hier von Full HD ohne DSR oder sonstiges.
 
ähm dir is schon klar, dass eine gpu, sofern kein fps limit oder vsync definiert, immer versucht soviele bilder zu berechnen wie sie nur kann und somit logischerweise im idealfall immer zu 100% ausgelastet sein sollte?

situation A: cpu limit
situation B: gpu limit

und wenn dir 34fps im gpu limit zu wenig sind, vielleicht mal drüber nachgedacht die grafikregler etwas runterzuschrauben?
 
Zuletzt bearbeitet:
Wenn ich im CPU-Limit 54 FPS erreiche mit identischen Einstellungen zu den 34 FPS beim GPU-Limit, warum sollte die GPU dann bei weniger Load mehr FPS erzeugen? Das ergibt für mich keinen Sinn.

100% Auslastung ist auch Humbug was du mir erzählen willst. Ein GPU-Limit existiert nicht nur bei 100% und bei 99% haben wir schon ein CPU-Limit.

Ich glaube du hast die Ausgangslage nicht richtig verstanden.

Einstellungen sind in beiden Situationen identisch. Nur eben mehr FPS mit weniger GPU-Load und weniger FPS mit mehr GPU-Load. Selbst wenn ich ein exklusives GPU-Feature wie AA deaktiviere, habe ich immer noch 99% GPU-Load in Full-HD. Das bedeutet, die Einstellungen sind völlig Wurst, weil sie entweder nicht greifen oder aber keinen großen Unterschied mehr bedeuten, weil die Last auf der GPU durch irgendwelchen unoptimierten Software-Müll zustande kommt.

Da die FPS bei einem frischen Start weitaus höher liegen und die FPS erst mit bestimmten Gegenständen in diesem Spiel derart in den Keller gehen, vermute ich sehr stark, dass die programmierten Gegenstände/Objekte eine derart hohe Last erzeugen, indem von mir aus so viele Polygone genutzt werden - warum auch immer -, dass jede GPU in die Knie geht.
 
Zuletzt bearbeitet:
Nein, sie taktet nicht herunter. Warum sollte sie auch? Sie wird komplett gekillt. Sie taktet ja nicht einmal bei den 40% load herunter.
Und nur mal so nebenbei: Selbst ein 8700K schafft es in dem Spiel nicht eine 1080 Ti zu 50% auszulasten. Sagt alles.
 
SKu schrieb:
Selbst wenn ich ein exklusives GPU-Feature wie AA deaktiviere, habe ich immer noch 99% GPU-Load in Full-HD
Weil in dem Fall die CPU nicht limitiert und die GPU (wie sonst auch) so viele Bilder ausspuckt wie sie schafft :freak:
Ohne brauchbare Beschreibung was bitteschön"Situation A" und "B" sind, kann man hier auch nicht besser helfen.
 
Dann erkläre mit bitte warum die GPU-Last derart stark zunimmt, nur weil ich den Blickwinkel ändere?

Untitled.jpg
Untitled2.jpg

Das einzige, was mir hier auffällt, ist, dass CPU Core 16 auf einmal auf 100% springt, obwohl der Software nur die physischen Cores 0, 2, 4, 6 zugewiesen sind.

Und so sieht das aus, wenn 6 Objekte weniger im Spiel sind (hier nachvollziehbar):

Untitled.jpg
Untitled2.jpg

Es ist aber nicht nachvollziehbar, gleiche Stelle, nahezu gleiche Kamera-Winkel, warum dann auf einmal 99% Load mit wesentlich weniger FPS entstehen. Das heißt für mich nur, dass irgendetwas mit den Objekten in dem Spiel nicht stimmen muss. Ansonsten müsste ich hier ebenso 99% GPU-Load sehen.
 
Zuletzt bearbeitet:
Das sieht ganz danach aus, dass alle Objekte in deiner Blickrichtung berechnet werden.
Hinter den Bergen im ersten Bild ist wohl nichts mehr dahinter, beim anderen ist wahrscheinlich noch das ganze restliche Level.
 
Um welches Spiel handelt es sich denn? Sieht aus, als wäre das halt einfach so unfertiger Titel im Alpha/Beta Stadium?!
 
Warum weißt Du der Software explizit Kerne zu?
 
Bin kein Entwickler, aber soweit ich weiß muss bei Unity z.B. das Occlusion Culling manuell für jedes Projekt aktiviert und konfiguriert werden. Das machen aber viele Entwickler nicht oder es fällt ihnen erst ein, wenn die Performance schlecht genug geworden ist. Bei sowas wie man hier sieht - du machst ja nu ein großes Geheimnis daraus, um welches Spiel es denn geht - also Open World und Co, kann es halt enorme Unterschiede machen, wohin du guckst, wenn das Spiel ohne Occlusion Culling die gesamte Welt in deiner Blickrichtung rendern muss, selbst die Sachen, die hinterm Berg verschwinden.

Haha, genau das, was Shio sagt :)


Das führt halt ganz schnell zu Flaschenhälsen in Hard- und Software. Da mag die Grafik primitiv sein, aber das zwingt selbst ne 1080 Ti in die Knie. Wirste ja auch bei anderen Titeln gemerkt haben: Nicht jede Engine nutzt die Hardware bis aufs Letzt aus und 100% Auslastung ist auch eher irreführend. Die Karte kann dann halt nicht mehr von dem Workload bewerkstelligen. Wäre es z.B. das Occlusion Culling, dann wär die Karte in der Low FPS Szene schwer damit beschäftigt nicht sichtbare Levelgeometrie zu zeichnen und würde sich deshalb verschlucken und trotz Mehrarbeit weniger FPS liefern.

Kann aber auch sonstwas an Optimierungsproblemen sein. Die Devlogs von Factorio sind da immer ganz spannend. Da kann man sehen, wie du cleveres programmieren und optimieren doch noch Leistung rauszuholen is aus dem Programm, was von Anfang an recht saubere Algorithmen hatte.

Meine Frage: Warum machst du so ein Geheimnis um das Spiel und warum ist es so wichtig, warum das schlecht läuft? Ändern kannst du das dann sowieso nicht. (Un)fertige Unity Spiele haben grundsätzlich nicht unbedingt den Ruf, die beste Performance für ihre Optik zu haben.
 
HisN schrieb:
Warum weißt Du der Software explizit Kerne zu?

Weil SMT zu Leistungsverlust führt und es keinen Unterschied zwischen 8 Threads und 4 Threads gibt. Erst bei 2 Threads bricht die Leistung weg. Heißt für mich: Mehr als 4 Threads sind sinnlos.
Ergänzung ()

Ich kann das Spiel gerne nennen: Basiert auf der TV-Serie Gold Rush. Nennt sich Gold Rush The Game. Habe ich auf Steam im Sale für 13,99€ gesehen und da ich Fan der Serie bin, dachte ich mir ich gucke mir das mal an. Mittlerweile habe ich auch herausgefunden, dass hinter dem Entwickler-Studio PlayWay als Shareholder mit involviert sind. Wenn mich nicht alles täuscht, sind dass die gleichen Gurken, die auch ARK auf den Markt gebracht haben - PlayWay.

Wenn es Occlusion Culling wäre, verstehe ich nicht, warum dann da wesentlich mehr FPS bei rumkommen, nur weil 6 Objekte weniger im Spiel sind.

Angeblich sind die Entwickler gerade dabei das Spiel auf die neuste Version der Unity-Engine zu updaten. Mir geht es auch nicht darum etwas daran ändern zu wollen. Eher das Verständnis warum das so ist wie auf den Screenshots. Dass hier anscheinend Software-Müll vorliegt, habe ich bereits feststellen müssen.

Aber ich verstehe nicht, warum ich mit den Objekten und einem GPU-Load von 40% bei rund 50fps lande während ich an der selben Stelle ohne die Objekte bei 80% GPU-Load und 150fps lande.

Wenn ich dann noch so etwas sehe wie fliegende Häuser oder unsaubere Kanten ohne Texturen, denke ich, dass hier Amateure am Werke sind.

Untitled.jpg
Untitled2.jpg

Ich habe diese Bilder ebenso auf dem Discord-Server von dem Entwickler-Studio gepostet und die wurden nahezu instant gelöscht. Heißt für mich: Die wollen nicht, dass das jemand sieht.
 
Zuletzt bearbeitet:
SKu schrieb:
Wenn es Occlusion Culling wäre, verstehe ich nicht, warum dann da wesentlich mehr FPS bei rumkommen, nur weil 6 Objekte weniger im Spiel sind.

Du weißt halt nicht, wieviele Objekte da je nach Blickwinkel noch in der Ferne berechnet werden, obwohl Du sie auf dem Bild gar nicht sehen kannst.
Das ist, glaube ich, hier der Erklärungsansatz.
 
SKu schrieb:
Weil SMT zu Leistungsverlust führt und es keinen Unterschied zwischen 8 Threads und 4 Threads gibt.

Ich wär immer vorsichtig mit solchen Annahmen, vorallem wenn du ins CPU Limit läufst.
 
Ich habe das mit den Threads für mich getestet.

16 Threads
8 Threads auf einen CCX beschränkt
8 Threads auf zwei CCX
4 Threads auf einen CCX
2 Threads auf einen CCX

Marginalen Unterschied gab es zwischen 8 Threads auf einem CCX und allen 16 Threads. Den größten Unterschied gab es aber zwischen 4 Threads auf einem CCX und 8 Threads auf einem CCX. Waren direkt 20fps mehr (Anfangssituation wie auf den letzten Screenshots; Statt 130fps kamen direkt 150fps heraus).
 
Also Fazit: Unfertige, schlecht programmierte Software - -daher funzt der Mist nicht.
 
SKu schrieb:
Marginalen Unterschied gab es zwischen 8 Threads auf einem CCX und allen 16 Threads. Den größten Unterschied gab es aber zwischen 4 Threads auf einem CCX und 8 Threads auf einem CCX. Waren direkt 20fps mehr (Anfangssituation wie auf den letzten Screenshots; Statt 130fps kamen direkt 150fps heraus).

Aber dann ist doch gar kein Eingriff von Deiner Seite aus nötig^^
 
Ich habe das nur getestet, weil es mich interessiert hat, ob SMT irgendeinen Einfluss auf die Performance haben könnte.
Mal gucken ob sich die Performance in irgendeiner Art und Weise verbessern/verschlechtern wird, wenn die das Update auf die neue Engine-Version freigeben. Ich glaube es zwar nicht aber hoffen kann man noch. Ich weiß nicht ob es da auch einen Zusammenhang mit der Pascal-GPU gibt. Anscheinend läuft das Spiel auf Maxwell-GPUs besser. Jeder mit Pascal beschwert sich über niedrige FPS.
 
Zuletzt bearbeitet:
Hallo Sku,

wie es scheint, unterstützt das Spiel 4 Kerne (siehe Post #7, Bild 1, 3 und 4, genau CPU 1, 3, 5 und 7). Bei der Bild 2 wird noch ein fünfter Kern (CPU 16) beansprucht, der zu 100% ausgelastet ist, daher CPU-Limit. Ist dieses Phänomen denn reproduzierbar, denn es scheint, dass irgendeine Software im Hintergrund diese Auslastung verursacht und es zu Frame-Drops im Spiel kommt. Andererseits kann dies auch durch eine nicht saubere Programmierung verursacht werden.

Grüße,
Orpho
 
Zuletzt bearbeitet:
Zurück
Oben