Demande de brevet d’AMD pour une meilleure utilisation des puces GPU

AMD a publié une demande de brevet pour répartir la charge de rendu sur plusieurs chiplets GPU, ce qui fournit des informations intéressantes. Afin d’optimiser l’utilisation des shaders dans les jeux, une scène de jeu est divisée en blocs individuels et distribuée aux chiplets. Un regroupement à deux niveaux est utilisé pour cela.

Toute une vague de nouvelles demandes de brevet

Avec une véritable vague de demandes de brevet publiées au cours de la semaine dernière, AMD a potentiellement révélé de nombreuses nouvelles informations sur les technologies à venir dans les GPU et les CPU. Rien qu’au 30 juin, 54 demandes de brevet ont été publiées. Il reste à voir quels brevets seront finalement approuvés et lesquels se retrouveront réellement dans les produits. Indépendamment de cela, les applications fournissent des informations intéressantes sur les approches technologiques poursuivies par AMD.

On s’intéresse particulièrement à la demande de brevet US20220207827 pour le binning en deux étapes de données d’image afin de pouvoir mieux répartir les charges de rendu d’un GPU sur plusieurs chiplets. AMD avait déjà soumis la candidature fin décembre 2021.

Le partage classique de la charge sur les shaders

Traditionnellement, la rastérisation des données d’image sur un GPU fonctionne relativement simplement : chaque unité de shader (ALU) du GPU peut assumer la même tâche, à savoir attribuer une couleur à des pixels individuels. Pour cela, le polygone de texture situé à l’emplacement du pixel correspondant dans la scène de jeu est mappé sur le pixel. Étant donné que la tâche de calcul est toujours la même en principe et ne diffère que par des textures différentes à différents points de la scène, la méthode de travail s’appelle « Single Instruction – Multiple Data » (SIMD).

Dans les jeux modernes, cette étape de calcul appelée « shading » n’est plus la seule tâche d’un GPU. Au lieu de cela, de nombreux effets de post-traitement sont désormais ajoutés en standard après l’ombrage réel, qui ajoutent, par exemple, l’occlusion environnementale, l’anticrénelage et les ombres. Le lancer de rayons, en revanche, n’a pas lieu après l’ombrage, mais parallèlement à celui-ci, et représente une méthode de calcul complètement différente. Vous trouverez plus d’informations à ce sujet dans le rapport Comment les rayons GPU sont accélérés.

Dans les jeux sur GPU, cette charge de calcul évolue jusqu’à plusieurs milliers d’unités de calcul de manière exemplaire – contrairement aux CPU, où les programmes doivent être écrits spécialement pour plus de cœurs. Ceci est rendu possible par le planificateur, qui divise le travail au sein de la carte graphique en tâches plus petites qui sont traitées par les unités de calcul (CU). Cette division est appelée binning. Pour ce faire, l’image à restituer est découpée en blocs individuels d’un certain nombre de pixels, chaque bloc est calculé par une sous-unité du GPU puis synchronisé et assemblé. Les pixels à calculer sont ajoutés à un bloc jusqu’à ce que la sous-unité de la carte graphique soit pleinement utilisée. Dans ce processus, la puissance de calcul des shaders, la bande passante mémoire et les tailles de cache sont prises en compte.

Présentation de l’implémentation d’un GPU multi-chiplet. (Image : AMD)

Nouveaux défis dans les GPU multi-chiplet

Comme le souligne AMD dans le texte du brevet, la division et la jonction ultérieure nécessitent une très bonne connexion de données entre les éléments individuels d’un GPU. C’est un obstacle pour la stratégie des puces, car les liaisons de données en dehors d’un dé sont plus lentes et ont des latences plus élevées.

Si la transition vers les chiplets a été relativement facile avec les CPU, car une tâche CPU qui a été répartie sur plusieurs cœurs fonctionne aussi bien sur les chiplets, ce n’est pas le cas avec les GPU. Cela signifie que le planificateur d’un GPU est aujourd’hui là où se trouvait le logiciel CPU avant l’introduction des premiers processeurs double cœur. Une séparation fixe en plusieurs chiplets n’était auparavant pas possible de manière raisonnable.

Fonctionnement du regroupement à deux niveaux. (Image : AMD)

L’approche d’AMD : le binning à deux niveaux

AMD vise à résoudre ce problème en modifiant le pipeline de rastérisation pour répartir les tâches sur plusieurs chiplets GPU. A cet effet, le binning est élargi et amélioré. AMD parle de « binning à deux niveaux » ou de « binning hybride ».

