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).
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.
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.
Figure 55 : L'architecture d'un GPU est composée des unités décrites dans la figure 54.