(Traduction d'un article de Gamasutra faite par Kensama de Gameblog, je pense qu'il n'y avait rien à touché alors j'ai laissé tel quel, bonne lecture
)
Je vous propose une retrospective sur la PS4 et sa conception et aussi une traduction qui date d'avil 2013.
Ceci est une traduction sur la genèse de la PS4 et son architecture.
Et qui de mieux placer que Mark Cerny lui même pour en parler? La discussion aborde pas mal de points techniques par moments.
La PlayStation 4 est prévue pour cet automne et ses spécificités techniques ont été très largement diffusées par parcelles jusqu’à maintenant. Alors que la compagnie (Sony) a fait une présentation à la GDC, l’architecte de la PS4 Mark Cerny n’a pas parlé publiquement et en détail de la console, depuis sa présentation en février dernier.
Cerny a donc approché Gamasutra dans l’espoir d’ “exposer sans tabou la PlayStation 4“, a-t-il dit durant l’interview qui en résulte dans cette histoire. “C’est pourquoi nous sommes là“ a dit Cerny, avant de parler à Gamasutra pour bien plus d’une heure.
Ce qui suit est une totale mise à nue du hardware vu par un développeur : les composants embarqués et ce qu’ils sont capable de faire.
Tout ce qui concerne l’OS et l’interface graphique ne seront pas évoqués. Tout ce qui est attenant à cette discussion sont les capacités de la machine et la réflexion que Cerny et son équipe ont eu afin de prendre les décisions qu’ils ont prise à propos des composants à choisir et comment ils travaillent ensemble.
Pour entrer au cœur de cette discussion pointue techniquement, Gamasutra a été assisté par quelqu’un avec des connaissances approfondies sur la façon dont un hardware console fonctionne: Mark DeLoura, ancien responsable de la technologie chez THQ et maintenant conseiller pour les médias numériques au bureau des sciences et technologies de la Maison Blanche.
Le commencement
Pour moi tout a commencé en 2007, raconte Cerny, se rappelant comment il s’est embarqué sur le chemin qui allait le mener à devenir l’architecte de la PS4. Alors que nous disséquions la PS3 un large nombre de personnes au sein de l’équipe Sony Computer Entertainment ont évalués ce qui s’était passé.
Ce qui a naturellement conduit à se demander quoi faire après. Méditant sur le prochain système de Sony, Cerny a passé ses vacances de Thanksgiving à la lecture de l’histoire de l’architecture X86 et de se rendre compte que non seulement elle avait évoluée considérablement au fil des années, mais qu’au moment d’équiper la PlayStation 4, elle serait assez puissante pour les besoins de Sony.
“Il a évolué vers quelque chose de largement utilisable par le genre de programmeurs pointus que l’on trouve dans le business du jeu vidéo”, Dit-il.
Réalisant la passion qu’il avait à propos du projet PlayStation 4, après Thanksgiving, Cerny alla voir Phil Harrison et Masa Chatani alors haut placé chez Sony, “Et je leur ai demandé si je pouvais diriger les effectifs de la prochaine génération. Et à ma grande surprise, ils ont répondu oui.”
"La chose la plus importante" sur la PlayStation 4
Cerny aborda la conception de la PlayStation 4 avec une mission plus importante que toutes autres : "La chose la plus importante était de ne pas créer un système casse-tête pour les développeurs afin qu’il ne perde pas de temps à le résoudre pour faire des titres de qualité."
La PlayStation 3 était vraiment puissante, mais son processeur CELL atypique a rebuté les développeurs. "Il y avait vraiment des performances énormes, mais pour en tirer réellement parti, les développeurs devaient étudier et apprendre la seule façon d’utiliser le hardware", déclara Cerny.
Cette situation conduisit alors directement la philosophie de la conception pour la PlayStation 4 : "la volonté avec la PS4 était d’avoir une architecture puissante, mais aussi qui serait familière à de nombreux égards".
En réalité, c’est quelque chose qui revient assez régulièrement dans la bouche de Cerny Durant notre conversation. "Nous voulions être sûr de faire un hardware facile à utiliser. Et avoir un CPU et un GPU familier rend finalement cela plus facile à utiliser," dit-il.
Plus tard alors que nous lui demandions comment Sony considère le fait que plusieurs éditeurs tiers devront aussi développer sur la prochaine Xbox, sa réponse fût "quand je dis que notre but est de ne pas créer d’obstacle que les développeurs devront résoudre, c’est de cette façon que nous envisageons le multi plateforme.
Mais la facilité de programmation est loin d’être le seul but de Cerny. Avec 31 ans de carrière dans l’industrie du jeu vidéo, il sait très bien que le PC avancera alors que la PS4 sera figée dans le temps.
"En fin de compte, nous essayons de trouver le meilleur équilibre entre les caractéristiques qui seront utilisées le jour J et celles qui permettront au système d’évoluer au cours des années à mesure que le jeu évolue lui-même" a déclaré Cerny. L’architecture "PC supercharged", terme que Cerny a réussi à imposer à l’équipe, est conçue pour offrir des gains significatifs, que le PC ne peut permettre tout en offrant un environnement de développement familier.
Pour concevoir la PS4, Cerny n’a pas seulement autopsiée la PS3. Il a aussi fait le tour des équipes de développement et discuté avec les partenaires de solution middleware afin de connaître leurs exigences pour la prochaine génération de consoles. Le résultat ? Vous le lirez plus bas dans la suite de cet article.
Mais que signifie donc ‘Supercharged’, par ailleurs ?
Aux premiers abords la PS4 possède une architecture connue et c’est le cas. Mais Cerny maintient que lui et son équipe ont travaillés à étendre ses capacités natives et aller au-delà.
Par exemple, c’est le cas du GPU: "C’est une ATI Radeon. Entrer dans la version de la carte via ses numéros n’aidera pas plus à clarifier les choses, sauf que nous avons pris leur récente technologie et nous avons effectués de larges modifications sur celui-ci".
Pour comprendre la PS4, vous devez prendre ce que vous connaissez de Cerny et de sa vision pour cette console (Facile d’accès, mais puissante sur le long terme) et de la marier aux choix fait pour l’architecture (Familière, mais lourdement modifiée) c’est ce qu’il veut dire par "supercharged.
"Une partie du terme ‘supercharged’, vient du fait que nous utilisons une mémoire à haute vitesse unifiée, déclara Cerny. Un lot de 8Go de mémoire GDDR5 qui est facilement et entièrement gérable par le CPU et le GPU.
Si vous prenez un PC, dit Cerny, "Si celui-ci avait 8Go de mémoire, le CPU ou le GPU ne pourrait seulement partager qu’1% de cette mémoire sur une image donnée. C’est simplement une limite imposée par la vitesse du bus PCI Express. Donc, oui il y a un avantage substantiel à avoir une architecture unifiée sur PS4. Et c’est un avantage dont vous pouvez bénéficier dès le premier jour où vous codez sur le système. L’évolution du système dans les années à venir découlera de ce GPU PC amélioré. Et je suppose que cette conversation à trait avec ce que nous avons amélioré."
Le CPU et le GPU sont sur un "SoC vraiment large" créé par AMD pour Sony. "Les 8 coeurs du Jaguar, le GPU et un grand nombre d’autres unités sont sur le même die" déclara Cerny. La mémoire n’est pas sur le SoC cependant. Le GPU communique avec la mémoire unifiée via un bus 256 Bits à une vitesse de 176 Gb/s.
"Une chose que nous aurions pu faire et de passer par un bus 128 Bits, lequel aurait abaissé la vitesse à 88 Gb/s, puis avoir de l’eDRam pour ensuite regagner les performances perdues" déclara Cerny. Alors que, cette solution avait l’air intéressante pour l’équipe en raison de sa facilité de fabrication, cela fût abandonné en raison de la complexité que cela aurait ajouté aux développeurs. "Nous ne voulions pas que la communauté des développeurs perdent leur temps à résoudre de tels problèmes pour créer leurs jeux. Et nous sommes resté fidèle à notre philosophie sur la mémoire unifiée."
En réalité, nous confia Cerny, quand il a fait le tour des studios de développement et leur demanda leurs souhaits sur ce qu’ils attendaient de la PS4, "une majorité des retours étaient d’avoir de la mémoire unifiée."
"Je pense que l’on peut vraiment apprécier à la lumière de ces faits, notre engagement à avoir une architecture conviviale pour les développeurs. Nous aurions très bien pu fabriquer un hardware avec une bande passante de 1To et une petite quantité de mémoire, mais nous ne l’avons pas fait. Déclara Cerny. "Je pense que cela reflète réellement et le plus clairement possible notre philosophie."
Permettre cette vision: Comment Sony a modifié le Hardware?
Les trois "modifications majeures" que Sony a effectuées à l’architecture pour rendre la vision de Cerny possibles sont selon ce dernier:
- Premièrement, nous avons un ajouté un second bus au GPU qui lui permet de lire ou d’écrire directement dans la mémoire système, en occultant ses propres mémoires cache L1 et L2. Le résultat est que si les données qui passent dans les deux sens entre le GPU et le CPU sont faibles, vous n’avez alors plus de problème de synchronisation. Et par faible j’entends bien sûr faible en termes de next gen. Nous pouvons faire transiter jusqu’à 20Gb/s dans ce bus. Ce n’est pas faible en termes de génération actuelle, mais c’est plus large que la vitesse des PCI Express sur la plupart des PC.
- Ensuite, pour le cas où vous voudriez utiliser le cache L2 pour le calcul asynchrone et les effets graphiques, nous avons ajouté un bit dans la signature du cache L2 appelé ‘bit volatile’. Vous pouvez par la suite marquer tous les accès par les calculs comme volatile et lorsque qu’il est temps pour les calculs de lire la mémoire, il peut invalider de manière sélective les lignes qui l’utilisent (le bit volatile). Et quand le calcul a besoin de réécrire le résultat, il peut l’écrire de manière sélective les lignes qui l’utilisent. Cette innovation permet aux calculs d’utiliser le cache L2 du GPU de faire les opérations requises sans impacts significatifs sur les opérations graphiques qui sont en cours en même temps. En d’autres termes, cela réduit radicalement la surcharge de calculs et d’effets graphiques tournant en simultané sur le GPU.
- Troisièmement, déclara Cerny, "L’architecture GCN (Graphics Core Next) originale d’AMD n’autorise qu’une seule source pour les graphismes et deux sources pour les calculs. Pour la PS4, nous avons travaillé avec AMD pour augmenter cette limite au niveau des calculs à 64 sources. L’idée est que si vous avez un certains nombres de calculs asynchrones à faire, vous les mettez en attente dans l’une de ces 64 sources et il y a de multiples niveaux d’arbitrage dans le Hardware pour déterminer ce qui fonctionne, comment ça fonctionne et quand ça fonctionne. Et ce aux côtés des calculs graphiques.
"La raison pour laquelle tant de sources calculs sont nécessaires, est que non seulement la console en aura besoin mais aussi le Middleware. Le Middleware en aura besoin pour travailler sur le GPU. Et les requêtes Middleware devront être correctement traitées avec les demandes du jeu, puis finalement correctement priorisées par rapport aux graphismes sur une base de chaque instant."
Ce concept est issu du logiciel créé par Sony et appelé "SPURS" pour aider les programmeurs qui avait des difficultés avec les SPU du CELL. Mais sur PS4 cela sera Hardware.
L’équipe et c’est un euphémisme a dû penser à l’avenir. "Le période à laquelle nous concevions la machine était 2009-2010. Alors que la période où les gens qui utiliseront pleinement ses caractéristiques sera en 2015-2017 ?" déclara Cerny.
Notre approche globale a été d’apporter un très grand nombre de contrôle sur l’harmonie entre les effets graphiques et les calculs. Et ainsi laisser la communauté des développeurs libre de choisir lequel des deux utiliser, lorsqu’ils arrivent au point d’avoir pas mal de calculs asynchrone.
Cerny s’attends à ce que les développeurs utilisent le Middleware (comme la physique par exemple) sur le GPU. En utilisant le système décrit ci-dessus, vous aurez un rendement maximal, dit-il.
"Si vous regardez une partie du GPU qui est disponible durant une séquence, il varie du tout au tout à chaque instant. Par exemple, une chose comme le rendu ‘opaque shadow map’ n’utilise même pas le ‘pixel shader’, c’est entièrement géré par les ‘vertex shader’ et la ‘rastérisation’ matérielle. Donc les graphismes n’utilisent pas la plupart des 1.8 TFlops disponible sur les ALU dans les unités de calculs. Ces moments-là durant la séquence de jeu sont une opportunité pour dire, ‘ok, tous ces calculs que vous vouliez faire, passer les en 11 maintenant".
Ça à l’air super. Mais comment gérez-vous cela? "Il y a des commandes très simples situés sur la partie graphique et sur la partie mémoire tampon de la commande graphique. A partir de la mémoire tampon de la commande graphique, vous pouvez activer ou désactiver les calculs. Expliqua Cerny.
Le lancement et au-delà
Les bénéfices de ce hardware puissant seront vus dans les jeux de lancements de la PS4. Mais Cerny assure que dans le futur ils donneront des résultats brillants de bien différentes manières.
"Le lineup de lancement, bien que je ne puisse donner un chiffre, sera le plus fort lineup qu’auparavant pour les précédentes consoles PlayStation. Et cela est le résultat de cette familiarité avec le hardware." déclara Cerny. "Mais de toute façon d’ici à 2015 vous aurez besoin de revoir votre façon de penser et d’utiliser cette amélioration car vos concurrents le feront.
Alors que cela devrait prendre "quelques semaines et non des mois" pour porter un moteur de jeu depuis le PC vers la PS4 selon Cerny, sur le chemin, les développeurs dédiés aux consoles pourront en profiter pour appréhender les capacités de la PS4, personnaliser leurs technologies et vraiment en tirer avantage.
Il y a beaucoup, beaucoup de moyens afin de contrôler l’allocation des ressources au sein du GPU entre le calcul et les graphismes. Bien sûr ce que vous pouvez faire et qui sera fait avec les titres de lancement sera de tout allouer au graphisme. Et c’est parfaitement bien, c’est très bien. Seulement la vision est qu’au milieu du cycle de vie de la console, il n'y aura plus de calculs.
Libérez les ressources: Les unites dédiées de la PS4
Une autre chose que la team PS4 a faite pour accentuer la flexibilité de la PS4, est d’avoir mis la plupart de ses fonctions de bases sur des unités dédiées sur la carte mère, de cette façon vous n’avez pas à allouer des ressources à la gestion de ces fonctions.
"La raison pour laquelle nous avons mis des unités dédiées est qu’en ce qui concerne les jeux qui les utilisent est très faible." Déclara Cerny. Cela établit aussi une base de référence sur les expériences utilisateurs.
"Par exemple, en ayant une unité dédiée à l’audio, cela signifie que nous pouvons faire du chat audio sans que le jeu alloue des ressources à celle-ci. Il en va de même pour la compression et la décompression vidéo." L’unité audio gère également la décompression d’un très grand flux de MP3 pour l’audio en jeux. Ajouta Cerny.
A New-York en dévoilant le système, Cerny a parlé de PlayGo, le système par lequel vous téléchargez des jeux digitaux alors qu’on y joue.
"Le concept est que vous téléchargez une partie de l’ensemble des données et que vous y jouiez et pendant que vous jouez le reste des données se téléchargent en arrière-plan." At’il expliqué à Gamasutra.
Cependant PlayGo a "deux systèmes distinct liés" explique Cerny. L’autre système PlayGo concerne le lecteur Blu-Ray. Concédant que ce dernier est un peu lent pour les jeux Next-gen.
"Donc, ce que nous faisons alors que le jeu accède au données sur le Blu-Ray, nous les copions sur le disque dur. Et si un temps d’inactivité est détecté, nous prenons les devant et installons les données restantes sur le disque dur. Cela signifie qu’après une heure ou deux de jeu, le jeu est intégralement sur le disque dur, les temps de chargements sont ainsi drastiquement diminués. Et vous avez la possibilité de faire un streaming à haute vitesse.
Ça à l’air génial, mais….. y a-t'il goulots d’étranglements ?
Une chose dont Cerny n’est pas intimidé pour en parler c’est bien les goulots d’étranglements de la machine, parce que de son point de vue, lui et son équipe ont fait du bon travail afin de les contourner.
"Avec les graphismes, le premier goulot d’étranglements que vous pouvez rencontrer est la bande passante de la mémoire. Sachant que 10 voir plus de 10 textures par objet seront le standard sur cette génération il est facile d’y être confronté." déclara-t-il ? A part faire quelques phases de rendus liés à la mémoire et ensuite abaisser le niveau de texture des Texel, il n’y a pas grand-chose à faire. Notre stratégie était simplement de s’assurer d’avoir de la GDDR5 avec une large bande passante.
Cela dit, "si vous n’avez pas de goulots d’étranglements au niveau mémoire, il est alors possible d’être limité sur les ‘vertex’ si vous avez des ‘mesh‘ denses sur vos objets. Vous pouvez alors demander à vos artistes d’utiliser des triangles plus grands, mais en pratique il est assez difficile d’y parvenir. Il est assez fréquent concernant l’affichage graphique qu’une grande partie de ce que vous voyez à l’écran soit des triangles de la taille de 1 pixel. Auquel cas, oui les goulots d’étranglements seront grands.
"Il y a une grande variété de techniques que nous avons mises au point afin de réduire les goulots d’étranglements des ‘vertex’, dans certains cas ce sont des améliorations hardware" raconta Cerny. "Le plus intéressant est qu’ils peuvent être utilisés pour du calcul comme une interface pour vos graphismes. "
Cette technique, dit-il est "un mélange de de Hardware et de firmware à l’intérieur du GPU, ainsi que d’une technologie de compilation. Ce qui se passe c’est que vous prenez votre ‘vertex shader’ et vous le compilez deux fois. Une première fois en tant que ‘compute shader’ et l’autre en tant que ‘vertex shader’. Le ‘compute shader’ fait un tamis de triangle, il calcul tout simplement la position du ‘vertex shader ‘ d’origine et regarde si les triangles sont similaires ou retournés. Ainsi il génère à la volée, un ensemble réduit de triangles qui seront utilisés par le ‘vertex shader’. Le ‘compute shader’ et le ‘vertex shader’ sont étroitement liés à l’intérieur du Hardware.
C’est aussi une solution pas compliqué à mettre en place, expliqua Cerny. "D’un point de vue programmeur graphique, cela signifie utiliser quelques indicateurs dans le compiler et utiliser différents modes de l’API graphique. Donc vous pouvez l’essayer en une après-midi et constater si vous avez augmenté vos performances.
Ces processus sont si "étroitement liés", déclara Cerny, que tout ce qui est requis est "d’avoir une boucle tampon" qui indique si : c’est ni trop élevé, ni trop faible, il est assez petit pour tenir dans le cache, il est assez grand pour ne pas se caler sur les écarts entre la vitesse de traitement des ‘compute shaders’ et les ‘vertex shaders’."
Il a aussi promis à Gamasutra la compagnie est en train de travailler sur Razor l’outil d’analyse des performances optimisé pour la PS4, ainsi que des exemples de codes qui seront distribués aux développeurs. Cerny voudrait également que les partages de codes réels puissent se faire : "Si quelqu’un a écrit quelque chose d’intéressant et est prêt à publier le code source, afin de le rendre disponible pour les développeurs sur PlayStation, alors ça aura une plus grande valeur"
Un coup de main/Knack pendant le développement
NDLR: petite explication sur le titre de ce dernier paragraphe. En effet, bien que chez nous Knack nous fasse penser direct aux saucisses du même nom. Il en est tout autrement outre-manche. Knack signifie truc ou coup de main. Donc, le jeu de mot peut nous échapper lorsqu’on le lit en anglais. Fin de l’aparté.
Il y a un autre chemin qu’à emprunter Cerny, afin de comprendre au mieux ce que les développeurs ont besoin en matière de hardware.
"Quand j’ai contacté Sony la première fois afin de me proposer comme architecte pour la PS4 fin 2007, j’avais dans l’idée que je serais surtout affairé sur le matériel mais que je continuerais à faire un peu de logiciel (NDLR : Mark Cerny étant développeur à la base). Et finalement le matériel m’a pris mon temps.
Ce détachement n’a pas duré. "J'ai fini par avoir une conversation avec Akira Sato, qui était le président de Sony Computer Entertainment depuis de nombreuses années. Et son conseil appuyé a était, ‘N’abandonnez pas le logiciel, car tant que vous faites un jeu, cela apporte une valeur plus importante dans les processus quels qu’ils soient, que ce soit de la conception matériel, de l’environnement de développement ou la chaine d’outils.
C’est la naissance de Knack, le jeu PS4 de Cerny, qu’il dévoila lors de l’événement à New-York. Et c’est son lien afin de comprendre intimement les problèmes concrets du développement sur PS4.
On ne peut pas à la lecture de tout ceci entre : la lecture des documentations techniques complexes durant les vacances de Thanksgiving et enfin le développement d’une nouvelle licence pour le lancement de la PS4 dire que Mark Cerny n’est pas un homme dévoué, passionné et occupé.
"Je n’ai pas été aussi occupé ces 20 dernières années, c’est agréable. Mais assurément je le suis maintenant." A-t-il dit, en faisant rire toute la salle.