Wie nutzen Spiele den Computer so effizient wie möglich?
Hallo!
Ich habe zum Thema im Titel so einiges im Internet gefunden, bin mir aber nicht sicher, was davon stimmt und wie genau es funktioniert. Hier ist, was ich gefunden habe (quellen habe ich keine, mache das ausm kopf):
- die CPU ist ein Prozessor mit wenig, aber starken Cores (Übersetzung / Definition willkommen 😁)
- Die GPU ist ein Prozessor mit vielen nicht ganz so starken cores
- Deshalb sind CPUs in spielen besser für Berechnungen (KI eines Zombies, z.B.)
- Und GPUs sind deshalb gut für graphisches, da die Arbeiten eher verteilt werden können und nicht so rechenaufwendig sind
- Die CPU gibt der GPU Informationen, was gezeichnet werden muss. Also z.B. "Rechteck von (0 | 0) zu (10 | 10)" oder "Kreis bei (20 | 20) mit Radius 10". Dann berechnet die GPU mit ihren vielen Cores auf einmal welche Pixel welche Farbe haben sollen und schickt diese Daten zum Bildschirm.
Jetzt würde ich gerne wissen, was davon richtig ist und inwiefern der rest falsch ist.
Ich brauche diese Informationen, um selbst ein gutes Spiel zu machen, also bitte möglichst keine übergroßen Vereinfachungen...
Wenn noch irgedwer irgendwas weiß, wie man sonst noch Hardware ausnutzen kann, ich kanns gebrauchen 😀
Danke im Voraus! LG
3 Antworten
Da sind noch nicht so viele Antworten da – da hab ich mir gedacht, ich werfe das mal so rein, wie ich einem meiner AzuBi erklären würde.
Das Thema ist nicht so kompliziert, aber extrem komplex.
Frage zuerst: CPU / FPU / GPU – was ist das – sind doch alles Prozessoren. Was soll das mit den Cores? Ist da einer stärker / schwächer?
Was ist innen in einem Prozessor?
- ziemlich einfach (aber klitzklein): Halbleiter / Transistoren. So wie die angeordnet und verschaltet sind, legt man an bestimmten PINs Spannung an und kann an anderen PINs das Ergebnis ablesen. Daher sind CPU / GPU / FPU Prozessoren. Das passiert immer wieder und wird vom Motherboard (wo auch immer) angeregt – das ist der Takt. Bedeutet: Ein Takt, dann läuft Strom und am anderen Ende des Prozessors kommt unter Umständen ein Ergebnis raus. So einfach sind Prozessoren.
Die Cores ergeben sich daraus, dass man in einem Gehäuse (das Bauteil) mehrere dieser Prozessoren reingebaut hat. (Hyperthreading lasse ich mal raus).
Warum nehme ich für einen Computer denn nicht lieber mehrere GPU mit etlichen hundert Cores statt einige CPU-Cores und brauche dann auch noch GPU dazu?
Antwort:
- stärker / schwächer ist keiner, aber anders
- guck mal in Google und suche nach dem „von Neumann-Rechner“ und der „Turing-Maschiene“. Das ist bei uns der Einstieg in den ersten Tagen in die Prozessor-Technik.
Die CPU ist eine Turing-Maschine/von_Neumann-Rechner. Der ist dazu gebaut, nacheinander bestimmte Bits/Bytes aus dem Speicher zu holen im Zyklus Fetch-Decode-Execute-Store, den Befehl zu dekodieren und die Ergebnisse zurückzuschreiben. Die kann aber deshalb auch ein Programm (!) ausführen.
Eine GPU / FPU braucht genau die Angabe, was die Ausgangswerte sind und kann furchtbar schnell daraus irgendein komplexes Ergebnis berechnen. Mehr aber nicht.
Das Bild: stell dir ein Reisfeld vor. Du hast ein paar Aufseher (jeder ist ein CPU-Core), die vorgeben, was zu machen ist. Die kennen den Weg und passen auf und treiben an.
Auf dem Feld sind aber ein paar hundert Arbeiter. Die sind nicht schlau, beherrschen aber ihre Arbeit ganz genau und schnell. Jeder ist ein FPU-Core. Jeder kann ganz komplizierte Berechnungen, aber die Schuhe kann er sich nicht zubinden – dazu braucht er einen CPU-Core, der das macht. Stell dir mal vor, jeder hat einen Taschenrechner. Die Berechnungen, die er machen kann, sind aber nur ganz komplizierte grafische Berechnungen.
Jetzt läuft das Programm:
- die Aufseher gehen zu jedem der Arbeiter und sagen denen, was sie in ihren Taschenrechner eingeben müssen (dazu gibt es in bestimmten Compiler-Bibliotheken extra Routinen). Das macht also die CPU mit ihren Cores.
- dann kommt der nächste Takt – jeder der Arbeiter drückt die Taste und die Berechnung ist fertig (weil er das so schnell kann). Das ist die GPU.
- das Ergebnis kann im RAM oder im Video-RAM oder irgendwo abgelegt werden.
Bedeutet: GPU ohne CPU geht gar nicht. CPU ohne FPU geht, braucht aber viel länger.
Naja, auf der minimalsten Grundlage funktioniert unser Gehirn genauso.
Unser Gehirn arbeitet noch etwas komplexer, das Lernen ist ein biologischer Prozess, es gibt keinen klar definierten Input und Output und neben den elektrischen Signalen spielen auch chemische Signale eine große Rolle, aber am Ende geht es nur darum: Soll das Signal weitergeleitet werden, oder nicht?
Dennoch bin ich auch der Meinung: KI ist noch sehr weit davon entfernt, uns wirklich gefährlich zu werden. Auch glaube ich nicht, dass das mit der derzeitigen Technologie jemals möglich sein wird, aber dass es in dem Bereich nochmal einen Durchbruch geben wird, da bin ich mir sicher.
Die Kerne der CPU bzw. GPU sind nicht "stark" bzw. "schwach".
Die Kerne der CPU sind "Allrounder", sie können sehr viel sehr flexibel, davon aber nichts so richtig gut. Da die CPU so viel können muss, sind die Kerne auch größer, man kann also nicht so viele verbauen.
Die Kerne der GPU sind auf einige wenige Berechnungsarten (z.B. Fließkommaoperationen) optimiert, sie können sehr wenig, aber was sie können, das können sie extrem gut. Außerdem sind die Kerne durch die wenigen Operationen sehr viel kleiner, weshalb man sehr viele davon einbauen kann - passt ja, da man auch die Berechnungen gut parallelisieren kann.
Die GPU übernimmt also Grafikberechnungen, weil dafür größtenteils Fließkommaoperationen nötig sind und die GPU da sehr stark ist.
Die CPU übernimmt alles andere, insbesondere die gesamten Spiel-Logiken, die sich von Spiel zu Spiel und anderen Programmen so stark unterscheidet und aus so vielen verschiedenen Operationen bestehen, also perfekt für die CPU, die mit ihrer Flexibilität punkten kann. Und ja, die CPU "füttert" die GPU mit Daten, was gezeichnet werden soll, da es sich erst aus den Spiel-Logiken ergibt.
Genauso sind auch GPUs auch für KIs sehr nützlich, da die auch größtenteils mit Fließkommaoperationen arbeiten, perfekt für die GPU, wärhrend die CPU massiv zurückhängt.
Die CPU kann das alles auch, allerdings ist sie dabei viel langsamer. Hab ich mal mit Whisper von OpenAI mit einer 8 Stunden Aufnahme von einem KickOff-Meeting probiert. Ein Kollege hat's auf der GPU zum Laufen gebracht, war nach wenigen Stunden durch. Auf meiner durchaus sehr starken CPU hatte es nach einigen Stunden erst ein paar Prozent erreicht und ist dann wegen irgendeinem Fehler abgeschmiert. Die paar Prozent waren aber top, ich konnte nahezu perfekt lesen, was in der Aufnahme gesagt wurde, die CPU war nur extrem ineffizient dabei.
By the way rechnet die GPU nicht nur platt mit Pixeln, da passiert noch einiges mehr, z.B. um so Details zu behandeln, was vor oder hinter einem Objekt ist.
Ich brauche diese Informationen, um selbst ein gutes Spiel zu machen
Wenn es dir darum geht, ein gutes Spiel zu entwickeln, dann solltest Du ...
- nicht hier fragen, hier wirst Du kaum bis keine wirklichen Experten finden, dafür muss Du dir ein entsprechend spezialisiertes Forum suchen.
- eine bestehende Game-Engine (z.B. Unreal) verwenden, die das ganze schon sehr umfassend implementiert, abstrahiert und sehr gut optimiert hat.
Wenn es dir im den Lerneffekt geht, solltest Du dich 1. davon verabschieden, dass das Spiel hinterher was taugt und 2. nicht mit dem Ziel starten, ein gutes Spiel zu entwickeln. Die Thematik, was alles im Hintergrund in so einem Spiel passiert, ist enorm komplex, fang nicht mit dem Ziel an, eine Raumstation zu bauen, starte lieber mit einem kleinen Vogelhäuschen, um die Basics zu lernen. Und ja, die Relation ist Absicht ;)
Es geht mir nicht prinzipiell um den Lerneffekt, ich möchte nur ein Spiel haben, das das system gut ausnutzt. Ich kann aber gerade nicht programmieren (Arm gebrochen) und wollte mich deshalb erstmal erkundigen wie genau das alles funktioniert. Trotzdem danke für die Antwort!
Das ist soweit korrekt.
Wichtig ist, dass das Spiel möglichst viele CPU Kerne nutzen kann, sonst verschwendet man viel Potenzial.
Nachtrag zur KI - Sorry, kann ich mir nicht verkneifen
Was ist innen im Prozessor (CPU): im Prinzip drei (!) Grundschaltungen: AND, OR und NOT. Nicht mehr - keine KI - nix.
KI sind pfiffige Algorithmen, die auch in gewissem Rahmen lernfähig sind (kommt auf die Programmierung an). Deshalb triggern mich einfach die Aussagen: wenn die KI die Welt übernimmt und schlauer wird als der Mensch.
Das wird nix - das sind einfach Berechnungsalgorithmen, die ein Mensch programmiert hat bestehend aus den Schaltungen AND / OR / NOT.
Da kannst du mal unter "Eliza" googeln - das gab es schon vor meiner Zeit (>30 Jahre).