Xbox Series X – HotChips 2020 : Microsoft et la conquête de l’optimisation à son paroxysme.

Prévue de longue date, la prise de parole de Microsoft lors de sa conférence HotChips a été riche en informations. Des confirmations de ce qu’on savait déjà, des précisions et autres ajustements sur les choix technologiques effectués par Microsoft pullulent sur les 29 slides qui en résultent.

Pour nous, l’occasion de revenir sur les entrailles de la Xbox Series X, en essayant, avec nos connaissances, de vous expliquer le tour de force phénoménal qui se joue ici. Si le travail sur la Xbox One X et sa puce « Scorpio Engine » nous avait impressionné en 2017, celui de la puce « Scarlett » de la Series X nous souffle littéralement et nous emmène dans une autre galaxie où l’optimisation matérielle est omniprésente.

Oui, vous vous dites sûrement que nous sommes trop bons clients pour user et abuser de superlatifs ? Vous n’avez peut-être pas totalement tord. Mais suivez-nous dans cette visite guidée de l’intérieur de votre futur Xbox pour comprendre la proposition qui est faite ici.

Première chose qui frappe : la transparence absolument folle dont fait preuve Microsoft sur les détails techniques de sa console. Jamais un consolier n’aura autant détaillé sa machine. Sony et, à plus forte raison, Nintendo, ne sont pas aussi loquaces et ne l’ont jamais été.

« Le monde du PC va bénéficier de certaines innovations décrites ici. »

90639064_508816480066765_6289626833558175744_n

Plusieurs raisons à cette transparence, dont une essentielle : ces avancées vont bien au-delà d’une console. Le monde du PC va bénéficier de certaines innovations décrites ici. Il est donc important pour Big M d’être précis et d’en dire le plus possible. En ligne de mire : l’épanouissement de DirectX 12 Ultimate (entre autres choses).

Nous articulerons notre voyage au pays du silicium en suivant le chemin tracé par les différents diaporamas des ingénieurs de Microsoft.


CHAPITRE 1 : Xbox et Azure font chambre commune.


CH1

La toute première slide nous fait une sorte de grand récapitulatif de ce que Microsoft a déjà pu nous dire : DXR, SFS, VRS, 8K, HDMI 2.1, 120Hz… (Nous reviendrons sur certains de ces éléments). Mais ce qui frappe ici, réside dans le premier point : « 3.8Ghz Zen2 Server Class CPU Cores ». Au-delà du fait qu’il s’agit d’un CPU Zen 2 composé de 2 clusters de 4 coeurs, soit 8 au total, capables de simuler 16 coeurs en SMT ( l’équivalent de l’hyper-threading chez Intel), cadencés à 3.8 Ghz en mode 8 coeurs, à 3.6 Ghz en mode SMT, et disposant d’un total de 12 Mo de mémoire (L2 et L3) … autre chose nous interpelle.

Il s’agit du mot « server » qui vient qualifier le CPU de la Xbox Series X ! Que faut-il comprendre ?

Dans un objectif de rationalisation des coûts, Microsoft à privilégié l’utilisation d’un CPU Zen 2 taillé pour les serveurs (ce qui rime souvent avec des sécurités supplémentaires protégeant les données).  Avec un même CPU, l’entreprise américaine pourra équiper, en sortie d’usine, sa Series X, ses Devkits ou ses serveurs xCloud ! Il en sera d’ailleurs de même pour la RAM GDDR6 compatible EEC (error correction).


CHAPITRE 2 : le SoC se déshabille.


Rappel : un SoC (System on Chip) décrit la combinaison d’un CPU, d’un GPU ainsi que d’autres éléments (contrôleurs mémoires, unités spécialisées) dans une seule et même puce. Ici, il s’agit du carré noir qu’on voit sur la slide ci-dessous.

CH2

Microsoft dévoile ici toute l’architecture de son SoC Scarlett : essayons de replacer les différents éléments qui composent le cœur de la XSX… Petit zoom :

CH2.2

La plus grosse partie du SoC est, comme d’habitude, majoritairement dédiée à la partie graphique (le GPU). Elle est ici représentée par le rectangle rouge. Composée de 56 unités de calculs (CU), dont 4 seront désactivées pour des raisons de production, ils intègrent avec eux des RT cores. Notre fameux Ray Tracing sera donc bien géré en hardware. Au total, cette partie occupe 47% du SoC.

Vient ensuite la partie jaune, occupée par le VRS, le SFS, l’IA ou encore les Mesh Shaders et qui occupe environ 16% du SoC. Si nous étions au courant depuis fort longtemps de la gestion hardware du Ray Tracing ET de l’IA (de par nos recherches, celles d’autres, puis finalement par la confirmation de Microsoft en mars dernier auprès de Digital Foundry), nous n’avions pas vu venir la gestion hardware pour des éléments comme le VRS, le SFS et les Mesh Shaders. Ce qui est une très très bonne nouvelle !

Mais de quoi parle-t-on ?


