Ordinateurs

Comment fonctionnent les cartes graphiques ? – ExtrêmeTech

Depuis que 3dfx a lancé l’accélérateur Voodoo original, aucun équipement d’un PC n’a eu autant d’impact sur la capacité de votre machine à jouer que l’humble carte graphique. Alors que d’autres composants sont absolument importants, un PC haut de gamme avec 32 Go de RAM, un processeur de 4 000 $ et un stockage basé sur PCIe s’étouffera et mourra si on lui demande d’exécuter des titres AAA modernes sur une carte vieille de dix ans à des résolutions et des niveaux de détail modernes. . Les cartes graphiques, également appelées GPU (unités de traitement graphique), sont essentielles aux performances du jeu et nous les couvrons en détail. Mais nous ne nous penchons pas souvent sur ce qui fait fonctionner un GPU et sur le fonctionnement des cartes.

Par nécessité, il s’agira d’un aperçu de haut niveau des fonctionnalités du GPU et couvrira les informations communes aux GPU intégrés d’AMD, Nvidia et Intel, ainsi que toutes les cartes discrètes qu’Intel pourrait construire à l’avenir sur la base de l’architecture Xe. Il devrait également être commun aux GPU mobiles construits par Apple, Imagination Technologies, Qualcomm, ARM et d’autres fournisseurs.

Pourquoi n’exécutons-nous pas le rendu avec des processeurs ?

Le premier point que je veux aborder est pourquoi nous n’utilisons pas de processeurs pour rendre les charges de travail dans les jeux en premier lieu. La réponse honnête à cette question est que vous boîte exécuter des charges de travail de rendu directement sur un processeur. Les premiers jeux 3D antérieurs à la disponibilité généralisée des cartes graphiques, comme Ultima Underworld, fonctionnaient entièrement sur le processeur. UU est un cas de référence utile pour plusieurs raisons – il avait un moteur de rendu plus avancé que des jeux comme Doom, avec un support complet pour regarder de haut en bas, ainsi que des fonctionnalités alors avancées comme le mappage de texture. Mais ce type de support a coûté cher – beaucoup de gens n’avaient pas de PC capable de faire fonctionner le jeu.

UU

Monde souterrain ultime. Image par GOG

Au début du jeu 3D, de nombreux titres comme Half-Life et Quake II comportaient un moteur de rendu logiciel pour permettre aux joueurs sans accélérateurs 3D de jouer au titre. Mais la raison pour laquelle nous avons abandonné cette option des titres modernes est simple : les processeurs sont conçus pour être des microprocesseurs à usage général, ce qui est une autre façon de dire qu’ils n’ont pas le matériel spécialisé et les capacités qu’offrent les GPU. Un processeur moderne pouvait facilement gérer des titres qui avaient tendance à bégayer lors de l’exécution dans un logiciel il y a 18 ans, mais aucun processeur sur Terre ne pouvait facilement gérer un jeu AAA moderne à partir d’aujourd’hui s’il était exécuté dans ce mode. Pas, du moins, sans quelques changements drastiques dans la scène, la résolution et divers effets visuels.

À titre d’exemple amusant : le Threadripper 3990X est capable d’exécuter Crysis en mode logiciel, mais pas tout à fait. bien.

Qu’est-ce qu’un GPU ?

Un GPU est un appareil doté d’un ensemble de capacités matérielles spécifiques destinées à bien correspondre à la manière dont divers moteurs 3D exécutent leur code, y compris la configuration et l’exécution de la géométrie, le mappage de texture, l’accès à la mémoire et les shaders. Il existe une relation entre le fonctionnement des moteurs 3D et la manière dont les concepteurs de GPU construisent le matériel. Certains d’entre vous se souviennent peut-être que la famille HD 5000 d’AMD utilisait une architecture VLIW5, tandis que certains GPU haut de gamme de la famille HD 6000 utilisaient une architecture VLIW4. Avec GCN, AMD a changé son approche du parallélisme, au nom de l’extraction de performances plus utiles par cycle d’horloge.

GPU-Evolution

L’architecture de suivi d’AMD à GCN, RDNA, a doublé l’idée de booster l’IPC, avec des instructions envoyées à chaque cycle d’horloge. Cela a amélioré l’IPC de 25 %. RDNA2 s’est appuyé sur ces gains et a ajouté des fonctionnalités comme un énorme cache L3 pour augmenter encore les performances. De même, la famille de GPU de Nvidia a évolué au cours de la même période, du parallélisme supplémentaire implémenté dans Kepler au support de demi-précision et aux unités de tenseur spécialisées que Nvidia a implémentées dans ses microarchitectures Turing et Pascal.

Psssssst :  Microsoft sortira Chromium Edge mercredi

