PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum immer 100% Cpu Auslastung beim Zocken mit SingleCore?


Ph0b0ss
2007-04-21, 18:02:30
Warum hat man immer 100% Cpu Auslastung mit einem SingleCore beim Zocken, auch wenn man schon total GPU-limitiert ist?

Und Warum ist es bei einem DualCore (bei zumindest einem der beiden Cores) nicht auch so?:|

Wuge
2007-04-21, 18:07:37
Weil die meißten Spiele nur einen Kern nutzen können. Wo nur eine Aufgabe (Thread) vorhanden ist, können keine zwei CPUs (oder Cores) gleichzeitig belastet werden.

PatkIllA
2007-04-21, 18:17:35
Wieviele Spiele hast du denn getestet? Es gibt durchaus Spiele die nicht 100% ausnutzen, wenn die Graka zu langsam ist.

Ph0b0ss
2007-04-21, 18:31:38
Wieviele Spiele hast du denn getestet? Es gibt durchaus Spiele die nicht 100% ausnutzen, wenn die Graka zu langsam ist.

Bei STALKER z.B., selbst auf 2048x1536 alles High bei ~10fps (7800GT) immer 100% CPU Auslastung. Auch z.B. bei rthdribl hab ich immer 100% Auslastung, egal ob auf 640x480 oder auf 1600x1200. Die FPS brechen zwar auf unter 1/4 dabei ein, aber trotzdem immer 100% CPU.

Edit: Selbst Tomb Raider 3 erzeugt durchgehend 100% und das kappt die FPS sogar noch bei 30fps!

Wuge
2007-04-21, 18:56:30
Ich kenne auch kein Spiel, das weniger als 100% Auslastung auf mindestens einer CPU erzeugt.

Sonyfreak
2007-04-21, 19:01:17
Das ist mir auch schon aufgefallen. Egal wie schnell eine CPU ist, im Taskmanager wird als Auslastung immer 100% angezeigt, was ja irgendwie nicht sein kann, wenn das Spiel schon auf nem halb so schnellen Prozessor problemlos läuft.

mfg.

Sonyfreak

Ganon
2007-04-21, 19:07:13
Ich kenne jetzt das allgemeine Vorgehen unter Windows nicht, aber afaik liegt das daran das die Spiele versuchen so viele Frames zu rendern wie nur irgend möglich. Entsprechend rasen die internen Spielschleifen, wie bekloppt durch den Programmcode. Ergo 99% CPU-last.

Wenn dann müsste man intern die Berechnungsläufe beschränken, was natürlich bedeuten würde das man halt nur max. 100 fps bekommt, wenn man alles nur alle 0,01 Sekunden die Szene aktualisiert.

Ist zumindest bei mir unter OS X und meinem kleinen "Spiel" so :D

Ohne Bremse > ca. 500 fps und 99% Last
Mit Bremse > 100fps und 15% Last

Demirug
2007-04-21, 19:08:05
Ist die CPU schneller verbrät man die „überschüssige“ Zeit damit auf die GPU zu warten. Genauer gesagt wird dann ständig geprüft ob wieder Platz im Prerender Buffer ist. Man könnte das auch durchaus so machen das die CPU dabei nicht mit 100% läuft allerdings verliert man dadurch dann etwas Spielleistung.

Sonyfreak
2007-04-21, 19:13:51
Aha das erklärt die ganze Geschichte natürlich. Und wieder bin ich ein kleines Stückchen schlauer. Danke euch beiden. :smile:

mfg.

Sonyfreak

Ph0b0ss
2007-04-21, 19:19:02
Ist die CPU schneller verbrät man die „überschüssige“ Zeit damit auf die GPU zu warten. Genauer gesagt wird dann ständig geprüft ob wieder Platz im Prerender Buffer ist. Man könnte das auch durchaus so machen das die CPU dabei nicht mit 100% läuft allerdings verliert man dadurch dann etwas Spielleistung.

Müsste dann nicht auch bei einer DualCore Cpu zumindest ein Kern immer auf 100% Last sein?

Das dies ja nicht so ist sieht man z.B. an den ganzen Screenshots aus diesem Thread:

http://www.forum-3dcenter.org/vbulletin/showthread.php?t=298823

Schimi1983
2007-04-21, 19:27:54
ohne jetzt auf die Screenshots zu gucken:

bei Dualcore würde dann eine Auslastung von 50% angezeigt da windows die 100% durch zwei (dualcore) teilt

Demirug
2007-04-21, 19:28:55
Nur wenn das Spiel den entsprechenden Thread fest an einen Kern gebunden hat. Ansonsten wandert dieser ständig zwischen den Kernen hin und her.

ZipKaffee
2007-04-21, 23:08:24
Nur wenn das Spiel den entsprechenden Thread fest an einen Kern gebunden hat. Ansonsten wandert dieser ständig zwischen den Kernen hin und her.

...das hin her switchen ist ja nur wegen der Wärmeverteilung oder?

Gast
2007-04-22, 12:18:27
...das hin her switchen ist ja nur wegen der Wärmeverteilung oder?

