
GPGPU est l'abréviation de general-purpose computing on graphics processing units, c'est-à-dire calcul générique sur processeur graphique. L'objectif de tels calculs est de bénéficier de la capacité de traitement parallèle des processeurs graphiques.
GPGPU en modèle de remplacement du CPU
Avant l'arrivée des GPGPU, le CPU, processeur central de l'ordinateur, traitait la plupart des opérations lourdes en calcul comme les simulations physiques, le rendu hors-ligne pour les films, les calculs de risques pour les institutions financières, la prévision météorologique, l'encodage de fichier vidéo et son, etc.
Intel avec ses 80 % de parts de marché sur les CPU dominait donc très largement tous les besoins en calcul et pouvait en extraire de substantielles marges.
Certains de ces calculs lourds sont cependant facilement parallélisables et peuvent donc bénéficier d'une architecture pensée pour le calcul parallèle[1]. La plupart des architectures parallèles étaient lourdes, chères et s'adressaient à un marché de niche jusqu'à ce que le GPU s'impose comme un acteur important du calcul parallèle.
Le GPU est un produit grand public avec une large diffusion grâce aux débouchés des jeux vidéo, ce qui permet d'en réduire les coûts par rapport à une architecture trop spécialisée. Une architecture taillée pour le calcul parallèle au point d'afficher, dans certaines tâches, des performances largement supérieures par rapport à un CPU haut de gamme de dernière génération. Dans certains cas, la durée d'exécution peut être réduite de plusieurs ordres de grandeur, comme avec les multiplications matricielles[2].
Si les premiers GPU étaient à fonctions fixes, ils ont évolué pour devenir programmables. Ainsi depuis la série NVIDIA GeForce 3 (2001) qui implémente les Pixels shaders 1.1, les processeurs graphiques disposent d'une unité de géométrie programmable. Et depuis la AMD Radeon R300 qui implémente les Pixels shaders 2.0, le calcul se fait sur des nombres flottants et plus seulement sur des nombres entiers.
Exemples d'applications
Les pilotes libres de cartes graphiques AMD Radeon pour Linux recourent aux shaders pour accélérer le décodage vidéo (voir Video Acceleration API) sur les machines équipées d'un processeur d'ISA x86_64, car ceux-ci ne sont généralement pas associés à décodeur vidéo matériel dédié, contrairement aux SoC ARM ou RISC-V par exemple.
Mise en oeuvre (implémentation)
Pour permettre aux développeurs de tirer parti de ces nouvelles capacités, il existe plusieurs standards logiciels :
- CUDA de NVIDIA
- ATI Stream de AMD
- OpenCL de Khronos Group
Ces frameworks permettent d'utiliser le GPU comme un outil de calcul massivement parallèle, sans devoir faire appel directement aux fonctionnalités graphiques bas niveau du matériel[3]
Notes et références
- ↑ Fast k nearest neighbor search using GPU. In Proceedings of the CVPR Workshop on Computer Vision on GPU, Anchorage, Alaska, USA, June 2008. V. Garcia and E. Debreuve and M. Barlaud.
- ↑ Quazi Rian Hasnaine, Mostafa M. Fouda et Steve C. Chiu, « GPU vs. CPU: A Comparative Study of Performance, Architecture, and NVIDIA's Innovations in Modern Computing », 2025 IEEE 4th International Conference on Computing and Machine Intelligence (ICMI), , p. 1–6 (DOI 10.1109/ICMI65310.2025.11141315, lire en ligne, consulté le )
- ↑ (en) Tomas Akenine-Möller, Eric Haines et Naty Hoffman, Real-Time Rendering : Fourth Edition, A K Peters/CRC Press, (ISBN 978-1138627000, lire en ligne), p.54
Voir aussi
Articles connexes
Liens externes
- [PDF] Programmation sur Carte Graphique (Jean-Sébastien Franco, Romain Vergne & Xavier Granier (LaBRI), Gabriel Fournier (LIRIS), Christian Trefftz / Greg Wolffe)