Nvidia a d’abord inventé le terme « GPU » avec le lancement de la GeForce 256 originale et sa prise en charge pour effectuer des calculs de transformation matérielle et d’éclairage sur le GPU (cela correspondait à peu près au lancement de DirectX 7 de Microsoft). L’intégration de capacités spécialisées directement dans le matériel était une caractéristique des premières technologies GPU. Bon nombre de ces technologies spécialisées sont encore employées (sous des formes très différentes). Il est plus efficace et plus rapide d’avoir des ressources dédiées sur puce pour gérer des types spécifiques de charges de travail que d’essayer de gérer tout le travail dans une seule matrice de cœurs programmables.

Il existe un certain nombre de différences entre les cœurs GPU et CPU, mais à un niveau élevé, vous pouvez les considérer comme ceci. Les processeurs sont généralement conçus pour exécuter du code monothread aussi rapidement et efficacement que possible. Des fonctionnalités telles que SMT / Hyper-Threading améliorent cela, mais nous adaptons les performances multithread en empilant côte à côte davantage de cœurs monothread à haut rendement. Les processeurs Epyc 64 cœurs / 128 threads d’AMD sont les plus gros que vous puissiez acheter aujourd’hui. Pour mettre cela en perspective, le GPU Pascal le plus bas de gamme de Nvidia a 384 cœurs, tandis que le processeur x86 avec le plus grand nombre de cœurs sur le marché culmine à 64. Un « cœur » dans le langage GPU est un processeur beaucoup plus petit.

Noter: Vous ne pouvez pas comparer ou estimer les performances de jeu relatives entre AMD, Nvidia et Intel simplement en comparant le nombre de cœurs GPU. Dans la même famille de GPU (par exemple, dans les séries GeForce GTX 10, 20 ou 30 de Nvidia, ou la famille RX 4xx ou 5xx d’AMD), un nombre de cœurs de GPU plus élevé signifie que le GPU est plus puissant qu’une carte bas de gamme. Les comparaisons basées sur les FLOPS sont suspectes pour les raisons évoquées ici.

La raison pour laquelle vous ne pouvez pas tirer de conclusions immédiates sur les performances du GPU entre les fabricants ou les familles de cœurs en vous basant uniquement sur le nombre de cœurs est que les différentes architectures sont de plus en moins efficaces. Contrairement aux processeurs, GPU sont conçus pour fonctionner en parallèle. AMD et Nvidia structurent leurs cartes en blocs de ressources informatiques. Nvidia appelle ces blocs un SM (Streaming Multiprocessor), tandis qu’AMD les appelle une unité de calcul.

PascalSM

Un multiprocesseur de flux Pascal (SM).

Chaque bloc contient un groupe de cœurs, un planificateur, un fichier de registre, un cache d’instructions, un cache de texture et L1 et des unités de mappage de texture. Le SM/CU peut être considéré comme le plus petit bloc fonctionnel du GPU. Il ne contient littéralement pas tout – les moteurs de décodage vidéo, les sorties de rendu nécessaires pour dessiner réellement une image à l’écran et les interfaces mémoire utilisées pour communiquer avec la VRAM embarquée sont toutes hors de sa portée – mais quand AMD se réfère à un APU comme ayant 8 ou 11 unités de calcul Vega, c’est le bloc (équivalent) de silicium dont ils parlent. Et si vous regardez un schéma fonctionnel d’un GPU, n’importe quel GPU, vous remarquerez que c’est le SM/CU qui est dupliqué une douzaine de fois ou plus dans l’image.

Et voici Pascal, édition pleine de gras.

Plus le nombre d’unités SM/CU dans un GPU est élevé, plus il peut effectuer de travail en parallèle par cycle d’horloge. Le rendu est un type de problème parfois qualifié de «parallèle embarrassant», ce qui signifie qu’il a le potentiel d’évoluer extrêmement bien vers le haut à mesure que le nombre de cœurs augmente.

Psssssst :  Microsoft publie accidentellement une version interne de Windows avec un nouveau menu Démarrer

Lorsque nous discutons des conceptions de GPU, nous utilisons souvent un format qui ressemble à ceci : 4096:160:64. Le nombre de cœurs GPU est le premier nombre. Plus il est grand, plus le GPU est rapide, à condition de comparer au sein d’une même famille (GTX 3070 versus GTX 3080 versus GTX 3080 Ti, RX 5700 XT contre RX 6700 XTetc).

Mappage de texture et sorties de rendu

