greenelve hat geschrieben:Also hat die WiiU das nicht in einem gemeinsamen
Adressraum und auch nur eventuell in Verbindung mit einer APU? Denn damals war GPGPU reguläre Technik. Muss ja seinen Grund haben warum es hier der Renner schlechthin sein könnte.
Ich erkläre es dir mal so oder versuche es zu verbildlichen:
Klassischer PC:
http://cdn.arstechnica.net/hardware/p55-system.gif
Das Problem bei GPGPU auf dem PC ist, wenn immer die CPU und GPU sich austauschen müssen und Daten kopieren, wird das durch den PCIE-Link geschleust und das bedeutet 16 GB/s in eine Richtung oder wenn das parallel geschieht (CPU verschickt und GPU auch), wie in dem Fall eher anzunehmen mit beinahe 32GB/s.
Dazu kommen aber noch hohe Latenzen, also der Zugriff dauert, man muss trotz hoher Bandbreite etwas warten.
Wenn man jetzt viele Daten ständig austauschen muss, was eben bei interaktiver Physik passiert, wie die GPU berechnet jetzt Nebel, jetzt braucht die CPU die Nebeldaten, um diese dann mit dem K.I Algorithmus zu vermischen usw. , dann müssen ständig Daten hin und her und man hat ständig hohe Latenzen und die Bandbreite erweckt schnell einen mickrigen Eindruck.
AMD hat paar Tests mit ihren APUs und GPUs gemacht, da wurde z.B. getestet, wie lange es dauert bis ein Ergebnis da ist und wie viel % davon für die Berechnung veranschlagt werden kann und wie viel für den Transfer an die CPU.
Das war Faktor 2-4 schlechter bei dem klassischem System gegenüber der APU.
Besonders für GPGPU wo häufig ein Austausch stattfinden muss könnte das noch übler aussehen.
Das Problem ist einfach, es macht aus Performance-Sicht keinen Sinn GPGPU auf der GPU zu betreiben, wenn es länger dauert bis das Ergebnis da ist, als die Berechnung an sich selber.
Deshalb gibt es am PC auch kein Gameplay-Physik, obwohl die Hardware an sich stark genug wäre.
Effect-Physik ist kein Problem, die CPU braucht die Daten nicht, da wird einfach nur das Bild rausgespuckt, weil das ja "nur" ein Aufsatz ist.
Zum Festhalten, sind Daten abhängig von einander, müssen diese Daten bei der CPU und GPU bereitliegen, um da etwas verändern zu können, wird etwas verändert, muss kopiert werden damit die CPU und GPU Bescheid weiß, was aktuell ist und damit die mit den aktuellen Daten weiter rechnen kann.
Die Daten werden dann vom VRAM zu RAM oder andersherum kopiert, über PCIE.
Relativ geringe Bandbreite, relativ hohe Latenzen.
Jetzt zur Wiiu:
http://www.notenoughshaders.com/wp-cont ... iagram.jpg
So wird das wahrscheinlich auch aussehen.
Die Vorteile der Wiiu gegenüber dem normalen PC ist, dass die GPU und die CPU auf einem Package sind, das bedeutet sie sind ziemlich eng einander und die Latenzen bei der Kommunikation sind gering und die Bandbreite könnte auch hoch sein, allerdings gibt es dazu keine Daten, aber das die Latenz deutlich geringer ist kann man dir garantieren.
Die Wiiu hat keinen gemeinsamen
Adressraum, dass bedeutet es müssen ebenso wie auf dem PC Daten ständig kopiert werden.
Das geschieht bei der Wiiu aber ein gutes Stück besser, als auf dem PC.
Nämlich so wie bei einer APU:
Es gibt nur einen gemeinsamen Speicher und die CPU und GPU reservieren sich einen gewissen Teil dieses Speichers für sich und kopieren dann ihre Daten innerhalb vom Speicher in den reservierten Bereich der CPU oder GPU.
Das führt natürlich ebenfalls zu besseren Latenzen, wenn Daten im Speicher bewegt werden, anstatt kopiert und über einem Bus in einen anderen Speicherpool geschrieben.
Die Daten müssen so deutlich weniger bewegt werden und das Kopieren ist nicht so schrecklich wie auf dem PC.
Jetzt zu einer APU:
http://www.abload.de/img/slide-33-102489int.jpg
Hier bitte nur Llano und Trinity links beachten.
Das ganze ist ähnlich wie die Wiiu aufgebaut, es gibt einen gemeinsamen Speicher, die Latenzen sind geringer.
Bei der physikalischen Implantation geht das aber ein Schritt noch weiter, CPU und GPU sind auf einem
die (Würfel/Chip), die Latenzen sind hier noch einmal besser, als auf einem Package wie bei der Wiiu.
Die Interkommunikation kann hier also schneller ablaufen, gleichzeitig ist es möglich noch mehr bei der Northbridge zu machen, die die ganzen Anfragen bei beiden managt.
Man könnte z.B. gewisse Daten die im Cache liegen direkt zur GPU oder zur CPU schicken, falls das Sinn machen würde.
Geht auch bei der Xbox 360 und die war wie die Wiiu aufgebaut, die Wiiu könnte ähnliche Tricks haben.
Auf einer APU sind die Chips aber direkt nebeneinander, was uns wieder zu besseren Latenzen führt.
Jetzt gibt es ein technisches Level darüber, ein
gemeinsamer Adressraum und einen coherent unified memory.
Hier muss nicht mehr extra für die CPU und GPU adressiert werden, sondern beide Einheiten blicken was der andere macht und können in Datenveränderungen sofort einsehen.
Man muss auch keine/deutlich weniger Daten kopieren oder versenden.
Man muss praktisch nur warten bis die CPU und GPU fertig gerechnet haben und dann kann man sofort mit den aktualisierten Daten weiter rechnen.
Man muss das jetzt nicht von einer Portion zur nächsten Portion kopieren und dann wieder zurück.
Die Frage die sich stellt ist eben, erreicht die PS4 dieses Level oder bleibt es "nur" bei einer APU wie sie Trinity z.B. eine ist?
Die nächste Frage lautet natürlich auch, ab wann macht GPGPU Sinn?
Auf einem PC? Kann man häufig verneinen.
Auf einer APU ohne gemeinsamen
Adressraum?
Möglich in einem deutlich breiterem Anwendungswelt, da hier das Zeug deutlich schneller ablaufen kann.
Mit einer APU mit gemeinsamen
Adressraum? Hell give me this shit.
Bei der Wiiu kann man den Sinn dagegen auch eher verneinen.
1. Der Chip ist kein Monster und ist mit dem 3D-Rendering schon gut genug ausgelastet.
Für simple games könnte man es versuchen, wer Lust dazu hat.
2. Die Latenzen sind etwas höher bei der CPU und GPU Kommunikation.
3. Das ganze Design ist so klein und süß, dass Ding hat da jetzt auch keine fetten Verbindungen untereinander oder zu etwas.
4. Die GPU ist ein gutes Stück älter.
GCN ist beim Thema Computing deutlich stärker aufgestellt, als es die VLIW GPU der Wiiu ist.
Das fängt bei den Caches an, bei der Zwischenspeicherung von Ergebnissen, bei den Bandbreiten, bei der Datenstruktur, bei der Unabhängigkeit zur CPU und bei sehr vielen weiteren Möglichkeiten.