« Les cartes graphiques/Les processeurs de shaders » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Ligne 100 :
* des registres qui servent à stocker des constantes.
 
CesUn derniers permettentprocesseur de stockershaders lescontient, matricesen servantplus auxdes différentesregistres étapesgénéraux, des '''registres de transformation,constantes''' àpour stocker les positionsmatrices desservant sourcesaux différentes étapes de lumièretransformation pourou ld'éclairage, etc. Ces constantes sont placées dans ces registres lors du chargement du vertex shader dans la mémoire vidéo : les constantes sont chargées un peu après. Toutefois, le vertex shader peut écrire dans ces registres, au prix d'une perte de performance particulièrement violente. Le choix du registre de constante à utiliser s'effectue en utilisant un '''registre d'adresse de constante'''. Celui-ci va permettre de préciser quel est le registre de constante à sélectionner dans une instruction. Une instruction peut ainsi lire une constante depuis les registres constants, et l'utiliser dans ses calculs.
 
<gallery widths=500px heights=300px>
Le choix de la constante à utiliser dans une instruction s'effectue en utilisant un registre : le registre d'adresse de constante. Celui-ci va permettre de préciser quel est le registre de constante à sélectionner dans une instruction. Une instruction peut ainsi lire une constante depuis les registres constants, et l'utiliser dans ses calculs.
ArchitectureGeforce carte3 graphiquearchitecture vertex avec textureunit.PNG||Architecture d'un processeur de shaders avec accès aux textures.
 
GeForce 6800 Vertex processor block.png|thumb|centre|Processeur de shader (vertex shader) d'une GeForce 6800. On voit clairement que celui-ci contient, outre les traditionnelles unités de calcul et registres temporaires, un "cache" d'instructions, des registres d'entrée et de sortie, ainsi que des registres de constante.
[[File:Geforce 3 architecture vertex unit.PNG|centre|Geforce 3 architecture vertex unit]]
</gallery>
 
==Microarchitecture==
Ligne 119 ⟶ 120 :
 
La hiérarchie mémoire des GPUs est assez particulière. On y trouve souvent des caches dédiés aux textures ou aux vertices, et les GPUs récents contiennent aussi des caches L1 et L2 de faible taille. Plus rarement, on trouve des local store (scratchpad memory), des mémoires RAM intermédiaires entre la RAM principale et les caches/registres.
 
====Registres constants====
 
Un processeur de shaders contient, en plus des registres généraux, des '''registres de constantes''' pour stocker les matrices servant aux différentes étapes de transformation ou d'éclairage. Les shaders peuvent écrire dans ces registres, au prix d'une perte de performance. Le choix du registre de constante à utiliser s'effectue en utilisant un '''registre d'adresse de constante'''.
 
<gallery widths=500px heights=300px>
Architecture carte graphique vertex avec texture.PNG|Architecture d'un processeur de shaders avec accès aux textures.
GeForce 6800 Vertex processor block.png|thumb|centre|Processeur de shader (vertex shader) d'une GeForce 6800. On voit clairement que celui-ci contient, outre les traditionnelles unités de calcul et registres temporaires, un "cache" d'instructions, des registres d'entrée et de sortie, ainsi que des registres de constante.
</gallery>
 
====Processeurs de flux====