CHAPITRE 3 : l’IA et DirectML


Quand on parle d’IA/DirectML, il faut comprendre : qu’on parle d’une technologie basée sur le Machine Learning. C’est-à-dire, de l’apprentissage automatisé pour répondre à 2 objectifs principaux dans un contexte de « jeux vidéos » :

  • Reconstruction de l’image : l’IA (par l’API DirectML de Microsoft) apprend à appliquer une image extrêmement détaillée sur une image dégradée. L’objectif est ici d’atteindre un niveau de détail satisfaisant en économisant au maximum les ressources locales, que vous pourrez attribuer à autre chose (augmentation du framerate par exemple : de 30 à 60 fps facilement)

Exemple : le GPU n’aura besoin que de calculer un rendu 1080p du jeu Control (Remedy), l’IA se chargera de lui appliquer un rendu 4K par inférence. Vous connaissez probablement le principe chez Nvidia, répondant au nom de DLSS (Deap Learning Super Sampling)

CH3

Mais pourquoi est-il important d’avoir cette gestion IA en hardware ? L’objectif est d’effectuer ces calculs en les appliquant en temps réel, sans nuire à la jouabilité et à la latence.

  • Routine de comportement des personnages : assez peu explicitée pour le moment (que ce soit par Microsoft, AMD ou Nvidia), il s’agira de rendre plus réaliste le comportement et les réactions des PNJ dans nos jeux. Là encore, l’apprentissage automatisé est de mise et permettra à terme d’économiser des ressources CPU (normalement utilisé pour la gestion de l’IA dans un jeu)

CH3.2

En résumé, et comme Microsoft le précise avec cette phrase ci-dessus, DirectML a pour ambition d’économiser des ressources GPU et CPU pour atteindre un objectif précis, celui d’améliorer ces aspects par un facteur allant de x3 à x10 en fonction des situations !


CHAPITRE 4 : Primitives et Mesh Shaders


Quand on parle de Mesh Shaders, il faut savoir : qu’on parle d’une nouvelle gestion de la géométrie au sein du pipeline graphique. En d’autres termes, et jusqu’à présent sur nos consoles, le pipeline graphique se composait de différents éléments dont les Vertex Shader et les Geometry Shaders (voir ci-dessous). Au final, c’est un peu comme une route, composée de différentes étapes et par lesquelles nous sommes obligés de passer pour commencer à afficher quelque chose à l’écran.

mesh_shaders2

Ainsi, le CPU en était rendu à calculer les différents « niveaux de détails » (LOD = level of details) des objets affichés à l’écran. Il mobilisait également des ressources pour des objets qui ne sont pas directement visibles à l’écran (imaginons une caisse en bois qui se trouverait cachée derrière une palissade). Le CPU doit envoyer toutes ses commandes au pipeline graphique.

En somme le CPU est un chef d’orchestre, et il lui arrive souvent d’avoir… trop de travail à faire !

Et nos Mesh Shaders dans tout ça ?

mesh_shaders2

Les Mesh Shaders sont une amélioration/interprétation par Nvidia de ce qu’on appelle les « Primitives Shaders ». A l’initiative d’AMD (fin 2017), ces Primitives Shaders étaient initialement apparus sur les GPU Vega10/20, puis mis en avant sur GPU Navi 10 (Radeon RX 5000 Series). Malgré cela, ils n’ont jamais vraiment été adoptés/utilisés par les développeurs jusqu’à présent.

Les Mesh Shaders, eux, ont été introduits par Nvidia en 2018 avec une solution gérée en hardware sur la gamme de ses GPU à architecture Turing (GTX 1600 et RTX 2000). Ils ont connu une meilleure intégration, timide mais qui monte en puissance, par les développeurs. Le gros succès de la marque au caméléon sur le marché PC n’y est évidemment pas pour rien.

Utilisation timide des Mesh Shaders dites-vous ? Oui, parce que cela demande aux développeurs de repenser leurs moteurs graphiques et donc leurs jeux. Rome ne s’est évidemment pas faite en un jour. Et comme un GPU moderne, techniquement capable de gérer les Mesh Shaders peut aussi travailler sur l’ancienne méthode (Vertex Shaders/Geometry Shader), il devient difficile d’avoir une adoption massive et rapide tant que le parc installé d’hardware en disposant n’est pas suffisamment conséquent.

2020-09-03_22h07_26
Mise en application du Mesh Shaders et les différents niveaux de détails. 

Ce qui explique aussi la situation de nos « Primitives Shaders » complétement boudés par les développeurs. Après tout, pourquoi se casser la tête à renverser la table ? Le regain d’AMD sur le marché des GPU PC est encore très récent.

« Il devient alors possible d’enrichir grandement le visuel d’un jeu tout en baissant l’impact que cela aurait dû avoir sur le GPU. »

