
Du Voodoo à RTX : à quoi servent
les GPUs
Evolution des GPU, du Monochrome Display Adapter de 1981 aux unites GPGPU modernes : positionnement par rapport au CPU, acteurs (NVIDIA, AMD, Khronos) et premieres considerations securite.
Maxime J5 min de lecture
Un doute sur votre exposition ?
On audite votre surface d'attaque externe et on vous dit ce qui est exploitable.
Parler à un pentesterPrérequis
- Comprendre le fonctionnement d'un CPU (Central Processing Unit)
- Unités de calcul (ALU, IFU, SFU, FPU, ...)
- Pipelining et exécution spéculative
- Caches
Hello ! o/
Cet article explore le fonctionnement interne des GPU (Graphics Processing Unit), de manière top-down. L'objectif est de découvrir et de synthétiser leur fonctionnement ainsi que leur programmation.
Les GPU sont aujourd'hui au coeur de l'exécution parallèle. Pour simplifier, il s'agit d'un grand nombre d'ALUs (Arithmetic Logic Unit) qui permettent de traiter un énorme flux de données. Cependant, ils ont une latence plus élevée que les CPU (Central Processing Unit) et des caches de plus petite taille pour maximiser le débit mémoire.
Source : Wikipédia
Cette architecture est idéale pour des traitements lourds comme :
- Le rendu vidéo.
- Le traitement de pools d'objets.
- Les simulations physiques.
- Les systèmes d'apprentissage par neurones.
Les Acteurs Principaux
Les grands noms qui définissent l'architecture et la programmation des GPU sont :
- NVIDIA avec CUDA.
- AMD avec ATI Stream.
- Khronos Group (Apple) avec OpenCL.
Ces technologies permettent le calcul générique sur GPU, connu sous le nom de GPGPU (General-Purpose Computing on Graphics Processing Unit).
Sécurité et Vulnérabilités
Comme les CPU, les GPU ne sont pas infaillibles. Par exemple, l'isolation mémoire renforcée par un CPU ne s'applique pas automatiquement à la mémoire GPU. Cela peut entraîner des fuites d'informations critiques.
Isolation mémoire GPU
Historique des GPU
Les Débuts : MDA (1981)
Les premières cartes graphiques, appelées MDA (Monochrome Display Adapter), sont commercialisées en 1981. Elles servaient uniquement à la gestion des caractères pour l'affichage.
Source : Wikipédia
3Dfx Voodoo 1 (1996)
En 1996, 3Dfx (rachetée par NVIDIA) propose la première carte graphique capable de calculer des opérations en 3D. La 3Dfx Voodoo 1 nécessitait une connexion à une carte graphique 2D via VGA pour afficher les résultats.
Source : Fabien Sanglard
Register Combiner (1999)
En 1999, NVIDIA introduit les Register Combiners, permettant de spécialiser des ALUs pour calculer la couleur finale du framebuffer. Cette innovation est intégrée dans la gamme GeForce.
Source : NVIDIA, Programming Register Combiners with nvparse, John Spitzer
Shaders Programmables (2001)
Les shaders programmables apparaissent en 2001. Ce sont des programmes exécutés sur le GPU à différentes étapes du pipeline de rendu.
Source : Wikipédia
GPGPU et CUDA (2006-2007)
En 2006, avec les NVIDIA GeForce 8000 series, les GPU deviennent des unités de calcul généralistes (GPGPU). Ils sont utilisés pour :
- Le calcul matriciel.
- Les statistiques.
- L'intelligence artificielle.
- L'algèbre linéaire.
- La cryptomonnaie.
En 2007, NVIDIA lance CUDA (Compute Unified Device Architecture), un modèle de programmation rapidement adopté. Peu après, OpenCL de Khronos Group voit le jour, offrant une portabilité entre CPU et GPU.
CUDA vs OpenCL
Ray-Tracing (2018)
En 2018, NVIDIA introduit des coeurs dédiés au ray-tracing dans son architecture Turing, simplifiant le calcul des effets de lumière.
Source : What you need to know about ray tracing and NVIDIA's Turing architecture, Koh Wanzi
| Année | Etape clé | Innovation |
|---|---|---|
| 1981 | MDA | Affichage caractères uniquement, monochrome |
| 1996 | 3Dfx Voodoo 1 | 1er accélérateur 3D (chainé avec carte 2D) |
| 1999 | Register Combiners | ALUs spécialisées, pipeline de couleur configurable (GeForce) |
| 2001 | Shaders programmables | Vertex + pixel shaders, pipeline de rendu scriptable |
| 2006-07 | GPGPU / CUDA | Calcul généraliste (IA, physique, crypto...), GeForce 8000 |
| 2018 | Ray-Tracing | RT Cores materiel, eclairage physiquement base (Turing) |
Conclusion
Les GPU ont évolué d'unités dédiées à l'affichage à des processeurs polyvalents capables de gérer des calculs complexes dans divers domaines.
Veille sécurité
La suite, une fois par mois
Ce qui bouge vraiment sur la surface d'attaque externe, NIS2 et la sécurité applicative, écrit par le pentester qui signe ces articles. Un envoi par mois, désinscription en un clic.
Votre adresse ne sert qu'à cet envoi. Voir la politique de confidentialité.