Gern über alles, was du mir zu erzählen hast.
Die Frage ist halt ob ichs hinterher nicht trotzdem ganz anders beurteile als du.
Ist ja auch nicht so als ob ich gar nichts über HSA usw. wüsste.
Ich bin halt etwas vorischtiger bezüglich Vorschuss Lorbeeren geworden.
Am liebsten fange ich mit C.I an. (GCN2)
Laut vgleaks, welche gehackte Dokumente haben, wird die PS4 GCN2 besitzen, welche auch notwendig ist für einen gemeinsamen Adressraum, den Sony schon bestätigt hat.
AMD hatte mal eine PDF hochgeladen bezüglich C.I, wo die primären Unterschiede erläutert wurden, genau das gleiche findet sich auch bei den gehackten Dokumenten.
GCN1 hat z.B. 2 ACEs (Asynchron Compute Engines, welche weniger Queues zur Verfügung stellen können, als eine ACE von GCN2).
Jeder davon, Cape Verde, Pitcairn, Tahiti.
Soweit ich das ganze Prinzip verstanden habe, erstellt der Command-Processor eine Arbeitsschlange die jeglichen Code beinhalten kann, sei es für das Rendering oder für das Computing.
Kommt Computing-Code zum Einsatz müssen die Grafik-Workloads solange warten, bis es fertig berechnet wurde.
Ich habe aber keine Ahnung, wie dynamisch das abläuft und wie der Codemix dann genau vom Command-Processor an die Shader-Arrays verteilt wird.
Die ACEs können allerdings unabhängig davon Work-Groups für Compute-Shader erstellen, womit es getrennte Queues bei der Code-Ausführung gibt.
Somit würde es keine Pausen oder Konflikte geben.
Nvidia hat bei HyperQ paar Folien zu der Auslastung der ALUs gezeigt, wenn es mehrere Kommandoschlangen gibt (Hat nur der Titan bisher):
http://www.pcgameshardware.de/Grafik...per-Q-1020669/
Bei Nvidia soll das aber automatisch ablaufen, solange man das neuste CUDA-Framework installiert hat.
Ich habe auch hier keine Ahnung, ob es dort Beschränkungen gibt und ob Nvidia damit jetzt meint das es wirklich vollautomatisch abläuft und wenn ja, gilt das auch für Spiele?
Die ACEs bei GCN müssen aber extra programmiert werden, wobei es hier allerdings bisher keine API gibt, um sie direkt programmieren zu können.
Eine OpgenGL Extension soll es geben, die nicht so richtig funktioniert oder mit kleinerem Funktionsumfang.
Da AMD bei C.I. die ACEs mächtig aufpumpt, kann man wohl davon ausgehen das OpenCL wenigstens bald die Möglichkeit bekommen sollte die ACEs ansprechen zu können.
HSA:
Da verlinke ich einfach mal eine Erklärung die ich mal im 4P geschrieben habe:
4Players.de Forum • Thema anzeigen - PlayStation 4: Was werkelt unter der Haube?
Eine nette englische PDF zu dem ganzen Konzept:
http://developer.amd.com/wordpress/media/2012/10/hsa10.pdf
Es sind halt einfach die zusätzlichen Vorteile die so eine Umgebung hat und was GCN bietet.
Man kann Computing in der gleichen Sprache erledigen, OpenCL oder C++, dass ist deutlich angenehmer für einen Programmierer.
Zweitens gibt es keine getrennten Adressräume mehr, die GPU versteht x86 Memory-Pointer, damit kann an Adressen sofort auslesen und muss sie nicht über einen Bus kopieren.
Das frisst Performance, erhöht die Latenzen, verbrauch einiges an Strom und ist einfach insgesamt ineffizienter.
Hier ein weiteres PDF von AMD.
APU vs. PC bei dem Data-Transfer Overhead:
http://synergy.cs.vt.edu/pubs/papers/daga-saahpc11-apu-efficacy.pdf
Faktor zwei und mehr und das war bei der ersten APU die AMD hatte.
Die PS4 und Kaveri sind noch einmal deutlich weiter.
Sorry, wenn das gerade nur kurze Anmerkungen und Links sind, aber noch einmal das ganze aufzuschreiben, ist mir zu umfangreich.