Les développeurs qui renversent la table et qui utilisent les Mesh Shaders vont pouvoir profiter de gains de performances notables. Car c’est l’occasion d’alléger de manière significative le travail du CPU. Il pourra donc se concentrer sur d’autres tâches. Il devient alors possible d’enrichir grandement le visuel d’un jeu tout en baissant également l’impact que cela aurait dû avoir sur le GPU.

Sur le SoC de la Xbox Series X nous retrouvons notre fameuse architecture « Full » RDNA 2. Celle-là même qui introduit (chez AMD) l’utilisation des Mesh Shaders. Il est à noter que pour autant, la SX sera capable de gérer les « Primitives Shaders ».

Quelle différence entre « Primitives Shaders » et « Mesh Shaders » ? Hé bien, les deux technologies sont en réalités assez proches, presque cousines. Toutes les deux réinventent le pipeline graphique que nous décrivions plus haut. A la différence que les Mesh Shaders sont plus évolués/souples encore que les Primitives Shaders.

Dans les slides de Microsoft nous retrouvons donc bien ces deux éléments.


microsoft-xbox-series-x-frandroidNB : L’usage de Mesh Shaders sur Xbox Series X se fera par le biais du « Mesh Shading Geometry Engine ». A ne pas confondre avec le « Geometry Engine » mis en avant par Mark Cerny pour la PS5. Ce dernier permettra l’utilisation des Primitives Shaders uniquement. C’est d’ailleurs cela qu’a montrer Epic avec sa démonstration des Nanites sur l’Unreal Engine 5 il y a quelques mois. Plus simplement, la PS5 n’a pas l’architecture adéquate pour proposer les Mesh Shaders. Rassurez-vous, les Primitives Shaders permettront déjà de très belles avancées.


Au-delà du hardware de la Xbox Series X, c’est DirectX 12 Ultimate qui prend en charge PS et MS. Et c’est essentiel ! DX12 ayant pour vocation de réunir tous les acteurs du marché GPU (Nvidia, AMD et Intel) en unifiant au maximum l’usage de l’API de Microsoft (en concurrence avec Vulkan par exemple).

En résumé, avec les Mesh Shaders (ou les PS), Microsoft ambitionne d’économiser des ressources CPU et par extension celle du GPU sur les modélisations/rastérisation.


CHAPITRE 5 : le VRS (Variable Rate Shading) 


Quand on parle de VRS (Variable Rate Shading), il faut savoir : qu’il s’agit d’une technologie de simplification/dégradation de rendu d’image. Cela peut sembler étrange quand on parle d’une nouvelle console mais pas d’inquiétude, c’est en fait très positif ! A bien des égards, on peut penser à deux autres techniques que l’on retrouve souvent chez Sony : le « checkerboarding » ou encore la « résolution dynamique ». Mais ici, le VRS, présente l’avantage de donner plus de souplesse et de finesse dans son application.

« En appliquant le VRS sur un jeu il est possible de bénéficier d’un gain de performance de 10 à 30 %, souvent mis au bénéfice du framerate. »

Contrairement aux solutions de Sony qui affectent la totalité de l’image, le VRS ici « sélectionne » les zones qui se retrouveront dégradées, c’est-à-dire des portions d’images où l’œil humain ne fera pas la différence. On peut imaginer dans un jeu d’aventure, une zone dans la pénombre à l’écran qui n’apporterait rien à être ultra détaillée en 4K ; ou les jeux de course auto où la vitesse ne permet pas à l’œil de distinguer correctement les côtés de la route.

CH5.2
Les parties bleues et vertes sont en qualité optimale, ce qui inclus l’horizon, la voiture et ses abords directs. Toutes les autres parties de l’image, ici en jaune, mauve et rouge sont « dégradées » de manière croissante. 

Finalement, l’objectif de cette technologie est d’améliorer la consommation de ressources par le GPU sur le rendu des shaders. De manière concrète, en appliquant le VRS sur un jeu il est possible de bénéficier d’un gain de performance de 10 à 30 %, souvent mis au bénéfice du framerate.

C’est l’une des clés de voute pour atteindre, plus facilement, le combo 4K/60FPS/RT, même sur des titres ambitieux visuellement. Et ce VRS est intégré en hardware !

CH5


ps5-1tbNB : la technologie VRS n’est utilisable que sur des GPU Nvidia de type TURING (GTX 1600 Series / RTX 2000 Series) et maintenant sur GPU RDNA 2 d’AMD (sous API Vulkan ou DirectX12 Ultimate pour les 2 constructeurs de cartes graphiques). Le VRS de la Xbox Series X sera une version perfectionnée de la technologie, nommée VRS Tiers 2, qui est une version plus souple et précise encore que la VRS Tiers 1 (DirectX 12 classique).


NB2 : Concernant la PS5, et jusqu’à preuve du contraire, elle ne devrait pas bénéficier du VRS (Tiers 1 ou 2). Digital Foundry à d’ailleurs aperçu l’utilisation du cherckerboarding appliqué sur les effets de Ray Tracing de Gran Turismo 7, ce qui corrobore l’absence du VRS à l’heure où nous écrivons ces lignes. Néanmoins Sony pourrait, dans le futur, tenter de développer sa propre solution logicielle au concept approchant.