Il existe deux autres composants majeurs d’un GPU : les unités de mappage de texture et les sorties de rendu. Le nombre d’unités de mappage de texture dans une conception dicte sa sortie maximale de texels et la rapidité avec laquelle il peut adresser et mapper des textures sur des objets. Les premiers jeux 3D utilisaient très peu de textures car le travail de dessin de formes polygonales 3D était déjà assez difficile. Les textures ne sont pas réellement nécessaires pour les jeux 3D, bien que la liste des jeux qui ne les utilisent pas à l’ère moderne soit extrêmement petite.

Le nombre d’unités de mappage de texture dans un GPU est indiqué par le deuxième chiffre de la métrique 4096:160:64. AMD, Nvidia et Intel modifient généralement ces chiffres de manière équivalente lorsqu’ils font évoluer une famille de GPU vers le haut et vers le bas. En d’autres termes, vous ne trouverez pas vraiment de scénario dans lequel un GPU a une configuration 4096:160:64 alors qu’un GPU au-dessus ou en dessous dans la pile est une configuration 4096:320:64. Le mappage de texture peut absolument être un goulot d’étranglement dans les jeux, mais le GPU suivant le plus élevé de la pile de produits offrira généralement au moins plus de cœurs de GPU et d’unités de mappage de texture (le fait que les cartes haut de gamme aient ou non plus de ROP dépend de la famille de GPU et de la configuration de la carte ).

Les sorties de rendu (également parfois appelées pipelines d’opérations raster) sont l’endroit où la sortie du GPU est assemblée en une image à afficher sur un moniteur ou un téléviseur. Le nombre de sorties de rendu multiplié par la vitesse d’horloge du GPU contrôle le taux de remplissage des pixels. Un nombre plus élevé de ROP signifie que plus de pixels peuvent être émis simultanément. Les ROP gèrent également l’anticrénelage et activent AA — surtout AA suréchantillonné – peut entraîner un jeu dont le taux de remplissage est limité.

Psssssst :  Apple dépose une demande de brevet sur un iMac intégré dans une feuille de verre incurvée

Bande passante mémoire, Capacité mémoire

Les derniers composants dont nous parlerons sont la bande passante mémoire et la capacité mémoire. La bande passante mémoire fait référence à la quantité de données pouvant être copiées vers et depuis le tampon VRAM dédié du GPU par seconde. De nombreux effets visuels avancés (et plus généralement des résolutions plus élevées) nécessitent plus de bande passante mémoire pour fonctionner à des fréquences d’images raisonnables, car ils augmentent la quantité totale de données copiées vers et depuis le cœur du GPU.

Dans certains cas, un manque de bande passante mémoire peut constituer un goulot d’étranglement important pour un GPU. Les APU d’AMD comme le Ryzen 5 3400G sont fortement limités en bande passante, ce qui signifie augmenter votre fréquence d’horloge DDR4 peut avoir un impact substantiel sur la performance globale. Le choix du moteur de jeu peut également avoir un impact substantiel sur la quantité de bande passante mémoire dont un GPU a besoin pour éviter ce problème, tout comme la résolution cible d’un jeu.

La quantité totale de mémoire embarquée est un autre facteur critique dans les GPU. Si la quantité de VRAM nécessaire pour s’exécuter à un niveau de détail ou à une résolution donné dépasse les ressources disponibles, le jeu continuera souvent à fonctionner, mais il devra utiliser la mémoire principale du processeur pour stocker des données de texture supplémentaires – et cela prend beaucoup plus de temps au GPU. pour extraire les données de la DRAM par opposition à son pool intégré de VRAM dédiée. Cela conduit à un bégaiement massif alors que le jeu oscille entre l’extraction de données d’un pool rapide de mémoire locale et de la RAM système générale.

Une chose à savoir est que les fabricants de GPU équipent parfois une carte bas de gamme ou milieu de gamme avec plus de VRAM que ce qui est autrement standard afin de facturer un peu plus pour le produit. Nous ne pouvons pas faire de absolu prédiction quant à savoir si cela rend le GPU plus attractif car honnêtement, les résultats varient en fonction du GPU en question. Ce que nous pouvons vous dire, c’est que dans de nombreux cas, cela ne vaut pas la peine de payer plus pour une carte si la seule différence est un tampon RAM plus grand. En règle générale, les GPU bas de gamme ont tendance à se heurter à d’autres goulots d’étranglement avant d’être étouffés par une mémoire disponible limitée. En cas de doute, consultez les critiques de la carte et recherchez des comparaisons pour savoir si une version de 2 Go est surpassée par la saveur de 4 Go ou quelle que soit la quantité de RAM pertinente. Le plus souvent, en supposant que tout le reste est égal entre les deux solutions, vous constaterez que la charge de RAM plus élevée ne vaut pas la peine d’être payée.

Découvrez notre High-teK.ca explique série pour une couverture plus approfondie des sujets technologiques les plus brûlants d’aujourd’hui.

Maintenant lis:

Bouton retour en haut de la page