Quelles sont les unités de base d’un GPU ?

9
14025

Ce Quicky va parler de GPU. Il est un peu spécial car il est en deux parties (cliquez ici pour voir la deuxième) et fait office d’introduction pour un nouveau type d’articles, créés spécialement pour vous.

Ces nouveaux articles s’appelleront les « Inside ». Ils auront pour but de se plonger à l’intérieur du GPU d’une carte en particulier, et de l’étudier. Le but est de voir quelle est sa structure et ainsi pouvoir montrer ses potentielles forces et faiblesses.

Connaître le fonctionnement d’un GPU n’est pas forcément facile, mais nous allons essayer de vous expliquer ici la base, afin d’affiner plus tard vos connaissances dans le domaine.

Difficulté : Avancé

Déjà commençons par le début. Qu’est-ce qu’un GPU ? De son nom complet Graphic Processing Unit, c’est ni plus ni moins que le processeur de votre carte graphique. Contrairement au processeur central (CPU), il est bien moins versatile, mais également beaucoup plus puissant.

GTX670PE GPU

Les unités de base :

Quelques soient les micro-architecture de GPU, une base reste commune : les unités d’un GPU. J’ai ainsi l’honneur de vous présenter :

  • les Stream Processors
  • les Raster Engines
  • les Texture Mapping Units
  • les Render OutPut Units

 

Les Stream Processor :

Les Stream Processors (en Français nommés processeurs de flux) sont les éléments les plus connus d’une carte graphique. Nvidia les nomme CUDA Cores, d’autres les nomment à tort des « coeurs », mais ce sont bel et bien des Stream Processor.

Un Stream Processor est ni plus ni moins qu’une unité capable de faire du calcul sur des flottants (traduction anglicisé de floats, qui sont les nombres à virgule). Typiquement, plus les Stream Processors sont nombreux, plus le calcul de données mathématique s’effectue rapidement. Et il y a beaucoup de maths à faire calculer dans un jeu pour une carte graphique : les mouvements, les effets de particules, la direction de la lumière, les ombres, les reflets …

A noter que les Stream Processor (SP) calculent sur des floats en 32 bits (de manière très approchée, c’est un nombre avec 32 chiffres binaires après la virgule) car ce sont les nombres les plus utilisés par nos programmes. Certains Stream Processor sont capables de calculer des floats en 64 bits, qui sont plus précis. Ces floats 64 sont très apprécié dans le monde du calcul et le monde professionnel, car assez utilisé. Par contre, il y a toujours moins d’unités capable de traiter des flaots 64 que celles capables de traiter des floats 32.

Les Raster Engine :

Les Raster Engines (en français les unités de rasterisation) sont de grosses unités capables de générer des polygones. Comme vous le savez sûrement, votre jeu vidéo préféré est composé de nombreux objets (personnages, murs, sols, caisses en bois …) composés chacun de nombreux polygones (des triangles). Actuellement, pour arriver au niveau de réalisme exigé par les joueurs, il faut un nombre effroyable de polygones pour que l’objet ne soit pas « cubique ».

Regardez les deux exemples ci-dessous : Lara Croft avec 300 polygones et Lara Croft avec 5000 polygones. Mais actuellement, un personnage d’un très beau jeu (par exemple Ryse : Son of Rome) peut atteindre voir dépasser les 100 000 polygones. Et ce nombre ne cesse d’augmenter ! D’ici 2025, il est estimé qu’on dépassera le Million de polygone pour un personnage.

Lara Croft Polygones

Les Texture Mapping Units :

Passons maintenant aux Texture Mapping Units (TMU). Ce sont les unités qui appliquent des textures aux polygones générés. Un dessin valant bien mieux qu’un discours, voici un exemple d’un monstre sous forme de polygone (à droite), et le même à gauche une fois « texturéfié » (j’appelle « La Rousse » pour leur recommander ce mot).

Texture

Typiquement, quand vous téléchargez un pack de texture HD (pour Skyrim par exemple), ou plus simplement si vous augmentez les détails des textures dans votre jeu, c’est les TMU que vous faîtes plus travailler, bande d’esclavagistes !

Les Render Output Units :

Et enfin, on termine par les Render Output Units (ROP) qui sont des unités chargées du traitement de l’image. Ce sont les ROP que vous ferez travailler lorsque vous poussez l’anti-aliasing et l’anisotropic filtering ou que vous montez en résolution d’affichage.

De la puissance :