CHAPITRE 6 : le SFS (Sampler Feedback Streaming) 


Avant d’expliquer la technologie SFS, il faut remettre du relief sur une réalité dans le monde des fabriquants de consoles d’aujourd’hui. Depuis 2012, la mémoire vive n’a vu son coût que très peu diminuer contrairement à celui des SSD qui connait une baisse importante.

Microsoft l’indique d’ailleurs très bien sur cette slide :

CH6

En résumé, la RAM pèse lourd sur la balance lors de la conception d’une console. Et c’est un problème car nos jeux vidéos sont de plus en plus demandeurs de mémoire vive. Les informations visuelles complexes ou l’usage naissant du Ray Tracing en jeu dévorent littéralement la RAM et sa bande passante !

Comment avoir une console suffisamment équipée en RAM sans pour autant exploser les prix de fabrication ?

Cette question a été le déclencheur pour la création du Xbox Velocity Architecture (XVA).

ezgif.com-optimize-13

Car, oui, la solution la plus simple pour répondre aux exigences graphiques, de rendus et RT des jeux Next-Gen, aurait été de proposer 20 à 24 Go de RAM. Et c’est d’ailleurs ce que nous supposions l’an dernier dans nos précédents articles.

Après tout, nous savons que les dev kit « Scarlett » disposent de 40 Go de GDDR6. La présence de 20 Giga de RAM aurait été probable, voir logique, à la vue des anciennes générations d’Xbox.

Mais comme nous venons de le voir sur le graphique, cela coûte cher. Et Microsoft n’a aucun intérêt à vendre sa console à perte, ni même à afficher des prix de vente délirants.

Les ingénieurs ont alors réfléchi à une autre solution, mêlant software et hardware, et directement présente sur la puce de la Xbox SX.

C’est là qu’intervient le SFS (un des éléments centraux du Xbox Velocity Architecture, en association avec le SSD).

Son objectif ? Faire parler la poudre sans ruiner son budget. Il s’agira de repenser la manière dont les textures sont calculées par le GPU et stockées dans la mémoire vive.

L’idée est « simple ». Actuellement, quand vous jouez à l’un de vos jeux sur consoles ou même sur PC, les objets ou personnages que vous visualisez à l’écran se voient appliquer différents niveaux de textures en fonction de la distance à laquelle vous êtes.

1d0b9

Plus un personnage est près de vous, plus sa texture est en haute définition, plus le personnage est éloigné et moins sa texture est définie, la résolution baisse.


NB : Nos GPU actuels, vont calculer TOUTES les textures possibles (avec leurs différents LOD : Levels Of Details) et les stocker en mémoire vive pour y accéder rapidement. (Vous avez probablement déjà vu vu une texture poper devant vos yeux ?) Ce stockage massif de textures dans la RAM était surtout dû à nos disque dur (HDD) trop lent en accès disques.

Xbox+One+X+-++3

Ces histoires ne posaient pas de problèmes particuliers quand le 720p/1080p était la norme. Mais depuis 2017, Microsoft a pousser son cheval de bataille « 4K », ce qui a entrainé une augmentation de la RAM pour répondre aux exigences de cette nouvelle résolution (sur console) passant de 8 à 12Go sur Xbox One X. Les textures 4K étant plus lourdes, il était judicieux d’augmenter cette mémoire vive. C’est l’une des raisons de la supériorité de la Xbox One X face à la PS4 Pro sur l’exercice de la 4K native.


CH6.2

Vous l’avez compris, la course à la DRAM commence à montrer ses limites dans un contexte où le prix de vente est une donnée prépondérante. Et il est finalement plus facile pour Microsoft de maitriser un coût en silicium à dédier sur une puce, que d’assumer le coût en DRAM.

Comme évoqué précédemment, la solution de Microsoft s’articule aussi bien en hardware, qu’en software. Petite explication :

Microsoft a intégré sur la puce Scarlett, un bloc dédié au Sampler Feedback Streaming par le biais de deux nouvelles structures de MIP Mapping (technique d’application de textures qui permet, notamment, d’éviter la pixellisation quand on s’éloigne) ainsi qu’un nouveau filtre custom, toujours en hardware, plus performant que le traditionnel « bilinear filtering ».

CH6.3

En effet, celui-ci produit trop d’artefact à l’image. Leur nouveau filtre permet des transitions au niveau les plus grossier des zones de détails (LOD) permettant une transition plus fluide et moins visible à l’image (moins de changement brutal de textures par exemple, c’est plus « fondu »).

On parle, on parle, mais quel est l’effet du SFS au final ?

Le SFS permet de ne calculer QUE les textures nécessaires à l’instant T d’un jeu ! En s’appuyant sur la vitesse du SSD, la console pourra ne demander que 1 ou 2 niveaux de textures au lieu d’une dizaine auparavant !

