Chapter 3.1 : Petit tour d'horizon d'un GPU



Commençons par un petit tour d'horizon de ce qu'est un GPU.

L'unité de calcul graphique GPU (Graphical Processing Unit) était à l'origine un composant dédier à l'affichage. Cet usage nécéssite un traitement d'au moins une centaines de milliers de pixels, le plus rapdiement possible et plusieurs fois pas seconde. Ces calculs simples, mais en grande quantité ont eut besoin d'un nouveau type de calculateur, avec des unités plus simples, qui consoment et chauffent moins, et peuvent donc être plus nombreuses.

La figure 1 montre l'unité de base de calcul d'un GPU. Ce composant est appelé Streaming Multiprocessor sur les architectures NVidia et peut être comparé à un coeur CPU plus simple, mais avec plus d'unité de calcul. C'est un peu comme si on pouvait vectoriser un calcul 32 fois par coeur au lieu de 16 .

nothing

Figure 1 : Illustration d'un bloc d'unités de calcul, brique de base d'un GPU, appellée Streaming Multiprocessor sur les architectures NVidia.



La figure 2 montre un GPU complet composé de 32 Streaming Multiprocessor.

nothing

Figure 2 : Illustration d'un GPU complet. Composé de 32 Streaming Multiprocessor, soit 1024 unités de calcul.



Dans la vrai vie, les Streaming Multiprocessor ont généralement 128 unités de calcul noteMais c'est plus simple de n'en dessiner que 32. ce qui reviendrai à vectoriser un calcul 128 fois sur un CPU au lieu de 16.

La figure 3 montre l'unité de base de calcul d'un GPU M2200 (avec 128 unités de calcul par Streaming Multiprocessor.

nothing

Figure 3 : Illustration d'un bloc d'unités de calcul sur une carte M2200.



La figure 4 montre un GPU M2200 composé de 8 Streaming Multiprocessor de 128 unités, soit 1024 unités de calcul.

nothing

Figure 4 : Illustration d'un GPU M2200 complet. Composé de 8 Streaming Multiprocessor de 128 unités, soit 1024 unités de calcul.



La mémoire globale joue le rôle de la RAM pour le GPU et la mémoire partagée, celui du cache.