Ces quatre unités spécialisées font partie intégrante des puissances de calcul théoriques des cartes graphiques. Le principe général est de multiplier le nombre d’unité valides par la fréquence du GPU. Ainsi :

  • Puissance de Calcul FP32/FMA32 (en GFLOP) = nombre de SP 32 x2 x fréquence (en GHz)
  • Puissance de Calcul FP64/FMA64 (en GFLOP) = nombre de SP 64 x2  x fréquence (en GHz)
  • Débit de triangle (en GTriangle/s) = nombre de Raster Engine x fréquence (en GHz)
  • Débit de filtrage (en GTexel/s) = nombre de TMU x fréquence (en GHz)
  • Débit de pixel (en GPixel/s) = nombre de ROP x fréquence (en GHz)

Rien de bien compliqué en fait. Attention, il existe quelques rares exceptions qui n’ont pas toutes les unités effectives à 100 % sur certaines références, ce qui fausse un peu ce calcul. Mais concrètement tout est là. On ne vous parlera plus chinois quand on vous parlera de GTexel/s.

Comparaison de deux cartes graphiques :

A titre d’exemple, nous allons donc faire l’étude théorique et comparative de deux GPU milieu/haut de gamme : la R9 280X d’AMD et la GTX 770 de Nvidia.

Geforce GTX 770 vs Radeon R9 280X

Ces cartes de performances similaires n’ont pas les mêmes points forts. En effet, la R9 280X a un énorme avantage au niveau du nombre Stream Processor (2048 contre 1536, 33 % d’avantage quand même), ce qui lui permet de calculer bien plus vite, surtout en 64 bits ! En effet, 1 SP sur 4 (ratio de 1/4) est capable de calculer du 64 bits sur la Radeon, contre 1 SP sur 24 pour la Geforce (ratio de 1/24), d’où cet écart monstrueux.

Par contre la GTX 770 bat sa concurrente à plate couture au niveau du débit de triangle, puisqu’elle possède le double de Raster Engine (4 contre 2).

Cependant, au niveau du débit de filtrage et le débit de pixel, égalité quasi parfaite puisque même nombre d’unités à chaque fois, avec un léger avantage pour la Nvidia, grâce à sa fréquence plus élevée.

Au final, on peut voir que l’avantage de la Radeon au niveau de la puissance de calcul compense l’avantage de la Geforce sur la génération de triangle.

Maintenant ca y est, vous pourrez comparer vos b… cartes sur leurs performances théoriques. Qui ici saurait faire le calcul d’une des performances théoriques de sa carte ?

9
Poster un Commentaire

avatar
6 Fils de commentaires
3 Réponses de fil
0 Abonnés
 
Commentaire avec le plus de réactions
Le plus populaire des commentaires
7 Auteurs du commentaire
MiTEnyxxGiu26geekosaOaya Auteurs de commentaires récents
  S’abonner  
plus récent plus ancien Le plus populaire
Notifier de
MiT
Membre
MiT

super article!
heureusement que vous êtes la pour nous expliquer simplement et efficacement le fonctionnement de nos bêtes…

Enyx
Membre
Enyx

Merci beaucoup, trés instructif :)
Ah au fait: je vous aime !

Giu26
Membre
Giu26

Top article, donc si je prends ma carte je trouve ça avec mon réglage OC Nom : R9 290 TriX OC Nom de code : Hawaï Pro Nombre de transistors : 6200 M Finesse de gravure : 28 nm Procédé de gravure : HP (L ou M) Taille de la puce : 438 mm² TDP : 275W Fréquence GPU : 1150 MHz SP : 2560 RE : 4 TMU : 160 ROP : 64 CU : 40 Débit FMA32 : 5888 GLOP Débit FMA64 : 736 GFLOP Débit Triangle : 4,6 Gtri/s Débit Texel : 184 Gtex/s Débit Pixel :… Lire la suite »

Oaya
Membre
Oaya

Cet article est aussi limpide que léger. C’est toujours une joie d’éclaircir les zones d’ombre dans son esprit.

Eureka ! En fait les sous architectures sont cohérentes :
a° les Points (1 mension) sont gérés par les Processeurs de Flux
b° les Lignes (1 dimension) par les Unités de Trame
c° les Surfaces (2 dimensions) par les Unités de Texture
d° et la Fusion des 3 (affinage) par les Unités de Rendu Final
après la variation temporelle fait le reste <3

Merci Maître Geekosa ^^

psycho
Invité

Merci pour cet article. Puisqu’on est dans un article très précis au cœur du GPU, je me permet de signaler un petite erreur (je pense) dans l’explication de l’image sous les TMU : le monstre à gauche n’est pas texturé mais il à un normal mapping appliqué, ce qui n’est pas exactement la même chose non ?

PastiYou
Membre

Y’a pas à dire, c’est plus compliqué qu’il n’y parait de comprendre le fonctionnement des GPU. Heureusement qu’OMF est là pour nous expliquer ça de manière efficace.