« Les résultats peuvent aller jusqu’à 60% d’économie de bande passante. C’est CO-LO-SSAL. »

Tout cela réduit significativement la quantité de texture à stocker dans la mémoire vive, puisque la console pourra laisser sur le SSD celles dont elle n’a pas encore besoin, et les lui demander à la volée grâce à sa rapidité. On parle là d’une économie faite sur les textures, 4k notamment. Cela n’est pas le cas en revanche pour les modèles 3D (ce sont les Mesh Shaders qui entrent en jeu pour ce point).

Qui dit « économie faite sur les textures 4K » dit « économie de bande passante I/O » ? Bingo ! Les résultats peuvent aller jusqu’à 60% d’économie de bande passante. C’est CO-LO-SSAL.

Dans le contexte de la Xbox Series X et de ses 16Go de GDDR6, le bénéfice sera double :

  • Sollicitation de la mémoire vive divisé par 2,5. Pour la même performance, sans SFS, Microsoft aurait dû intégrer 24 Go de RAM dédiées uniquement aux graphismes (contre 10Go avec le SFS).
  • Efficience de 2,5x sur le débit du SSD (on en parle un peu mieux plus bas)

Au final, et comme toujours avec ces nouvelles technologies intégrées à la Xbox Series X, pour en voir la couleur, il faut que les développeurs utilisent correctement les outils mis à disposition par Microsoft avec DirectX 12 Ultimate (12.2) et DirectStorage !


CHAPITRE 6.2 : Puce de décompression. 


On reste dans notre chapitre 6 dédié au SFS, pour évoquer la puce de décompression. C’est là encore un élément pour maximiser les performances en maitrisant son coût.

Cette puce de décompression est liée directement au SSD de la XSX. Pour rappel, ce SSD de 1To NVME affiche des taux de transfert de :

  • 2.4 GB/s (brut)
  • 4.8 GB/s (compressé)

Ces performances correspondent à un bon SSD NVME d’aujourd’hui. De plus, avec ces taux de transferts, nous sommes d’ores et déjà à des années lumières des performances d’un HDD !

Mais ces chiffres sont obtenus sans la puce de décompression. Avec elle, le SSD de la XSX voit sa bande passante doubler, allant même jusqu’à 6GB/s de décompression de textures, tout en évitant au CPU d’avoir cette charge de travail supplémentaire.


NB : L’économie niveau CPU est estimé à plus de 2 cœur Zen 2 ! Ce n’est donc absolument pas négligeable.


« La Xbox SX peut obtenir ainsi un débit maximal de 12GB/s destiné aux textures »

Quel rapport avec le SFS que nous évoquions juste au-dessus ?

Pour rappel, le SFS permet in fine d’améliorer par 2,5x notre débit SSD et/ou usage de la mémoire vive. Avec nos 6GB/s obtenus par la puce de décompression + le SFS, la Xbox SX peut obtenir ainsi, en restant raisonnable, un débit de 12GB/s destinés aux textures (!).


NB 2 : Et la PS5 ? On sait que vous vous poser la question… Et bien, c’est LE point où les efforts de Sony se sont concentrés. La PS5 a elle aussi une puce de décompression qui lui permet de passer d’un débit brut de 5.5GB/s (target) à 11GB/s !-11598236352vbcocngdyj

Comment ? La XSX fait mieux ?! Et oui … non, pas vraiment. Car contrairement à Microsoft, les 11GB/s de la PS5 peuvent se charger de tout (textures, modèles 3D etc.) et pas uniquement d’une décompression de texture.


Le Xbox Velocity Architecture a souvent été vendu comme étant l’âme de la Xbox Series X par Microsoft, et l’on comprend pourquoi maintenant.


CHAPITRE 7 : l’audio. 


CH7

Le marketing de Sony, insistant (beaucoup) sur la puce audio de la PS5, pouvait laisser penser que la XSX n’avait rien de particulier à proposer de ce côté-là… Il faut dire que Microsoft était resté assez discret à ce sujet. Accrochez-vous car vous êtes loin du compte. On fait court. Promis.

Oui, la XSX a « des puces audio » dédiées (partie bleue sur la slide du chapitre 2)

Ce bloc audio (composé de 2 éléments nommés Opus et Logan) s’occupera de la gestion du son 3D et est déjà compatible avec les principaux moteurs 3D du marché (Unreal Engine et Unity par exemple). Ce travail sur l’audio, cela fait 10 ans que les équipes de Microsoft travaillent dessus (Project Acoustic).

Les résultats sont là, et les capacités de calculs de ce bloc audio dépasse celle de l’ensemble des 8 cœurs CPU Jaguar de la Xbox One X !

« Ce travail sur l’audio, cela fait 10 ans que les équipes de Microsoft travaillent dessus (Project Acoustic). »

La « puce audio » de la XSX peut gérer en parallèle plus de 300 flux audio ! Le CPU se retrouve quasi intégralement déchargé de la gestion audio d’un jeu.


