« Les cartes graphiques/Les processeurs de shaders » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 63 :
===Des unités de calcul autrefois spécialisée, puis devenus banalisées===
Même les premiers processeurs de ''shaders'' disposaient de plusieurs unités de calculs séparées, capables de faire des calculs en parallèle.
Mais pour les unités de calculs des processeurs de ''shaders'', ce n'est pas le cas. Les instructions de calcul arithmétiques sont nécessaires, mais le gros du travail demande d'effectuer des opérations complexes. Il faut dire que le rendu 3D demande pas mal de calculs trigonométriques, de produits scalaires ou d'autres opérations. Aussi, les processeurs de''shaders'' disposent souvent d'une unité de calcul spécialisée dans les calculs complexes (exponentielle/logarithme, racine carrée, racine carrée inverse, autres), parfois de plusieurs. De plus, on trouve souvent une unité de calcul spécialisée dans l’opération ''Multiply-And-Add'' (une multiplication suivie d'une addition, opération très courante en 3D, notamment dans le calcul de produits scalaires). Un bon exemple est le processeur de ''vertex shader'' de la Geforce 6800, illustré ci-dessous. On voit que le processeur contient une unité d'accès mémoire pour lire les textures, avec deux unités de calcul : une unité pour les opérations mathématiques complexes et une unité pour le calcul ''Multiply-And-Add''. On voit que les unités de calculs sont assez spécialisées, avec une ou plusieurs unités généralistes, secondée par des unités capables de faire des calculs spécialisés.
[[File:GeForce 6800 Vertex processor block.png|centre|vignette|upright=2.0|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.]]
|