das switchen macht das OS, und jenes weist einem anstehenden prozess einfach den nächsten freien kern zu.

ZipKaffee
2007-04-22, 19:22:32
Ach hab gedacht da wer jetzt mehr dahinter:rolleyes:

Wuge
2007-04-22, 22:54:44
Aber nicht wahllos... Vista 64 Bit verteilt offensichtlich leider "der Reihe nach", d.h. erst auf CPU0 dann auf CPU1 u.s.w. Bei einem DC optimierten Spiel sieht das dann so aus:

CPU0: 60-80%
CPU1: 60-80%
CPU2: 20-30%
CPU3: 20-30%

Das schwankt natürlich sehr, aber die Tendenz ist eindeutig erkennbar. Kann natürlich auch sein, dass das in der Software so verankert ist.

Gast
2007-04-22, 22:58:22
Aber nicht wahllos... Vista 64 Bit verteilt offensichtlich leider "der Reihe nach", d.h. erst auf CPU0 dann auf CPU1 u.s.w. Bei einem DC optimierten Spiel sieht das dann so aus:

CPU0: 60-80%
CPU1: 60-80%
CPU2: 20-30%
CPU3: 20-30%

Das schwankt natürlich sehr, aber die Tendenz ist eindeutig erkennbar. Kann natürlich auch sein, dass das in der Software so verankert ist.
Warum leider? Was ist daran schlimm?

Gast
2007-04-23, 08:32:18
Ich denke das hat System und ist sogar relativ sinnvoll.

Wenn die anderen Kerne immer brach liegen würden, so könnte man auch keinerlei Vorteile aus deren Caches ziehen.

Der K10 von AMD soll ja 4x512 KB2 L2 und 2 MB L3 Cache haben.
Würde man nun nur zwei Kerne nutzen, so würden 2x512 KB gar nicht zur geltung kommen - es geht Performance verloren.

Für die Temperatur könnte es auch Vorteile haben, aber das müsste ein Experte mal klären...
Vielleicht ist es so, das mehrere Kerne mit geringer Auslastung eine geringere Abwärme produzieren, als zwei von 4 Kerne auf Volllast...

Wuge
2007-04-23, 17:31:56
Schlimm ist dabei, dass CPU0 und CPU1 sowie CPU2 und CPU3 von einem Kern bedient werden (2 physikalische Kerne bilden 4 logische ab). Ich denke, das ist auch der Grund, weshalb Intel bei den Pentium-Ds HT deaktiviert hat.

Laz-Y
2007-04-23, 17:33:39
Ich kenne auch kein Spiel, das weniger als 100% Auslastung auf mindestens einer CPU erzeugt.

Bei farcry jedenfalls nicht mit winXP 32bit

Gast
2007-04-23, 19:55:35
diabloII auch net ;)

Gast
2007-04-30, 20:32:16
Kommt auf das Programm an. Ich kann dir ein kleines Programm schreiben, dass 2x2 rechnet und die CPU trotzdem fiktiv zu 100% auslastet. Real bleiben natürlich SSE- und sonstige Einheiten unbenutzt. Trotzdem wird die CPU 99,9% ihrer Zeit damit verbringen, immer wieder 2x2 zu berechnen.

Gast
2007-05-01, 11:18:58
Das mit der 100% Auslastung ist einfach nur schlecht programmiert. Dass dabei mehr Leistung im Spiel herausgeholt wird, halte ich erst einmal für ein Gerücht. Und wenn es so wäre, dann hat man vielleicht einen Frame weniger.

Die Nachteile bei 100% Auslastung sind bekannt. Mehr Stromverbrauch und die Taskumschaltung ist auch schlecht, sofern man keine DC-CPU hat und das Spiel nur einen Kern nutzt.

Gast
2007-05-01, 20:02:51
Warum hat man immer 100% Cpu Auslastung mit einem SingleCore beim Zocken, auch wenn man schon total GPU-limitiert ist?

Weil ein 3d Spiel immer versucht die maximale Framerate zu ereichen (außer Doom 3, daß begrenzt bei 60 fps), daher gibt es auch keine Rechenleistung freiwillig an andere Prozesse ab.


Du könntest höchstens mal Doom 3 testen, ob das eine geringere CPU Last hat,
die anderen Spiele werden versuchen 180, 340 oder 1000 fps zu erreichen,
deswegen läuft die CPU immer auf 100 %.

C.D.B.
2007-05-01, 23:46:53
Also, X³ als auch NfS-HP2 lasten meinen P4 nicht zu 100% aus! :lol:

Gast
2007-05-01, 23:50:45
Also, X³ als auch NfS-HP2 lasten meinen P4 nicht zu 100% aus! :lol:

Der P4 kann ja auch Hyperthreading was so gut wie 2 Kernen entspricht. :lol:

Coda
2007-05-01, 23:54:18
Es entspricht zumindest zwei Kernen was die Lastanzeige angeht. Dürfte also bei 50% Userspace sein.