microsoft-xbox-series-x-frandroidNB : Oui, on sait… la PS5 ? Annoncée avec sa puce Tempest, elle serait capable de gérer jusqu’à 5000 flux audio.

Chiffre purement marketing, Mark Cerny parlant lui-même, en mars dernier, d’une centaine de sources audios gérées par la puce Tempest (et qui pourrait théoriquement monter à 5000 flux ! Ça ne sert à rien d’en proposer autant mais c’est le chiffre retenu par tout le monde).

Concernant la partie HRTF (mis en avant également par Cerny), la ps5-1tbXbox possède le même principe. Différence de taille à noter : la puce Tempest (contrairement aux puces Logan/Opus de la XSX) est crée à partir d’un Compute Unite (CU) du SoC, dérivé du GPU de la PS5.

En somme, la partie audio de la XSX n’a pas à rougir de celle de la PS5. Ajoutons à cela le support de technologie reconnue comme le Dolby ATMOS, que Sony n’intègrera pas dans sa console pour des questions financières.


Grâce à cet élément la partie audio de la XSX n’aura pas d’impact négatif sur le CPU de la console et se révèlera, comme la PS5, être de haut niveau !


CHAPITRE 8 : le Ray Tracing (RT)


Si Microsoft n’a pas trop insisté sur sa partie audio auparavant, c’est probablement pour privilégier la partie Ray Tracing, jugée comme l’un des principaux arguments marketing dans le gaming Next-Gen et pour la nouvelle Xbox. Car ici, on parle d’une technologie qui va embellir nettement le visuel de nos jeux vidéos en les rendant plus convaincants sur leur rendu d’ombre, d’éclairage ou encore de reflets, que ce que nous connaissons encore aujourd’hui. C’est instantané, « facile à démontrer ». Contrairement au HDR que Microsoft a mis en avant avec sa Xbox One S en 2016 (puis Xbox One X) qui, lui, était tributaire du téléviseur du joueur et de la qualité de sa dalle (vous savez, le fameux  écran 10 bits ?).

Avec le Ray Tracing (que nous nommerons RT dans les prochaines lignes), le gain visuel s’affiche indépendamment de votre équipement !


NB :  Le Ray Tracing est une technique assez jeune dans le monde des jeux contrairement à l’industrie du cinéma qui utilise le procédé depuis des années. Coté jeux vidéos c’est Nvidia qui depuis 2018 pousse la technologie sur ses meilleurs GPU PC.


Quand on parle RT dans les jeux vidéos, il faut entendre « Ray Tracing Hybride ». Que vous soyez clients chez Nvidia sur le meilleur GPU de la marque, ou que vous ayez une Xbox Series X… le résultat est le même c’est un RT Hybride dont il s’agit.

Que faut-il comprendre par « hybride » ? La gestion du RT est dite hybride car elle utilise des RT Cores dédiés + le calcul des shaders par les Computes Units du GPU (appelés Streaming Multiprocessors chez Nvidia)

« le calcul des shaders par les Computes Units » -> C’est ce pourquoi, même sur les GPU Nvidia les plus puissants, activer le ray tracing présente un impact sur les performances globales de la carte graphique malgré la présence de « RT cores ».

En conclusion, en ayant des « RT cores dédiés » il est possible tout de même de minorer l’impact du RT sur les performances générales. Et c’est exactement ce que proposera la Xbox Series X. L’impact sur les performances générales est de l’ordre de 30% en ayant une gestion RT hardware chez Nvidia. Un impact similaire est donc à prévoir sur la XSX. Mais nous y reviendront…


ps5-1tbNB2 : Vous commencez à connaitre le schéma ? Et la PS5, comment elle fait ? Très bonne question ! La PS5 ne bénéficiera pas de RT hybride : car simplement pas équipée des fameux « RT cores dédiés » sur son SoC/APU. On parlera alors d’un Ray Tracing Software. Techniquement, le RT de la PS5 utilisera la même logique de calcul RT qu’AMD (BVH, calculs d’intersections, définitions plus bas dans l’article), en passant par l’usage du Rapid Packed Math (double FP16) introduit par AMD depuis les GPU Vega (Double FP16 = désigne la capacité du GPU à calculer en parallèle des données moins précises, directement par le GPU). L’impact sur les performances de la PS5 sera malheureusement bien plus conséquent car mobilisant les CU (déjà peu nombreux avec 36 CU) ce qui devrait limiter les propositions de RT poussé sur la console du constructeur japonais.


CH8

CH8.2

Revenons sur la XSX et son fonctionnement sur sa partie RT.

Dans ces slides, on note la présence d’une gestion hardware du RT avec les «Ray Accel» (RT Cores) dédiés à chaque CU du GPU (pour les deux qui en doutaient encore). Soit 52 RT cores répartis dans les 52 CU du GPU de la Xbox. (Schéma identique à Nvidia qui comprend 1 RT core par SM sur ses RTX 2000).