Au lieu de découper une scène de jeu directement en blocs pixel par pixel, la découpe s’effectue en deux temps. La géométrie est d’abord traitée, ce qui signifie que la scène 3D est convertie en une image bidimensionnelle. Cette étape, appelée ombrage des sommets, est généralement effectuée entièrement avant le début de la rastérisation. Dans le cas des chiplets GPU, l’ombrage des sommets n’est préparé que de manière minimale sur le premier chiplet GPU, puis la scène de jeu est grossièrement regroupée. Cela crée des blocs grossiers (bins grossiers), qui sont chacun traités par un chiplet GPU. L’ombrage des sommets est terminé dans ces blocs bruts, permettant aux tâches traditionnelles telles que la rastérisation et le post-traitement d’avoir lieu.

Le chiplet qui prend en charge la division est toujours le même et est appelé « chiplet primaire ». Il est directement connecté au reste du PC, principalement le CPU. Les autres chiplets prennent un siège arrière et n’accomplissent les tâches que lorsqu’ils leur sont assignés. Pour ce faire, ils fonctionnent de manière asynchrone et peuvent continuer à fonctionner même lorsque le « Primary Chiplet » est occupé à analyser la scène pour la trame suivante (« Visibility Phase »). En général, il semble être un énorme défi de maximiser l’utilisation des unités de traitement. Pendant que le « chiplet primaire » est occupé par le regroupement grossier de la scène de jeu, les autres unités « attendent » les données. Si un chiplet termine son bloc plus tôt que les autres, il attend à nouveau. Ce serait inefficace.

Afin d’optimiser l’utilisation des chiplets, AMD propose également une division dynamique du travail en plus d’une division statique du travail (le chiplet 1 travaille toujours sur le bloc 1, le chiplet 2 sur le bloc 2, etc.). La charge de travail de chaque bloc est estimée au départ pour ensuite répartir les blocs de manière à ce que tous les chiplets soient complétés en même temps. Les deux principes sont illustrés dans les figures contenues dans le brevet « Fig. 4″ et « Fig. 5 ».

Division statique du travail sur les chiplets GPU. En raison de la complexité différente des tâches (410-420), les chiplets sont complétés à des moments différents. (Image : AMD)

Image 1 de 2

L’approche d’AMD tient également compte des charges de calcul « simples », où, par exemple, les anciens jeux demandent si peu de GPU qu’il serait peu économique de les répartir sur plusieurs chiplets. Ensuite, la rastérisation est complètement prise en charge et traitée par le premier chiplet. Il n’y a pas de surcharge et les puces restantes peuvent être envoyées dans un état d’économie d’énergie.

Avec son brevet, AMD protège également une solution de pilote en décrivant un processus via un « support lisible par ordinateur non transitoire ». Le pilote doit fournir des instructions qui permettent la distribution du travail aux chiplets GPU comme décrit.

Quand Radeon viendra-t-il avec des chiplets GPU ?

Il n’y a actuellement aucune clarté quant au moment où l’approche décrite par AMD pour une utilisation optimisée des shaders sur les GPU multi-chiplet dans les jeux deviendra pertinente dans la pratique. AMD a quant à lui confirmé que RDNA 3 sera basé sur une approche chiplet comme base des Radeon RX 7000 à la fin de l’année, mais pas qu’il y aura plusieurs chiplets GPU. Récemment, il a été dit que même si plusieurs contrôleurs de mémoire avec des chiplets Infinity Cache seraient utilisés, un seul chiplet GPU serait utilisé. Reste à savoir si ces rumeurs sont vraies ou non.

CDNA 2 s’appuie déjà sur deux GCD (Graphics Compute Dies) pour les cartes graphiques HPC de la série Instinct MI200, et CDNA 3 s’appuiera sur eux. Les chiplets sont connectés via « AMD Infinity Interconnect ».

50 % de performances en plus avec RDNA 3 (Image : AMD) CDNA 3 avec boîtier de puces 3D (Image : AMD) Radeon RX 7000 et MI300 : RDNA 3 est livré avec des puces, mais seul CDNA 3 les empile AMD Radeon RX 7000 : Navi 3X et RDNA 3 sont prévus hybrides en 5 et 6 nm

Les éditeurs souhaitent remercier le membre de la communauté @ETI1120 pour avoir signalé cet article.

Cet article était-il intéressant, utile ou les deux ? Les éditeurs sont satisfaits de tout support de ComputerBase Pro et des bloqueurs de publicités désactivés. En savoir plus sur les annonces sur ComputerBase.

Articles similaires

Bouton retour en haut de la page