La course au gigahertz, stoppée par des problèmes de dissipation thermique, a laissé place, depuis le milieu des années 2000 à la course à la multiplication des cœurs. Cette modification profonde de l'architecture des calculateurs nécessite de repenser les algorithmes existants, et impose de nouvelles contraintes de programmation. Nous allons découvrir dans cet article quels outils Nvidia, qui dispose de l'environnement de développement le plus abouti, met à notre disposition pour programmer ces cartes graphiques.
1. Introduction
Sous la pression des gamers, toujours en recherche d'un meilleur réalisme graphique, la puissance des cartes graphiques n'a cessé d'augmenter tout au long des années 2000. Ces dernières permettent des rendus sophistiqués, supportant des méthodes d'éclairage de plus en plus complexes. A tel point qu'on voit apparaître en 2001 des langages de shading, compatible avec OpenGL, et permettant aux développeurs d'appliquer eux-mêmes leur traitements à des images, à travers des pixels shader, ou encore directement à des géométries à l'aide de vertex shader.
Rapidement, la communauté scientifique, séduite par ces cartes graphiques largement répandues et donc bon marché, détourne ces shaders, pour réaliser des calculs non plus uniquement graphiques, mais aussi mathématiques. Apparaissent ainsi des codes permettant par exemple d'effectuer des produits matriciels sur GPU. C'est le début de ce que l'on appelle le GPGPU : General Purpose calculation...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première