Au total, Microsoft déploie avec sa console les fameux 12 Teraflops (12,15 pour être précis) du GPU qui sont une clé du marketing autour du produit, mais simultanément, un total de 13 Teraflops uniquement dédiés au calcul de nos rayons !


NB 3 : On ne peut pas dire que la XSX fait 25 Teraflops (12 + 13TF) pour autant. Ce sont des calculs effectués en parallèle dont chacun a un objectif précis. C’est le principe même du ray tracing hybride.


CH8.3

Cette slide est intéressante à plus d’un titre. Au-delà de nous montrer concrètement le rendu du RT sur Minecraft (qui, rappelons-le, a fait l’objet d’une démonstration sur Xbox Series X en Path Tracing soit le niveau le plus élevé dans l’échelle du RT), on constate l’utilisation de la phrase « Not a complete replacement ». Certains ont vite conclu que le RT de la Xbox SX serait au rabais par rapport à la promesse initiale. Classique. Faux, mais classique.

« La Xbox Series X peut générer jusqu’à 95 milliards de rayons par seconde »

Sauf que cette phrase indique simplement que les anciennes techniques d’éclairage sont toujours possibles sur Xbox Series X. L’utilisation du RT ne sera pas absolument un passage obligé pour sortir son jeu sur Series X.

CH8.4

Les ingénieurs de Microsoft ont précisé d’autres éléments, comme :

  • 380G/sec ray-box peak,
  • 95G/sec ray-tri peak

Mais aussi que le travail des shaders (CU) se faisait en parallèle du travail des RT cores (calculs d’intersections de lumière, apparence des textures/couleurs des modèles en fonctions des rayons, etc.)

Intéressons-nous plus particulièrement au « 95G/sec Ray-tri peak ». Cela signifie que la Xbox Series X peut générer jusqu’à 95 milliards de rayons par seconde (pic de performance). Ce qui nous permet de reprendre les chiffres donnés par Nvidia en 2018. En effet, pour une RTX 2080 Ti, le pic de performance ray-tracing était de 12 milliards de rayons par seconde, contre 95 milliards pour la Xbox Series X maintenant ! Cela laisse rêveur quant aux capacités RT de la nouvelle console de Microsoft, à plus forte raison lorsque l’on voit déjà les résultats très flatteurs d’une RTX 2080 Ti en jeu (GPU qui je vous le rappelle était encore le haut de gamme Nvidia à 1300€ jusqu’à fin août 2020) !

\Le point de précision by Darkfoxx \


Si vous voulez d’avantages d’info sur le RT, lisez ce qui suit, sinon rendez-vous au chapitre final, c’est vous qui voyez !


Premièrement, je me permets de vous apporter une idée plus précise de ce qu’est le ray tracing hybride :

Obtenir un rendu 100% en lancé de rayons (Ray Tracing), c’est encore un rêve qui ne peut pour l’instant appartenir qu’au monde du cinéma. En effet, la somme de calculs est tellement colossal qu’il faut des stations de travail dédiées à cela et cela peut prendre des heures pour faire le rendu souhaité. Mais pour le monde du cinéma, cela ne pose pas de problème puisqu’il s’agit là de post-production et de montage. Le rendu final est imprimé sur pellicule (façon de parler) et nous est rendu, pas en temps réel du coup, sur grand écran.

Le Ray Tracing hybride, lui, mélange donc rastérisation classique (= calcul des shaders et des modèles 3D) pour la majorité du rendu, et ray tracing accéléré en matériel pour les effets de lumières, de reflets et d’ombre.

Et maintenant, nous allons nous appuyer sur les slides de Nvidia lorsqu’ils ont présenté leur architecture Turing en 2018 (celles d’AMD arriveront dans quelques semaines avec la présentation de l’architecture RDNA 2) + de très bonnes définitions faites par 2 sites.

Définitions de Ray Tracing hybride par nos confrères de Tom’s HARDWARE :

« Les coeurs RT sont en fait des accélérateurs matériel d’une fonction fixe, celle du BVH (Bounding Volume Hierarchy). Cet algorithme permet de structurer et de simplifier les opérations de ray tracing pour les rendre plus efficaces, notamment en réduisant le nombre d’intersections de triangles qui doivent être testées pour calculer la trajectoire finale du rayon. Les calculs BVH existent déjà dans les jeux, dans des volumes très restreints, via l’API D3D12 RayTracing Fallback. Ils prennent énormément de ressources, surtout s’ils doivent être appliqués dans un grand volume. Le calcul monopolise les coeurs programmables du GPU pour tester les intersections des rayons et des triangles. Il est donc impossible de faire tourner ça en temps réel sur un GPU normal pour un grand volume. »

CH8.5

