11.7.1.1 : Structure d'un GPU



Contrairement aux CPUs qui possèdent quelques dizaines de cœurs au maximum, les GPUs en comptent de plusieurs dizaines à plusieurs milliers. Cependant, cette disposition pose un problème de surchauffe qui est résolu en réduisant la fréquence d'horloge des cœurs des GPUs.

Les cœurs des GPUs s'apparentent aux unités arithmétiques et logiques (ALU, Arithmetic and Logical Units) des CPUs. En effets, ces cœurs ne font que du calcul et ne peuvent pas faire de la prédiction de branchement comme peut le faire un CPU (voirsection 11.2.2.3.6).

nothing

Figure 54 : Les unités élémentaires de calculs dans un GPU (Streaming Multiprocessor SM, en vert) utilisent une mémoire partagée et les threads exécutés sont ordonnés par un même composant.

Les composants qui vont chercher et chargent les instructions sont communs à plusieurs cœurs. Une fois assemblé, un groupe de cœurs de calculs affublé d'un chargeur d'instruction (ou plusieurs suivant les architectures) devient un Streaming Multiprocessor ou SM, voir figure 54.

Chaque multiprocesseur dispose d'une mémoire propre, très rapide qui permet d'accélérer les échanges de données entre des cœurs voisins. Cela permet d'optimiser des calculs où les valeurs des données voisines sont nécessaires, comme les convolutions, l'application de filtre ou les produits de matrices qui sont à la base du machine learning.

Ces multiprocesseurs sont à leur tour assemblés pour former la partie calcul du GPU à laquelle on ajoute une mémoire RAM, voir figure 55.

nothing

Figure 55 : L'architecture d'un GPU est composée des unités décrites dans la figure 54.