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 .
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.
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.
La figure 4 montre un GPU M2200 composé de 8 Streaming Multiprocessor de 128 unités, soit 1024 unités de calcul.
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.