« Chez Turing (et RDNA 2 maintenant), les coeurs RT accélèrent précisément ces calculs. Le SM (ou CU) lance un rayon dans la scène à tester, et laisse le coeur RT simuler le reste en matériel, sans monopoliser les coeurs CUDA (ou CU d’un GPU AMD). Ainsi, la GeForce GTX 1080 Ti ne peut générer que 1,1 milliard de rayons par seconde en monopolisant tous ses coeurs CUDA, et la RTX 2080 Ti peut en générer 10 milliards seulement avec ses 68 coeurs RT (sans intervention de cœurs CUDA donc). Le ray tracing est ainsi capable de dessiner des ombres quasi-parfaites à l’écran, mais aussi de gérer beaucoup mieux les reflets. »

CH8.6

Définition du Boud Volume Hierarchy (BVH) par nos confrères de comptoir-hardware.com :

« Un autre axe de réduction du nombre de calculs (de traçage de rayons), est l’utilisation de la technique Bounding Volume Hierarchy ou BVH. Kesako ? En fait, une part importante de ces calculs est dédiée à « trouver » le triangle « élémentaire » (des objets 3D) frappé par un rayon, afin de déterminer la trajectoire de ce dernier. C’est là qu’intervient ce fameux BVH. En pratique, cet algorithme teste si le rayon touche une « grande » boite de forme géométrique simple (les tests d’intersections sont ainsi « aisés » à réaliser) qui englobe l’objet ou une partie de ce dernier. Si ce n’est pas le cas, il passe à une autre grande boite, si par contre le rayon touche la boite, il effectue une recherche plus fine à l’intérieur de cette dernière via des boites plus petites et ainsi de suite jusqu’à isoler le triangle d’intersection. »

CH8.7

Je remercie vivement nos confrères de Tom’s HARDWARE.com et de comptoir-hardware.com qui nous ont permis, en 2018 déjà, de mieux appréhender le principe du ray-tracing hybride.

Vous l’aurez ainsi compris, il est en de même pour la Xbox Series X. Et quand Microsoft écrit sur son slide de Minecraft « Not a complete replacement », c’est du fait même du principe hybride du rendu final, tout comme chez Nvidia.

…Fin du point Darkfoxx\


CHAPITRE 9 : Conclusion. 


A travers ces lignes, vous comprenez que la nouvelle bécane de Microsoft est un tour de force technologique. Les ingénieurs de Redmond on pris le temps de développer et d’intégrer tous ces éléments que nous nous sommes évertués à vous expliquer au mieux.

  • IA/DirectML, 
  • Mesh Shaders, 
  • VRS, 
  • Sampler Feedback Streaming, 
  • Puce audio 3D, 
  • RT cores.

Toutes les technologies de cette liste ont un seul et unique point commun :

Au-delà de leur intégration directement sur la puce (en hardware !), il s’agit de réaliser des économies de ressources CPU et/ou GPU. L’objectif sera d’être capable de pousser le visuel des jeux comme jamais auparavant, tout en proposant un framerate solide ainsi que du Ray Tracing de qualité, sans compromis. En effet, le RT ayant malgré tout un impact à considérer sur les performances, l’ensemble de ces blocs dédiés et API sont justement présents pour « effacer » ce dit impact.

Une seule condition est obligatoire pour que toutes les planètes s’alignent : l’utilisation et adoption massive par les développeurs de DirectX 12 Ultimate sur Xbox ET PC.

Pour finir ce voyage, nous n’oublions pas la finalité de tout ceci : les jeux. Microsoft s’est clairement fait comprendre avec ses 15 studios XGS. Le triptyque 4K/60fps/RT devrait être particulièrement présent sur les productions internes. Il ne sera en revanche pas étonnant que, venant des développeurs tiers la 1ère année, ce triptyque là ne soit pas forcément maitrisé immédiatement (on pense notamment à un jeu comme Assassin’s Creed Valhalla, d’abord pensé pour Xbox One et PS4).

Pas de doute possible, le trio 4K/60fps/RT est un objectif très ambitieux, que seules des cartes graphiques comme les Nvidia RTX 2080 Super et 2080 Ti actuelles peuvent atteindre grâce à l’usage du DLSS 2.0 et du VRS notamment !

« Le triptyque 4K/60fps/RT devrait être particulièrement présent sur les productions internes. »

Merci de nous avoir lu. Merci pour votre soutien, et si besoin notre Twitter n’est jamais loin : @MWaypoint

Article réalisé par Darkfoxx et le soutien infaillible de Twins 😉 

Un commentaire sur « Xbox Series X – HotChips 2020 : Microsoft et la conquête de l’optimisation à son paroxysme. »

  • Microsoft au top et transparent sur sa serie x,on ne peut pas en dire autant sur son concurrent directe qui a part son ssd « magique » et son pad ne montre rien de sa console au final et qui élude pas mal de questions.
    Le seul faux pas de microsoft a été de montrer halo infinite.
    Même le microsoft store a été mis a jour,la mention serie x a été rajoutée sur tous les jeux dispos et a venir,ce qui ne laisse aucuns doutes sur la rétro totale.

    J'aime

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s