Mal für mich als Technik-Laie ein simples Beispiel:
Nehmen wir an 2 Kollegen (nennen wir sie CPU und GPU ;-)) müssen eine Aufgabe als Team erledigen. Bis die Aufgabe finalisiert ist, müssen sie Zwischenschritte (sagen wir 2) gemeinsam erreicht haben, um mit dem nächsten Schritt weiter machen zu können.
Ohne GPGPU:
Kollege CPU braucht für Schritt 1 50 Minuten
Kollege GPU braucht für Schritt 1 40 Minuten
Finalisierung Schritt 1 nach 50 Minuten
Kollege CPU braucht für Schritt 2 70 Minuten
Kollege GPU braucht für Schritt 2 90 Minuten
Finalisierung Schritt 2 nach 50+90=140 Minuten
Mit GPGPU:
Kollege CPU braucht für Schritt 1 45 Minuten
Kollege GPU braucht für Schritt 1 45 Minuten ("Freie Zeit" ab 40 Minuten wird genutzt um Kollegen zu helfen)
Finalisierung Schritt 1 nach 55 Minuten
Kollege CPU braucht für Schritt 2 80 Minuten ("Freie Zeit" ab 70 Minuten wird genutzt um Kollegen zu helfen)
Kollege GPU braucht für Schritt 2 80 Minuten
Finalisierung Schritt 2 nach 45+80=125 Minuten
Kommt das ungefähr vom Prinzip her hin? oder Geht das nur wie in Schritt 1 (Dass quasi GPU der CPU hilft) und nicht wie in Schritt 2 umgekehrt?
Ich glaube ich weiß was du meinst und es geht in die Richtige Richtung.
Der Punkt ist, für die Berechnung von einen Frame hat man bei 30 Bilder/s 33ms Zeit, bei 60 sind es 16ms. In der Zeit muss also alles berechnet werden, was mit dem Spiel zu tun hat.
Jetzt gibt es Aufgabenpakete, bei denen die GPU zwingend die fertigen Daten der CPU benötigt. Gehen wir also einfach mal davon aus, die CPU benötigt bei einen 30fps Bild 15ms. Dann kann die GPU in der Theorie bei 16ms ansetzen und ihr bleiben noch 17ms dafür das Bild zu erzeugen. Umso CPU intensiver, umso weniger Zeit hat schlussendlich die GPU für das Bild. Es ist also nicht so, dass CPU und GPU völlig unabhängig voneinander agieren und die CPU nichts mit der Grafik zu tun hat. Sollte die CPU zu viel Zeit benötigen, muss man an GPU Rechenzeit sparen. Einfacher Weg dafür ist bsw. die Auflösung zu verringern.
Hier ist GPGPU eine Möglichkeit, gerade Berechnungen die eine massive Parallelität benötigen ( einfaches Beispiel viele Objekte ) können eine CPU stark fordern, eine GPU kann damit besser klar kommen. Heißt eine GPU benötigt für Aufgabe X weniger Zeit als die CPU. Resultat man hat Zeit gespart und somit mehr Zeit für das Bild eines Frames.
Das die Theorie.
Hinzu kommt noch, dass, wie ich schon schrieb, Sony das Balacing des Systems nicht ausgegleichen hat. Man hat also auf GPU Seite generell mehr ALU Leistung als man rein für Grafik nutzen könnte ( eigene Aussage von Sony ), dazu noch ACEs ( nennen wir es mal "Aufgabenverteiler" ) auf den Niveau einer r290x, diese sind dafür zuständig die Pipelines der GPU so optimal wie möglich mit GPGPU Tasks zu versorgen, mit so wenig Einfluss auf die normale Bildberechnung wie möglich.
Es ist also alles in allen nicht so, dass man mit GPGPU CPU Zeit für GPU Zeit opfert und man mit schlechterer Grafik bei Nutzung rechnen muss. Bei der Architektur von PS4 und auch One ist gar umgedrehtes möglich. Bei PS4 aber noch eine Ecke besser als bei der One