Vous avez suivi les rumeurs et ignoré le battage médiatique; tu as attendu commentaires et regardé toutes les métriques. Enfin, vous avez giflé votre argent et reparti avec l'une des dernières cartes graphiques d'AMD ou de Nvidia. Parmi eux, un gros processeur graphique rempli de milliards de transistors fonctionne à des vitesses d'horloge impensables il y a dix ans.

Vous êtes vraiment satisfait de votre achat et les jeux ne se sont pas améliorés. Cependant, vous vous demandez peut-être ce qui alimente exactement votre nouvelle Radeon. RX 5700 et comment différent dans une puce GeForce RTX.

Bienvenue dans la comparaison de l'architecture et des fonctionnalités d'AMD et de Nvidia: Navi vs les derniers GPU de Turing.

Anatomie GPU moderne

Avant de commencer à décomposer les structures et les systèmes de puces courants, examinons la forme de base que suivent tous les GPU modernes. Pour la plupart, ces processeurs ne sont que des calculatrices à virgule flottante (FP); en d'autres termes, ils effectuent des opérations mathématiques sur des valeurs décimales / fractionnaires. Donc, au moins un GPU doit avoir une unité logique dédiée à ces tâches, et celles-ci sont généralement ALU FP (unités logiques arithmétiques à virgule flottante) ou FPUs pour faire court. Tous les calculs effectués par les GPU ne sont pas en valeurs de données FP, il y aura donc également une ALU pour l'entier (entier) peut être la même unité qui gère les opérations mathématiques ou les deux types de données.




Maintenant, ces unités logiques auront besoin de quelque chose pour les organiser en les décodant et en les organisant pour les occuper, et cela se présentera sous la forme d'au moins un groupe d'unités logiques spécial. Contrairement aux ALU, ils ne peuvent pas être programmés par l'utilisateur final; au lieu de cela, le fournisseur de matériel s'assurera que ce processus est entièrement géré par le GPU et ses pilotes.




Il doit également y avoir une sorte de structure de mémoire pour stocker ces instructions et les données qui doivent être traitées. À son niveau le plus simple, il se présentera sous deux formes: cache et un point mémoire locale. Le premier sera intégré dans le GPU et LA HONTE. Ce type de mémoire est rapide, mais il occupe relativement une grande partie de la configuration du processeur. Mémoire locale DRAMEIl est légèrement plus lent que SRAM et normalement pas mis sur le GPU. Mémoire locale sur la plupart des cartes graphiques que nous voyons aujourd'hui GDDR Modules DRAM.

Enfin, il inclut des tâches de paramétrage supplémentaires telles que la création de graphiques 3D, la création de triangles à partir de coins, la pixellisation d'une image 3D, l'échantillonnage et la fusion de textures. Comme les unités d'instructions et de contrôle, celles-ci aussi fonction constante dans la nature. Ce qu'ils font et comment ils fonctionnent est totalement transparent pour les utilisateurs qui programment et utilisent le GPU.




Mettons cela ensemble et créons un GPU:




Le bloc orange est l'unité qui traite les textures en utilisant ce qu'on appelle unités de mappage de texture (TMU'lar) - TA adressage de texture volume - crée des emplacements de mémoire pour le cache et la mémoire locale à utiliser - et TF ne pas apporter de texture rassemble les valeurs de texture de la mémoire et les rassemble. Aujourd'hui, les TMU sont à peu près les mêmes chez tous les fournisseurs car ils peuvent gérer, échantillonner et mélanger plusieurs valeurs de texture par cycle d'horloge du GPU.




Le bloc ci-dessous écrit les valeurs de couleur des pixels dans le cadre, les échantillonne en retour (PO) et les mélange (PB); ce bloc effectue également les opérations utilisées lors de l'application de l'anti-crénelage. Le nom de ce bloc: unité de sortie de rendu or créer un backend (ROP / RB pour faire court). Comme le TMU, ils deviennent maintenant assez standard, chacun manipulant confortablement quelques pixels par cycle d'horloge.

Cependant, notre GPU de base aurait été terrible même selon les normes il y a 13 ans. Pourquoi?

Il n'y a qu'un seul FPU, TMU et ROP. En 2006, les processeurs graphiques de Nvidia comme la GeForce 8800 GTX en avaient respectivement 128, 32 et 24. Alors commençons à faire quelque chose à ce sujet ...




Comme tout bon fabricant de processeurs, nous avons mis à jour le GPU en ajoutant quelques unités supplémentaires. Cela signifie que la puce peut traiter plus d'instructions en même temps. Pour vous aider, nous avons ajouté d'autres caches, mais cette fois juste à côté des unités logiques. Plus le cache est proche d'une structure de calculatrice, plus vite il peut être initialisé dans les transactions qui lui sont assignées.

Le problème avec notre nouvelle conception est qu'un seul contrôleur est encore disponible pour gérer nos ALU supplémentaires. Ce serait mieux si nous avions plus de blocs d'unités, tous gérés par leurs propres contrôleurs séparés, car cela signifie que nous pouvons effectuer des opérations très différentes en même temps.

Maintenant c'est plus! Blocs ALU séparés contenant leurs propres TMU et ROP et soutenus par des tranches de cache délicieusement savoureuses et rapides. Ce n'est encore qu'un de tout, mais la structure de base n'est pas à un million de kilomètres du processeur graphique que nous voyons sur les ordinateurs et les consoles aujourd'hui.

Navi ve Turing: Godzilla GPU'ları

Maintenant que nous avons défini la disposition de base d'une puce graphique, bien que légèrement agrandie et traitée pour mettre en évidence diverses structures, Navi vs. Commençons notre comparaison de Turing.

Sur la gauche se trouve le dernier processeur d'AMD. La conception générale de la puce est appelée Navi (certains sont appelés Navi 10) et l'architecture graphique est appelée RDNA. À côté, à droite, se trouve le processeur TU102 pleine taille de Nvidia avec la dernière architecture Turing. Il est important de noter que ces images ne sont pas mises à l'échelle: la surface de la matrice Navi est de 251 mm2, tandis que TU102 est de 752 mm2. Le processeur Nvidia est gros, mais pas 8 fois plus gros que l'offre AMD!

Tous les deux colossal le nombre de transistors (10,3 contre 18,6 milliards), mais TU102 a une moyenne d'environ 25 millions de transistors par mm carré contre 41 millions de Navi par mm carré.

En effet, bien que les deux puces soient fabriquées par TSMC, elles sont produites dans différents nœuds de processus: Turing de Nvidia est sur la ligne de production 12 nm mature, tandis que Navi d'AMD est produit dans le nouveau nœud 7 nm.

Le simple fait de regarder des images des moules ne nous en dit pas beaucoup sur les architectures, alors jetons un coup d'œil aux schémas de principe GPU produits par les deux sociétés.

Les diagrammes ne sont pas une représentation réaliste à 100% des mises en page réelles, mais si vous les faites pivoter de 90 degrés, les différents blocs et la bande centrale apparaissant sur les deux peuvent être définis. Pour commencer, nous pouvons voir que les deux GPU ont une structure générale comme la nôtre (bien que plus que toute autre chose!).

Les deux conceptions suivent une approche en couches de la façon dont tout est organisé et regroupé - pour commencer à utiliser Navi, le GPU se compose de 2 blocs recherchés par AMD. Moteurs Shader (SE), chacun d'eux est appelé 2 blocs asynchrone Moteurs informatiques (AS). Chacun de ceux-ci contient 5 blocs dans le titre. Processeurs de groupe de travail (WGP), qui se compose de 2 Unités de traitement de l'information (Öze).

Les noms et les numéros sont différents pour la conception de Turing, mais la hiérarchie est très similaire: 6 Clusters de traitement graphique (GPC), 6 chacun Clusters de traitement de texture (TPC), 2 chacun Multiprocesseur de flux (SM) blocs.

Si vous voyez un processeur graphique comme une grande usine où différents départements produisent différents produits en utilisant les mêmes matières premières, cette organisation commence à avoir un sens. Le PDG de l'usine envoie tous les détails opérationnels à l'entreprise, puis les divise en différentes tâches et charges de travail. Avoir plus d'un, indépendant La productivité de la main-d'œuvre a été augmentée à l'usine. Ce n'est pas différent pour les GPU et voici le mot clé magique Horaire.

Front et centre, soldat - chronométrage et répartition

Comment nous regardons Exercices de création de jeux 3DNous avons vu que le processeur graphique n'est rien de plus qu'une calculatrice ultra rapide en effectuant une série d'opérations mathématiques sur des millions de données. Navi et Turing sont classés comme suit: Commande unique Données multiples (SIMD), mais une meilleure explication Single Way Multi Fil (Sens).

Un jeu 3D moderne produit des centaines de threads, parfois des milliers, car le nombre de sommets et de pixels à rendre est énorme. Pour s'assurer que tout est fait en quelques microsecondes, il est important d'avoir autant d'unités logiques que possible sans tout arrêter car les données requises ne sont pas au bon endroit ou il n'y a pas assez d'espace de ressources pour travailler à l'intérieur.

Lorsque nous avons examiné le fonctionnement de la création de jeux en 3D, nous avons vu qu'un processeur graphique n'est rien de plus qu'une calculatrice très rapide, et nous avons effectué diverses opérations mathématiques sur des millions de données. Navi et Turing sont classés comme des processeurs SIMD (Single Command Multiple Data), mais une meilleure explication serait le Single Command Multiple Threads (SIMT).

Navi et Turing fonctionnent de la même manière, donc une unité centrale prend tous les threads, puis commence à les programmer et à les diffuser. Dans la puce AMD, ce rôle Processeur de commande graphique; Nvidia'da, GigaThread Motoru. Les fils sont disposés de telle sorte que ceux qui ont les mêmes instructions sont regroupés dans une collection de 32 groupes.

AMD cette collection vaguealors que Nvidia ceci courbure. Pour Navi, une unité de calcul peut gérer 2 vagues (ou une vague de 64 threads, mais ce processus prend deux fois plus de temps) et dans Turing un multiprocesseur de flux fonctionne avec 4 warps. Dans les deux modèles, la vague / déformation est indépendante, ce qui signifie que les autres n'ont pas besoin de la terminer avant de commencer.

Jusque-là, ce n'est pas très différent entre Navi et Turing - les deux ont été conçus pour gérer un grand nombre de threads pour créer et calculer des charges de travail. Nous devons examiner quels processeurs ces threads sont pour voir où les deux géants du GPU se séparent dans la conception.

Différence exécutive - RDNA et CUDA

Alors que la plupart de la terminologie utilisée semble la même, AMD et Nvidia adoptent une approche assez différente des unités de shader combinées. Unités d'exécution de Nvidia (MIRACLES des graines) numérique dans la nature - cela signifie qu'une unité effectue une opération mathématique sur un composant de données; Contrairement aux unités AMD (Processeurs de flux) travailler sur vecteurs - une opération sur plusieurs composants de données. Il n'y a qu'une seule unité spécifique pour les opérations scalaires.

Avant d'examiner de plus près les unités d'exécution, examinons les propres modifications d'AMD. Pendant 7 ans, les cartes graphiques Radeon ont suivi une architecture appelée Graphics Core Next (GCN). Chaque nouvelle puce a révisé divers aspects de la conception, mais ils étaient tous fondamentalement les mêmes.

AMD a présenté un bref historique de l'architecture GPU:

GCN était une évolution de TeraScale, une conception qui permet de traiter simultanément de grandes vagues. Le principal avec TeraScale était que ce n'était pas très facile contre les programmeurs et qu'il fallait des routines très spécifiques pour obtenir le meilleur. GCN a résolu ce problème et a fourni une plate-forme beaucoup plus accessible.

Les UC de Navi ont été considérablement révisées à partir de GCN dans le cadre du processus d'amélioration d'AMD. Chaque CU contient deux ensembles:

  • 32 SP (ALU vectorielles IEE754 FP32 et INT32)
  • 1 SFU
  • 1 balances INT32 ALU
  • 1 unité de chronométrage et de livraison

En plus de ceux-ci, chaque CU contient 4 unités de tissu. Il existe d'autres unités pour effectuer des opérations de lecture / écriture de données à partir du cache, mais non affichées dans l'image ci-dessous:

Par rapport à GCN, la configuration d'un RDNA CU peut ne pas sembler très différente, mais tout ce qui est important ici est organisé et organisé de cette manière. Pour commencer, chaque ensemble de 32 SP a sa propre unité d'instructions dédiée, GCN n'avait qu'un seul programme pour 4 ensembles de 16 SP.

Il s'agit d'un changement important, ce qui signifie qu'une vague de 32 threads par cycle d'horloge peut être fournie à chaque ensemble SP. L'architecture RDNA permet également aux unités vectorielles de traiter des vagues de 16 threads à deux fois la vitesse et des vagues de 64 threads de moitié, donc le code écrit pour toutes les cartes graphiques Radeon précédentes est toujours pris en charge.

Ces changements seront très appréciés des développeurs de jeux.

Pour les opérations scalaires, il existe maintenant deux unités qui peuvent les gérer; la seule réduction du nombre de composants est sous la forme de SFU - ce sont fonction spéciale unitéseffectue des opérations mathématiques très spécifiques, par exemple. trigonométrique (sinus, tangente), réciproque (1 divisé par un nombre) et racines carrées. RDNA en a moins que les GCN, mais ils peuvent désormais fonctionner sur des ensembles de données deux fois plus volumineux qu'auparavant.

Ces changements seront très appréciés des développeurs de jeux. Il y avait beaucoup de performances potentielles sur les anciennes cartes graphiques Radeon, mais c'était très difficile à faire. Désormais, AMD a fait un grand pas en avant vers la réduction de la latence dans le traitement des instructions et la conservation des fonctionnalités afin d'assurer la compatibilité descendante de tous les programmes conçus pour l'architecture GCN.

Qu'en est-il du graphisme professionnel ou du marché informatique? Ces changements sont-ils également bénéfiques pour eux?

La reponse courte est oui (Probablement). La version actuelle de la puce Navi trouvée sur la Radeon RX 5700 XT similaire a moins de processeurs de flux que la conception précédente de Vega, tandis que nous avons mieux performé la Radeon RX Vega 56 de la génération précédente est assez simple:

Une partie de ce gain de performances proviendra de la vitesse d'horloge plus élevée du RX 5700 XT que du RX Vega 56 (il peut donc écrire plus de pixels par seconde dans la mémoire locale), mais diminue jusqu'à 15% aux performances entières et en virgule flottante les plus élevées; Néanmoins, nous avons constaté que la puce Navi fonctionnait 18% mieux que la Vega.

Les scientifiques exécutant des programmes de rendu professionnels et des algorithmes complexes n'éclatent pas avec quelques tours de Battlefield V dans leur travail (c.-à-d. pourrait être...) uniquement si les opérations scalaires, vectorielles et matricielles effectuées dans un moteur de jeu sont traitées plus rapidement navire transformez-le en marché informatique. Actuellement, nous ne savons pas quels sont les projets d'AMD pour le marché professionnel - ils peuvent bien s'intégrer à l'architecture Vega et aider à améliorer la conception et la fabrication, mais étant donné les progrès de Navi, la société transfère tout vers la nouvelle architecture.

La conception du GPU de Nvidia a subi une évolution similaire depuis 2006, date à laquelle ils ont lancé la série GeForce 8, bien que des changements moins radicaux que AMD. Ce GPU a créé la première architecture Tesla à utiliser une première approche shader dans l'architecture d'exécution. Ci-dessous, nous pouvons voir les changements dans les blocs SM du successeur de Tesla (Fermi) au prédécesseur de Turing (Volta):

Comme mentionné précédemment dans cet article, les noyaux CUDA numérique. Ils peuvent exécuter une instruction flottante et une instruction entière par cycle d'horloge sur un composant de données (notez cependant que l'instruction elle-même peut prendre plusieurs cycles d'horloge pour être traitée), mais les unités de minutage les organisent en groupes, elles peuvent effectuer des opérations vectorielles à un programmeur. Le changement le plus important au fil des ans comprend non seulement le fait d'avoir plus d'unités, mais aussi la façon dont elles sont organisées et segmentées.

Dans la conception Kepler, la puce complète avait 5 GPC, chacun contenant trois blocs SM; Lorsque Pascal est apparu, les GPC ont été divisés en partitions séparées (TPC) avec deux SM par TPC. Comme pour le design Navi. cette fragmentation est importante car elle permet au GPU général d'être utilisé aussi pleinement que possible; Plusieurs jeux d'instructions indépendants peuvent être traités en parallèle, augmentant l'ombrage et les performances de calcul du processeur.

Jetons un coup d'œil à Turing équivalent à l'unité de calcul RDNA:

Un SM contient 4 blocs de transaction, chacun contenant:

  • 1 unité de planification et de répartition des instructions
  • 16 balances IEE754 FP32 ALU
  • 16 balances INT32 ALU
  • 2 couleurs Tensor
  • 4 SFU
  • 4 Chargement / Stockage (exécution des opérations de lecture / écriture du cache)

Il existe également 2 unités FP64 par SM, mais Nvidia ne les affiche plus dans les schémas de principe et chaque SM dispose de 4 unités de texture (y compris les systèmes d'adressage de texture et de filtrage de texture) et 1 noyau RT (Ray Tracing).

Les ALU FP32 et INT32 peuvent fonctionner simultanément et en parallèle. C'est une caractéristique importante car les moteurs de rendu 3D nécessitent souvent des calculs en virgule flottante, mais il y a un nombre raisonnable d'opérations sur des nombres entiers simples (par exemple des calculs d'adresse de données) à effectuer.

Les Tensor Cores sont des ALU spéciales qui effectuent des opérations matricielles. Les matrices sont des tableaux de données «carrés» et les cœurs Tensor fonctionnent sur une matrice 4 x 4. Le FP16 est conçu pour traiter les composants de données INT8 ou INT4 de sorte que le fonctionnement flottant se produise à 64 FMA (fusionné multiply-post-add) en un cycle d'horloge. Ce type de calcul s'appelle les réseaux de neurones et l'inférence - pas tout à fait courante dans les jeux 3D, mais très utilisée par Facebook aime dans les voitures avec des algorithmes d'analyse des médias sociaux ou des systèmes de conduite autonome. Navi peut également faire des calculs matriciels, mais nécessite un grand nombre de SP pour cela; Dans le système de Turing, les opérations matricielles peuvent être effectuées tandis que les cœurs CUDA font d'autres calculs.

RT Core est une autre unité spéciale unique à l'architecture de Turing qui exécute des algorithmes mathématiques très spécifiques utilisés pour le système de traçage de rayons de Nvidia. Une analyse complète de cela dépasse le cadre de cet article, mais RT Core sont deux systèmes qui fonctionnent séparément du reste du SM, donc bien que RT Core soit occupé à faire des calculs, il peut fonctionner sur des shaders de pics ou de pixels. pour le lancer de rayons.

Au niveau de base, Navi et Turing ont des unités d'exécution qui offrent un ensemble de fonctionnalités assez similaire (une exigence qui vient du respect des exigences de Direct3D, OpenGL, etc.).

Au niveau de base, Navi et Turing ont des unités d'exécution qui offrent un ensemble de fonctionnalités assez similaire (une exigence qui vient du respect des exigences de Direct3D, OpenGL, etc.), mais ils adoptent une approche très différente de la façon dont ces fonctionnalités sont. fini. Quand il s'agit de ce qui est meilleur, il s'agit de la façon dont ils sont utilisés: FP32, un programme qui produit des calculs vectoriels et un grand nombre de threads peu performants préférerait Navi, alors qu'un programme avec une variété de calculs entiers, flottants, scalaires et vectoriels donnera la flexibilité de Turing. préfère, etc.

Hiérarchie de la mémoire

Les GPU modernes sont conçus pour effectuer une série d'opérations sur des processeurs de flux, c'est-à-dire sur chaque élément d'un flux de données. Cela les rend moins flexibles qu'une CPU à usage général et nécessite également d'optimiser la hiérarchie de la mémoire de la puce pour recevoir des données et des instructions vers les ALU aussi rapidement que possible et dans autant de flux que possible. Cela signifie que les GPU auront moins de cache que le CPU, car la plupart de la puce doit être dédiée à la quantité de cache, pas à l'accès au cache.

AMD et Nvidia ont tous deux recours à l'utilisation de plusieurs caches dans les puces, alors jetons un coup d'œil à ce que Navi emballe en premier.

En partant du niveau le plus bas de la hiérarchie, deux blocs de processeurs de flux utilisent un total de 256 livres de registre à usage général vectoriel (généralement fichier journal) Était le même montant que Vega mais entre 4 blocs SP; Manquer de registres tout en essayant de traiter un grand nombre de threads nuit vraiment aux performances, c'est donc une "bonne chose". AMD a également considérablement augmenté le fichier d'enregistrement scalaire. Alors qu'il ne faisait que 4 kio auparavant, c'est maintenant 32 kilos par unité scalaire.

Les deux unités de calcul partagent alors un cache L0 de 32 livres et un cache de données scalaires de 16 livres, mais chaque CU reçoit son propre cache L0 vectoriel de 32 livres; La connexion de toute cette mémoire aux ALU est un partage de données local de 128 livres.

Dans Navi, deux moteurs de calcul créent un processeur de groupe de travail et cinq d'entre eux forment le moteur de calcul asynchrone (ACE). Chaque ACE a accès à son propre cache L1 de 128 livres, et l'ensemble du GPU est en outre pris en charge par 4 caches MiB L2 qui se connectent aux caches L1 et à d'autres parties du processeur.

Comme le système est strictement utilisé pour gérer 16 contrôleurs de mémoire GDDR6, il s'agit d'une forme de l'architecture de connectivité Infinity Fabric propriétaire d'AMD. Pour maximiser la bande passante mémoire, Navi utilise également la compression de couleur sans perte entre L1, L2 et la mémoire GDDR6 native.

Encore une fois, tout cela est particulièrement bienvenu par rapport aux puces AMD précédentes qui n'avaient pas assez de cache de bas niveau pour le nombre d'unités d'ombrage qu'elles contiennent. En bref, plus de cache équivaut à plus de bande passante interne, moins d'instructions lentes (car elles doivent récupérer plus de données de la mémoire), etc. Et cela équivaut à de meilleures performances.

Sur la hiérarchie de Turing, il faut dire que Nvidia est timide lorsqu'il s'agit de fournir des connaissances approfondies dans ce domaine. Plus tôt dans cet article, nous avons vu chaque SM divisé en 4 blocs de transaction - chacun a un fichier journal plus petit de 64 livres que celui trouvé dans Navi, mais gardez à l'esprit que les ALU de Turing sont des scalaires, pas des vecteurs. , unités.

Ensuite, 96 ko de mémoire partagée pour chaque machine virtuelle peuvent être utilisés comme 64 ko de cache de données L1 et 32 ​​ko de cache de tissu ou d'espace d'enregistrement supplémentaire. En «mode de calcul», la mémoire partagée peut être divisée en différentes partitions, telles que 32 ko de mémoire partagée et 64 kio de cache L1, mais toujours en 64 + 32 divisions.

Le manque de détails sur le système de mémoire Turning nous a donné envie de plus, nous nous sommes donc tournés vers une équipe de recherche GPU travaillant chez Citadel Enterprise Americas. Récemment, ils ont publié deux articles. Temps ve Turing architectures; L'image ci-dessus est la fragmentation de la hiérarchie de la mémoire dans la puce TU104 (cache TU102 sport 6144 kiB L2 complet).

L'équipe a confirmé que le débit du cache L1 était de 64 bits par cycle et a déclaré que lors des tests, l'efficacité du cache L1 de Turing était le meilleur de tous les GPU de Nvidia. Ceci est comparable à Navi, bien que la puce d'AMD ait un taux de lecture plus élevé pour le magasin de données local, mais un taux inférieur pour les caches d'instructions / fixes.

Les deux GPU utilisent GDDR6 pour la mémoire locale - il s'agit de la dernière version de la SDRAM DDR graphique - et les deux utilisent des connexions 32 bits aux modules de mémoire, donc Radeon RX 5700 XT Il dispose de 256 puces de mémoire et fournit une bande passante maximale de 256 Gio / s et 8 Gio d'espace. une GeForce RTX 2080 Ti Avec la puce TU102, il fonctionne avec 11 modules de ce type pour une bande passante de 352 Gio / s et un stockage de 11 Gio.

La documentation d'AMD peut parfois sembler déroutante: dans le premier diagramme, nous voyons Navi montre quatre contrôleurs de mémoire 64 bits, tandis qu'une image ultérieure montre 16 contrôleurs. Considérant Samsung propose uniquement le GDDR6 32 bits Il semble que la deuxième image montre le nombre de connexions entre le système Infinity Fabric et les contrôleurs de mémoire. Il n'y a probablement que 4 contrôleurs de mémoire et chacun utilise deux modules.

Dans l'ensemble, il ne semble pas y avoir de différence énorme entre Navi et Turing en ce qui concerne leurs caches et leur mémoire locale. Navi se rapproche un peu plus du côté exécution des choses avec ses instructions / constantes plus volumineuses et ses caches L1, mais les deux sont remplis de choses, les deux utilisent la compression des couleurs lorsque cela est possible, et les deux ont beaucoup de modèles GPU personnalisés dans l'accès à la mémoire utilisé pour maximiser la bande passante.

Triangles, textures et pixels

Il y a quinze ans, les fabricants de GPU ont beaucoup fait sur le nombre de triangles que leurs puces peuvent gérer, le nombre d'éléments de texture pouvant être filtrés par cycle et la capacité des unités de sortie de rendu (ROP). Ces aspects sont toujours importants aujourd'hui, mais l'accent est beaucoup plus mis sur l'exécution, car les technologies de rendu 3D nécessitent plus de performances de calcul que jamais.

Cependant, juste pour noter qu'il n'y a pas de différence immédiatement perceptible entre Navi et Turing dans ces domaines, les unités de texture et les ROP valent toujours la peine d'être explorées. Dans les deux architectures, les unités de texture peuvent gérer et récupérer 4 éléments de texture, les filtrer inconnus dans un seul élément et les mettre en cache tous dans un cycle d'horloge (en ignorant les boucles d'horloge supplémentaires prises pour récupérer les données de la mémoire locale).

La disposition des ROP / RB est légèrement différente entre Navi et Turing, mais pas trop: la puce AMD a 4 RB par ACE et chacun peut produire 4 pixels mélangés par cycle d'horloge; A Turing, chaque GPC a deux RB, chacun donnant 8 pixels par heure. Le nombre de ROP du GPU est vraiment une mesure de cette vitesse de sortie des pixels, donc une puce Navi complète donne 64 pixels par heure et un TU102 96 complet (mais rappelez-vous qu'il s'agit d'une puce plus grande).

Il y a moins d'informations sur le côté triangulaire des choses. Ce que nous savons, c'est que Navi donne toujours un maximum de 4 primitives par cycle d'horloge (1 par ACE), mais il n'y a plus rien à savoir si AMD a résolu le problème avec ce problème. Shaders primitifs. C'était une caractéristique très vantée de Vega et permettait aux programmeurs d'avoir beaucoup plus de contrôle sur les primitives afin que le rendement primitif puisse être augmenté de 4 facteurs. fonctionnalité supprimée des pilotes Le produit est en sommeil peu de temps après son lancement et depuis lors.

En attendant toujours plus d'informations sur Navi, il serait imprudent de spéculer davantage. Turing gère également 1 primitive par heure et par GPC (c'est-à-dire jusqu'à 6 pour le GPU TU102 complet) dans les moteurs Raster, mais aussi Mesh ShadersOffre les mêmes fonctionnalités que les shaders primitifs d'AMD; Direct3D n'est pas un ensemble de fonctionnalités OpenGL ou Vulkan, mais peut être utilisé via des extensions API.

Cela semble donner à Turing un avantage sur Navi en termes de gestion des triangles et des primitives, mais actuellement, il n'y a pas suffisamment d'informations précises dans le domaine public.

Pas tout sur les unités d'application

Il y a d'autres aspects de Navi et Turing qui méritent d'être comparés. Pour commencer, les deux GPU disposent de moteurs d'affichage et de médias très avancés. Le premier traite la sortie vers le moniteur, le second code et décode les flux vidéo.

Comme vous vous en doutez d'une nouvelle conception de GPU 2019, le moteur d'affichage de Navi offre des résolutions très élevées à des taux de rafraîchissement élevés et offre une prise en charge HDR. Voir la compression de flux (DSC) est un algorithme de compression rapide avec perte qui permet de transmettre des résolutions 4K + à des taux de rafraîchissement supérieurs à 60 Hz sur une connexion DisplayPort 1.4; Heureusement, la détérioration de la qualité de l'image est très faible au point que vous considérez que le DSC est presque sans perte.

Turing prend également en charge DisplayPort avec des connexions DSC, mais la combinaison prise en charge de haute résolution et de taux de rafraîchissement est légèrement meilleure que Navi: 4K HDR à 144 Hz - le reste est identique.

Le moteur multimédia de Navi est aussi moderne que le moteur d'affichage et Codage vidéo avancé (H.264) et Codage vidéo haute efficacité (H.265), toujours à des résolutions élevées et des débits binaires élevés.

Le moteur vidéo de Turing est à peu près le même que celui de Navi, mais la prise en charge de l'encodage 8K30 HDR peut faire pencher la balance en faveur de Turing pour certaines personnes.

Il y a d'autres aspects à comparer (par exemple, l'interface PCI Express 4.0 de Navi ou le lien NV de Turing), mais indépendamment de la façon dont ils sont habillés et commercialisés, ce sont de très petites pièces de l'architecture globale. En effet, pour la grande majorité des utilisateurs potentiels, ces fonctionnalités uniques ne seront pas importantes.

Comparaison à l'identique

Cet article est une observation de la conception architecturale, des caractéristiques et des fonctionnalités, mais une comparaison directe des performances serait un bon moyen de compléter une telle analyse. Cependant, associer la puce Navi sur une Radeon RX 5700 XT dans une GeForce RTX 2080 Ti avec le processeur Turing TU102 dans une GeForce RTX 2080 Ti ne serait pas tout à fait juste étant donné que cette dernière représente presque le double du nombre d'unités de shader combinées. Cependant, il existe une version de la puce Turing qui peut être utilisée pour une comparaison, et c'est celle que l'on trouve dans la GeForce RTX 2070 Super.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Architectural Navi 10 | ADNr TU104 | Turing
processus TSMC 7 nm 12 nm TSMC
Zone de moule (mm2) 251 545
Transistors (milliards) 10.3 13.6
Profil de bloc 2 SE | 4 ACE | 40 Po 5 GPC | 20 TPC | 40 SM
Cœurs de shader combinés 2560 SP 2560 MIRACLES
TMU 160 160
ROPS 64 64
Heure de base 1605 MHz 1605 MHz
Horloge de jeu 1755 MHz n / a
Boost heure 1905 MHz 1770 MHz
Mémoire 8 Go de mémoire GDDR6 à 256 bits 8 Go de mémoire GDDR6 à 256 bits
Bande passante mémoire 448 Go / s 448 Go / s
Puissance de conception thermique (TDP) 225 watts 215 W.

Il est à noter que le RTX 2070 Super n'est pas une puce TU104 `` complète '' (l'un des GPC est désactivé), donc tous ces 13,6 transistors sont inactifs, ce qui signifie que les puces sont à peu près les mêmes en termes de nombre de transistors. À première vue, les deux GPU se ressemblent beaucoup, surtout si vous ne considérez que les unités de shader, les TMU, les ROP et les systèmes de mémoire principale.

Dans le processeur Nvida, un SM peut traiter 32 warps simultanés, et avec chaque warp de 32 threads, une GeForce RTX 2070 Super entièrement chargée peut fonctionner sur 40 960 threads sur toute la puce; Pour Navi, un CU SIMD32 peut recevoir 16 ondes par ALU et chaque onde compte 32 brins. Ainsi, la Radeon RX 5700 XT peut également contenir jusqu'à 40 960 threads. Il peut sembler que cela les rend exactement ici, mais étant donné la manière dont les CU / SM sont disposés différemment et l'avantage de Nvidia avec le traitement simultané INT et FP, le résultat dépendra en grande partie du code exécuté.

Quel effet cela aura-t-il sur diverses performances de jeu, car le code d'un moteur 3D favorisera une construction par rapport à une autre en fonction du type d'instructions envoyées régulièrement au GPU. Ce, testé deux cartes graphiques:

Tous les jeux utilisés dans le test ont été programmés pour l'architecture GCN d'AMD directement pour les PC équipés de Radeon ou via des GPU GCN trouvés sur la PlayStation 4 ou la Xbox One. Il est possible que certains des modèles récemment lancés soient préparés pour les changements de RDNA, mais les différences dans les résultats de référence sont plus probables en raison des moteurs de rendu et de la façon dont les instructions et les données sont traitées.

Donc qu'est-ce que tout cela veut dire? Une architecture est-elle vraiment meilleure qu'une autre? Turing offre certes plus de capacité que Navi grâce à Tensor et RT Cores, mais ce dernier est définitivement compétitif en termes de performances de rendu 3D. Les différences observées dans les 12 exemples de jeux ne sont pas assez précises pour porter un jugement final.

Et c'est une bonne nouvelle pour nous.

Derniers mots

Plans Navi d'AMD a été annoncé Ils visaient le lancement 2018 en 2016 et même s'ils n'ont pas dit grand-chose. Quand cette date va et vient carte routière modifié cependant, il était clair que Navi serait construit dans un nœud de processus 7 nm et la conception se concentrerait sur l'amélioration des performances.

C'était définitivement le cas, et comme nous l'avons vu dans cet article, AMD a apporté des modifications architecturales pour permettre à Nvidia de concurrencer ses offres équivalentes. Le nouveau design profite plus qu'aux utilisateurs de PC, car nous savons que Sony et Microsoft utiliseront une variante de la puce dans la période à venir. Playstation 5 ve sonraki xbox.

Si vous revenez au début de cet article et que vous examinez à nouveau la conception structurelle de Shader Motors, la taille totale de la puce et le nombre de transistors, il est clairement possible qu'une puce `` grande Navi '' atteigne son apogée. dernière carte graphique; AMD a pratiquement confirmé que cela devrait faire partie de ses plans actuels et viser à améliorer l'architecture et le processus de fabrication au cours des deux prochaines années.

Mais quels sont les projets pour Nvidia, Turing et son successeur? Étonnamment, peu de choses ont été confirmées par l'entreprise. En 2014, Nvidia Feuille de route GPU mise à jour Planifier l'architecture Pascal pour le lancement 2016 (et atteindre cet objectif). En 2017, Tesla a annoncé le V100C'est cette conception qui a fait sortir Turing en 2018, en utilisant l'architecture Volta.

Depuis, les choses sont plutôt calmes et nous avons dû nous fier aux rumeurs et aux extraits de nouvelles, qui disent souvent la même chose: la prochaine architecture de Nvidia s'appellera Ampère, Fabriqué par Samsung Il utilise le nœud de processus 7 nm et est prévu pour 2020. A part ça, il n'y a rien d'autre à continuer. Il est peu probable que la nouvelle puce brise la tradition en se concentrant sur les unités d'exécution scalaires, ou il est peu probable qu'elle abandonne des aspects tels que les cœurs Tensor, car cela entraînera d'importants problèmes de rétrocompatibilité.

Néanmoins, nous pouvons faire des prédictions raisonnables sur ce à quoi ressemblera le prochain GPU Nvidia. L'entreprise a investi beaucoup de temps et d'argent. tracé laseret son support dans les jeux uniquement augmenter; Par conséquent, nous pouvons nous attendre à voir une amélioration du cœur RT en termes de capacités ou de nombre par SM. Si un Nœud de processus 7 nm Si cela est vrai, Nvidia visera probablement une réduction de puissance plutôt qu'une augmentation directe de la vitesse d'horloge afin d'augmenter le nombre de GPC. Il est également possible de sauter 7 nm et de démarrer Nvidia. Droit pour 5 nm Pour gagner un avantage sur AMD.

Apparemment AMD et Nvidia, carte graphique discrète Marché d'Intel car nous savons qu'ils prévoient de réintégrer cette industrie, Appel 20 ans. Ce nouveau produit (actuellement Xe) Sera capable de concourir au même niveau que Navi et Turing.

Pendant ce temps, Intel a survécu au marché des GPU pendant ces deux décennies en créant des graphiques intégrés pour ses processeurs. Le dernier GPU d'Intel Génie 11Il est similaire à l'architecture d'AMD car il utilise des ALU vectorielles qui peuvent gérer les données FP32 et INT32, mais nous ne savons pas si les nouvelles cartes graphiques seront une évolution directe de cette conception.

Ce qui est certain, c'est que les prochaines années seront très intéressantes alors que trois géants des structures en silicium continuent de se battre pour nos portefeuilles. Les nouvelles conceptions et architectures de GPU mettront au défi les nombres de transistors, les tailles de cache et les propriétés des shaders; Navi et RDNA sont les plus récents et ont montré que chaque pas en avant peut faire une petite différence.

Raccourcis d'achat:
  • GeForce RTX 2070 Super clair Amazone
  • GeForce RTX 2080 Super clair Amazone
  • GeForce RTX 2080 Ti ouverte Amazone
  • Radeon RX 5700 XT allumé Amazone
  • Radeon RX 5700 ouverte Amazone
  • GeForce RTX 2060 Super clair Amazone
  • GeForce GTX 1660 Super clair Amazone

Cet article a été initialement publié le 7 août 2019. Dans le cadre de notre initiative #ThrowbackThursday, nous avons révisé et planté un peu.