« Fonctionnement d'un ordinateur/Les architectures à parallélisme de données » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 214 :
===La hiérarchie mémoire d'une carte graphique===
 
La grande quantité de processeurs, cœurs et unités de calcul a des conséquences sur la hiérarchie mémoire, qui doit gérer un grand nombre d'accès mémoire simultanés : qui dit plein d'instructions en parallèle qui travaillent sur des données indépendantes dit aussi plein de données indépendantes à lire ou écrire ! La hiérarchie mémoire d'une carte graphique ressemble à celle-ci, si on omet les très nombreux caches spécialisés pour le rendu 3D et quelques caches généralistes qui se retrouvent un peu partout dans la hiérarchie mémoire.
 
La hiérarchie mémoire d'une carte graphique ressemble à celle-ci, si on omet les très nombreux caches spécialisés pôur le rendu 3D et quelques caches généraliste qui se retrouvent un peu partout dans la hiérarchie mémoire.
 
[[File:Stream processor.png|centre|vignette|upright=2|Stream processor]]
Ligne 222 ⟶ 220 :
A première vue, les schémas du dessus ne ressemblent à rien de connu. Et pourtant on peut déjà faire quelques remarques assez intéressantes.
 
====L'absenceLes ducaches cachesur deune donnéescarte graphique====
 
EnDéjà, en théorie, les processeurs de fluxshaders contiennent peu de mémoires caches pour les données, comme pour les processeurs vectoriels. Il faut dire que les processeurs de fluxshaders sont, comme les processeurs vectoriels, conçus pour manipuler des tableaux de données, qui ont une faible localité temporelle : quand on accède à une donnée dans un tableau, il est rare qu'on doive la réutiliser plus tard. Dans ces conditions, utiliser des mémoires caches est contre-productif. C'est pour cela que les premiers processeurs de flux, comme l'''Imagine'', n'avaient strictement aucun cache. Au lieu de chercher à diminuer la latence avec des caches, les processeurs de fluxshaders vont plutôt chercher à masquer cette dernière enavec exécutantdu desmultithreading instructionsmatériel. Dans les faits, les cartes graphiques récentes disposent de plus en parallèleplus desde accèsmémoires mémoirecaches pour les données, soitmais encelles-ci utilisantne unsont pipelinepas longutilisées pour le rendu 3D, soitmais avecpour dules multithreadingapplications matérielà hautes performance comme pour des calculs d'intelligence artificielle, les calculs scientifiques fortement parallèles et autres.
 
Mais attention : si les processeurs de fluxshaders se passent souvent de mémoire cache pour les données, ils ont presque systématiquement un cache d'instructions. Après tout, si l'on doit exécuter ces instructions plusieurs fois de suite sur des données différentes, autant éviter de les charger de la mémoire à chaque fois. Pour éviter cela, les suites d'instructions à exécuter sont stockées dans une petite mémoire une bonne fois pour toutes. Il s'agit bel et bien d'une petite mémoire cache.
 
====Une hiérarchie de bancs de registres====