[Maj] Project Scorpio : le GPU et la mémoire système 2/3

Nous vous proposons une petite série de 3 articles à paraître tout le long de cette semaine, résumant les derniers points abordés par DigitalFoundry sur les entrailles du Projet Scorpio.

 

Au sommaire aujourd’hui, le GPU et la mémoire système.

Nous parlerons aussi cette semaine :

– du système de refroidissement
– et de la consommation électrique

Vous pouvez retrouver notre article sur le CPU et le disque dur interne en cliquant ici : CPU et HDD


LE GPU

Le petit souci de départ :

Le GPU de la Xbox One n’a pas vraiment souffert de grosses lacunes comme d’autres éléments de la console de 2013, il serait injuste de parler de véritable «problème de départ».
Si bien que mise à part une puissance légèrement en retrait face à la console de Sony, il s’agissait bien d’un bon GPU, plutôt équilibré et homogène…

De génération identique à celui de la PS4 (Radeon HD 7870 vs Radeon HD 7790), ses deux seuls défauts furent d’embarquer moins d’unités de calcul (18 contre 12) ainsi qu’une petite faiblesse sur les ROPs (les unités de rendus d’image qui gère l’anti-aliasing ou autre effet de transparence…) au nombre de 16 sur Xbox One contre 32 sur PS4.

La solution sur Scorpio a été de passer à une nouvelle génération de GPU, une base de Polaris 20 / RX 580 (évidemment il s’agit d’une version légèrement améliorée, notamment en terme de fréquence d’horloge, du Polaris 10 / RX 480 qu’on retrouve sur PS4 Pro) qui est customisée par Microsoft.

4 axes principaux à retenir :


Radeon RX 480/RX 580 customisé : Microsoft a modifié la quantité d’unités de calcul (passant de 36 sur cette Polaris 10/Polaris 20 à 44 pour le DevKit et 40 actifs sur la version commerciale).


La fréquence des unités de calcul (CU) : du jamais vu sur console de salon, la fréquence atteint les 1172Mhz (a titre de comparaison la fréquence est à 914Mhz pour la Xbox One S et 911Mhz pour la PS4pro). Cet élément participe grandement à l’atteinte des 6 teraflops promis par Microsoft en juin 2016.


Direct X12 : l’implémentation de commandes d’exécutions de l’API de Microsoft. Totalement inédit, cette intégration permettra des gains de performances graphiques significatifs contrairement à un GPU sans cette implémentation.


L’intégration d’une fonctionnalité de la prochaine gamme de GPU VEGA : appelé le DCC (Delta Color Compression) il permet une réduction importante de la bande passante (essentielle pour l’usage de la 4K native)


LA MEMOIRE SYSTEME

Le (gros) problème de départ :

Initialement sur votre Xbox One actuelle vous profitez de 8Go de RAM DDR3. Cela présente un avantage quant à la gestion de la partie multitâche (grâce à une latence plutôt faible), néanmoins ce choix se transforme en goulot d’étranglement pour la partie purement graphique avec un taux de transfert de seulement 68.3Go/s.

Pour pallier (un tant soit peu) à ce taux de transfert « léger », Microsoft à réutilisé une technique qui a vu le jour sur Xbox 360 (avec 10 Mo de eDRAM) nommée vulgairement ESRAM.

Avec cet ajout de 32mo d’ESRAM (en plus des 8Go de RAM DDR3) les ingénieurs de Redmond ont « solutionné » ce soucis en atteignant les 208Go/s.

Problème réglé ? Pas vraiment.

Il s’avère qu’on est de nouveau face à ce fameux goulot d’étranglement qui a souvent empêché la Xbox One de bénéficier facilement et fréquemment de jeux en 1080p. Il ne faut pas se méprendre, ce n’est pas le GPU qui est fautif mais bien les 32 « petits » Mo d’ESRAM. (Idéalement il aurait fallu 64mo et non pas 32 pour solutionner ce soucis).

Mais soyons honnête, ces 32mo d’ESRAM furent inédit. En effet, on n’avait jamais vu autant de mémoire cache disponible pour le SoC (CPU + GPU) que ce soit sur console ou sur PC. A l’époque doubler ces 32mo aurait représenté un défi impossible pour Microsoft. Ces derniers prenant déjà énormément de place sur le SoC, il aurait été impensable de doubler l’espace nécessaire à cette mémoire. Sans parler du coût qui aurait été étourdissant pour un produit grand public.

Nb : Sur 8Go de RAM DDR3, 5 sont réservés aux jeux. 3 à la gestion de l’OS sur Xbox One.

La solution sur Scorpio a été d’écarter l’ESRAM physique et d’articuler la réponse au problème de départ autour de 3 axes essentiels :

xbox-scorpio 12 GDDR5


12Go de RAM en GDDR5 : dont 4Go au service de l’OS ainsi que 8Go dédiés aux jeux. Ce qui est indispensable pour l’atteinte de l’objectif de la 4K native.
Up ! Microsoft, par le tweet de Mike Ybarra vient d’annoncer une optimisation de la gestion mémoire de la Xbox Scorpio, et peut nous affirmer maintenant que cette dernière dispose désormais jusqu’à 9Go de GDDR5 pour les jeux.
Une bien grande nouvelle, très positive pour enfoncer le clou de la 4K !


Bus mémoire de 384 bits : Auparavant de 256 bits (comme sur Xbox One ou encore PS4 Pro), cette rehausse permet un échange de données massif entre le GPU et la mémoire vive, inédit sur console. Là aussi, il s’agit d’un « détail » im-pé-ratif quant à la gestion de la 4K native. Ces 384 bits représentent d’ailleurs la clé de voûte de la bande passante…


La bande passante de 326Go/s : Ce score impressionnant est le résultat de nombreux tests internes de Microsoft. Ces derniers consistaient à déterminer précisément la bande passante idéale pour l’affichage de la 4K native. Il s’avère qu’à partir de 300Go/s le défi était relevé. Les ingénieurs de Microsoft se sont donc payé le luxe d’aller encore un peu plus loin.


Ainsi, cela explique les choix qui ont été faits au sujet de la mémoire système. Pour être tout à fait complet, et revenir sur l’ESRAM, sachez qu’elle n’a pas tout à fait disparu comme j’ai pu l’écrire un peu plus haut. Cependant, elle n’est plus physique mais logicielle (grâce au Giga supplémentaire de RAM pour l’OS ce qui permet son émulation). Cela permet d’assurer une rétrocompatibilité totale (autre promesse de départ du projet Scorpio).


On se retrouve vendredi pour l’ultime partie sur les entrailles du Project Scorpio avant le grand déballage dimanche 11 juin 2017 à 23h.
Rédaction : Twins 
Traduction & vulgarisation : Darkfoxx
Correction : Darkfoxx