Playstation 4: Naughty Dog erklärt Programmierbesonderheiten der Konsole
Auf der Semana Informática in Portugal hat Sonys Entwicklerstudio Naughty Dog eine interessante Präsentation zur Playstation-4-Hardware gegeben. Dabei werden die Besonderheiten der Programmierung und damit einhergehend der Optimierung näher erläutert. Die komplette Präsentation geht knapp eine Stunde lang und ist durchaus einen Blick wert.
In den vergangenen Monaten hat Sony immer wieder den einen oder anderen Einblick in die Playstation 4 gewährt, beispielsweise zum Kühldesign oder der Stromzufuhr. Nun hat die Spielschmiede Naughty Dogs, die seit 2001 zu Sony Computer Entertainment gehört und exklusiv für die Playstation-Plattformen entwickelt, auf der portugiesischen Semana Informática einen näheren Einblick in die Programmierebene gewährt. Die Messe hat eine Aufzeichnung der Vorstellung auf Youtube hochgeladen, das Video haben wir unten für Sie eingebettet. Die Präsentation ist dabei in Englisch gehalten und dürfte vor allem für diejenigen interessant sein, die sich mit den Fachbegriffen in der Programmierung auskennen.
Quelle: Dualshockers.com
Playstation 4: Naughty Dog erklärt Programmierbesonderheiten der Konsole erklärt (5)
Bekanntlich setzen Sony wie auch Microsoft auf eine AMD-APU mit acht Jaguar-Kernen, die praktisch in zwei Clustern untergebracht sind. Beide Vierkerner teilen sich dabei den Arbeits- sowie Videospeicher in Form der 8 GiByte GDDR5, besitzen allerdings einen eigenen L2-Cache. Interessanterweise wird dieser von Naughty Dog auf je 1 MiByte beziffert, obwohl es eigentlich die doppelte Menge sein sollte. In Sachen L1 besitzt jeder einzelne der acht Rechenkerne je 32 KiByte Instruction- sowie Data-Cache.
Von den 8 GiByte GDDDR5 ("Main RAM") werden insgesamt 5 für Spiele genutzt, wobei dieser mit über 200 benötigten CPU-Taktzyklen noch ziemlich langsam unterwegs ist. Der L2-Cache kommt hingegen auf nur 26 Zyklen, sofern ein Vierkerner seinen eigenen Zwischenspeicher anspricht. Geht man bei der Cache-Zuteilung den Umweg über den Zwischenspeicher des jeweils anderen Vierkern-Clusters, wird mit 190 Zyklen deutlich mehr Zeit beansprucht. Außerdem bemühen sich die Entwickler, den "High-Performance-Code" in den L1-Cache zu "stopfen", der lediglich drei Taktzyklen in Anspruch nimmt.
Darüber hinaus werden sechs der acht Jaguar-Kerne für Spiele genutzt, wobei auf dem ersten der "Main Game Loop" läuft, was entfernt mit dem Main-Thread bei DirectX vergleichbar ist. Naughty Dog orientiert sich derweil an der "80/20"-Regel, die besagt, dass 80 Prozent der gesamten Zeit 20 Prozent des Codes laufen sollte. Deshalb werden genau diese 20 Prozent des Codes besonders optimiert, da das Resultat so am performantesten werde.
Quelle: via Dualshockers.com

Irgendwie ist es schon vorstellbar, wie gut sich auf eine feste Hardware optimieren lässt. Mit einer Low Level API und Know How über die Hardware lässt sich sicher einiges rausholen. Wenn man bedenkt, wie viele CPUs für PC mit unterschiedlichsten Cache Architekturen auf den Markt sind ist es ja kaum möglich zu optimieren. Das könnte erklären warum einer recht brauchbaren GPU ein doch recht schwacher Prozessor zur Seite steht.
Dass 3Gb für das System reserviert sind, finde ich noch immer übertrieben. Vielleicht wären 1,5 (vielleicht auch 2) GB noch vertretbar. Die Videos von der Share Funktion sind ja nicht mal 1GB groß.
Mal sehen vielleicht können ja irgendwann mal alle 8 (oder 7) CPU-Kerne für Spiele genutzt werden, schließlich könnten Hintergrund Prozesse wie Musikwiedergabe oder Internetbrowser genauso gut von der zusätzlich verbauten ARM-CPU ausgeführt werden.
zudemmuss man bedenken, unheimlich viele Dinge laufen auf unseren PCs auch auf den einzelnen Kernen. Vielleicht wäre es auch da effizienter die ganzen OS Prozesse auf reservierte Kerne zu verlagern und für Spiele komplett freie Kerne zur Verfügung zu haben. Allein bei Battlefield 3 und 4 muss man einen Browser aufhaben. Und ich finde es erschreckend, wie viel Speicher und CPU Last sich zb. ein Google Chrome Fensterchen gönnt, wenn ein bischen Logik oder gar Flash in der Seite enthalten ist.
Aber mal sehen was die Zukunft so bringt.
Bei den Benchmarks würde ich mich fragen, wie das Ding benched.
Die Ergebnisse machen natürlich keinen Sinn, ausgehend von der Hardware, liegt dann vielleicht am OS oder anderen Software-Teilen wieso die PS4 dort etwas besser abschneidet.
Ich denke der GDDR5 Speicher der PS4 ist in den Benchmarks ausschlaggebend. Das bischen mehr Takt der Xbox scheint das selbst für einen CPU Benchmark nicht kompensieren zu können. Aber vielleicht liege ich auch falsch. Vielleicht ist auch der Cache der Xbox CPU langsamer, oder irgendeine andere architektonische Sache verlangsamt den benchmark.
Viel kritischer finde ich eh die deutlich geringere Rechenleistung der GPU.
bye
Spinal
Kein Turbo-Quatsch für die PS4.
Bei den Benchmarks würde ich mich fragen, wie das Ding benched.
Die Ergebnisse machen natürlich keinen Sinn, ausgehend von der Hardware, liegt dann vielleicht am OS oder anderen Software-Teilen wieso die PS4 dort etwas besser abschneidet.
Ach und die ps4 cpu soll turbocore unterstützen aber zb nur wenn 4cores verwendet werden taktet die cpu auf 2ghz zb. Besonders für indis gut die nicht auf 6 threads unbedingt proggen wollen bzw nicht können .
Allerdings in den cpu benchmarks war ps4 immer gleich wenn nicht sogar vor x1
Wodran mag das liegen ? Beide 6 cores @ 1,6 / 1,75 ghz
In CPU Benchmarks werden vllt auch die reservierten Cores beansprucht. Anders kann man das nicht erklären. Oder der Benchmark war nur auf 6 Cores ausgelegt.
Ach und die ps4 cpu soll turbocore unterstützen aber zb nur wenn 4cores verwendet werden taktet die cpu auf 2ghz zb. Besonders für indis gut die nicht auf 6 threads unbedingt proggen wollen bzw nicht können .
Allerdings in den cpu benchmarks war ps4 immer gleich wenn nicht sogar vor x1
Wodran mag das liegen ? Beide 6 cores @ 1,6 / 1,75 ghz