Karte und CPU nicht voll ausgelastet - warum?

th3o

Admiral
Registriert
Aug. 2004
Beiträge
8.810
Hallo Leute,

mein PC: i7 6700 (non-K), 1080Ti Amp Extreme, 16GB GDDR4, 165Hz GSync Monitor auf 1440p

Meine Frage: Bei Assetto Corsa, aber aber auch teilweise bei anderen Spielen, habe ich das Phänomen dass die Grafikkarte nicht ausgelastet ist und die fps bei ca 110-120 stehen, gelegentlich mal auf 150 hochgehen, aber immer fluktuieren, jedenfalls werden die 165 nicht errreicht. Ist die CPU hier ein Bottleneck? Die CPU Auslastung liegt jedoch bei nur 38%. Oder gibts da eine ungleiche Verteilung auf den Cores? Hingegen bei Doom beispielsweise hats keine Probleme an die 165 fps ranzukommen.
Kann es sein dass es dann eher ein Problem seitens der Spielprogrammierung gibt dass die GPU in diesen fps Bereichen nicht voll ausgelastet wird? Komischerweise in Replays gibts dann das Problem aber nicht, da ist die GPU Auslastung bei 98-99%. Was vermutet oder denkt ihr?

Grüße

Edit: Titel etwas irreführend, sorry. Natürlich erwarte oder hoffe ich nicht meine CPU auslasten zu können :)
 
Eine Core wird vom wohl vom Spiel ausgelastet und vom Betriebssystem von einem Core auf den nächsten geschoben (25 Prozent Auslastung), der Rest (12 Prozent) wird wohl von m Betriebssystem, Virenscanner, Browser, Hintergrundprozesse) gefressen. Daher vermute ich, dass alles normal läuft...
 
Die Auslastung der Cores ist eigentlich nie gleichmäßig.

In deinem Fall z.B. mit 4C/8T könnte bei einer Gesamtauslastung von 12.5% schon ein absolutes Abkotzen der CPU vorliegen, wenn deine Anwendung nur auf einem Core laufen würde.

Am einfachsten installierst du den Afterburner, aktivierst das OSD und betrachtest die Auslastung der GPU. Ist diese nicht bei mindestens 95-97%, hast du entweder ein FPS Limiter an... oder du bist im CPU Limit ;)
 
  • Gefällt mir
Reaktionen: der Unzensierte
Erstmal muss das Spiel multithreaded umgesetzt sein. Einiges läuft trotzdem auf dem Hauptthread. Nicht alles ist zu jeder Zeit parallelisierbar. Und 100fps aufwärts ist ja wohl eh für alles genug
 
Ja, ich habe Afterburner installiert und OSD aktiviert, aber halt nur GPU-Auslastung und CPU-Auslastung lasse ich mir anzeigen. Werde dann noch mehr Einblendungen aktivieren bei der CPU.
Aber warum hat es dann zb bei Doom keine Probleme auf 165fps zu kommen? Weil bei einem Autorennen die AI Fahrer von der CPU mitberechnet werden und evtl deswegen da höhere Belastung vorliegt? Oder wegen der Fahrphysikberechnung?
 
th3o schrieb:
Aber warum hat es dann zb bei Doom keine Probleme auf 165fps zu kommen
Weil Doom eines der am besten programmierten Spiele überhaupt ist. So gut wie kein Spiel am Markt ist besser optimiert. Doom nutzt alle Threads und lastet auch die Grafikkarte voll aus.
Das ist bei 90% aller verfügbaren Spiele nicht der Fall.
 
  • Gefällt mir
Reaktionen: Verak, cm87, paccoderpster und eine weitere Person
Doom ist halt ein sehr spezielles Beispiel. Geniale Implementierung von Vulcan .. sehr gut optimiert ... und auch noch recht hübsch.

Das Ding läuft gefühlt auf jeder Blechbüchse und gibt einen mit stärkerer Hardware immer mehr Leistung aus.

Grundsätzlich kannst du leider die Leistung eines Spiels nicht auf ein anderes portieren. Nicht mal wenn es die gleiche Engine ist.

Laienhaft würde ich es so erklären. Du hast einen Motor. 3l Hubraum, 8 Zylinder und 500 PS. Den baust du in einen geilen Sportwagen ein. Aerodynamik etc..alles on Point. Die Karre rennt über 350km/h und beschleunigt auch fix. Jetzt haust du den Motor in einen Wohnwagen. Beschleunigung ist mäh.. Topspeed ist auch räudig.. aber es ist doch der gleiche Motor?!

So verhält es sich auch mit deinem Rechner. Die Leistung als solche bleibt immer gleich. Die Frage ist nur das die Anwendung daraus macht. Nutzt diese die Leistung effizient (Doom) oder ist sie schlecht optimiert? Nutzt nur 1 oder 2 Kerne etc. Auch die Optik ist halt kein Index für Leistung. Battlefield sieht mega aus.. deutlich besser als ein PUBG z.B. ... und trotzdem lief BF (gerade kurz nach erscheinen von PUBG) deutlich besser. Du musst einfach ein paar mehr Werte in Betracht ziehen, um Aussagen zum Flaschenhals treffen zu können ;)
 
  • Gefällt mir
Reaktionen: th3o und K3ks
Nicht jedes Spiel unterstützt alle Kerne.
Manche ältere Games nur einen oder zwei.
Da kann man bei 25% CPU Auslastung schon im CPU Limit sein.

Läuft die Grafikkarte (ohne Limitierung wie VSYNC oder Framelimiter im Afternurner) nicht auf 95+% Auslastung, befindest Du Dich im CPU Limit - egal wie die CPU Auslastung angezeigt wird.

Und genau das ist im Endeffekt auch das 'Geheimnis' wie man erkennt, ob ein Spiel durch die Grafikkarte oder die CPU limitiert wird in Bezug auf die erreichten FPS.

Siehe eben auch den berühmten in Beitrag #2 zitierten Thread.
 
  • Gefällt mir
Reaktionen: th3o
  • Gefällt mir
Reaktionen: th3o
So, ich nochmal. Also ich habe jetzt mir mal zB bei Assetto Corsa alle CPU Threads im OSD anzeigen lassen und zu keinem Zeitpunkt geht die Auslastung über 80%. Bedeutet doch dass da immerhin noch 20% Luft wären, oder? Die GPU wird eh nicht voll ausgelastet (außer in Replays), aber scheinbar also auch nicht die CPU. Warum gibts dann nicht mehr Performance?
Komischerweise bekomme ich im Spielinternen Benchmarktest fps um 160, beim Selberspielen mit Gegnern im Bild 'nur' 90-120. Steigen tun die fps wenn kaum oder keine Gegner im Bild sind auf 150+
Es liegt also dann doch irgendeine CPU Limitierung vor denn soweit ich weiß wird die AI von der CPU berechnet.
 
Nochmal zur CPU: Wenn das Spiel mehrere Threads unterstützt, heißt dies nicht, dass alle gleich genutzt werden. Wenn ein Thread für die KI der Gegner genutzt wird und dieser am Limit läuft (Framedrops, wie bei Dir berichtet), dann limitiert dieser Thread deine FPS, auch wenn die anderen Threads (Engine, Soundberechnung, whatever) die CPU nicht zu 100 Prozent auslasten.
Resultat: CPU Limit, trotz Multithreadfähigkeit des Spiels und "nur" 80% Auslastung.
 
  • Gefällt mir
Reaktionen: .Sentinel.
Zurück
Oben