Dans votre ordinateur, il y a un CPU (Central Processing Unit) de chez Intel ou AMD communément appelé « processeur », et un GPU (Graphics Processing Unit) de chez nVidia ou ATI. Il n’y a pas si longtemps, le GPU était un circuit « fermé », non programmable par le commun des mortels, entièrement dédié à la production de belles images sur votre écran. Depuis quelques années, ces circuits sont devenus programmables pour permettre de produire de très beaux effets graphiques, et leur puissance à augmenté, augmenté… A tel point qu’aujourd’hui, votre GPU contient probablement plus de transistors que votre CPU, et est certainement capable de résoudre certains problèmes plus rapidement !
Alors qu’un CPU a maintenant 2 coeurs capables d’exécuter chacun quelques dizaines de tâches complexes en (quasi-) parallèle, un GPU peut exécuter un petit programme appelé « shader » pour chaque point de l’écran (presque) en même temps, soit traiter des milliers de données (presque) simultanément. Pour autant qu’un problème puisse être ramené à celui de petits points « intelligents » qui ne parlent et écoutent que leurs voisins immédiats, le GPU va le résoudre bien plus vite que le CPU.
Quelques exemples:
- la fractale de Mandelbrot, déjà mentionné dans l’article sur Hyperion, mais on reste dans le monde de l’inutile beauté des mathématiques.
- Real Time Relativity, déjà mentionné ici, qui combine la fonction principale d’une carte graphique, représenter une scène en 3D, avec des calculs relativistes nécessitant 4 dimensions grâce au fait que les GPU traitent 4 composantes de couleur RGBA (Rouge, Gert, Bleu, trAnspArent)
- Et là je viens de tomber sur plusieurs références expliquant comment simuler la gravitation entre N corps avec un GPU, ce qui permet de simuler une mini galaxie de 8192 étoiles beaucoup plus vite qu’avec un CPU:
- Mark Harris « Mapping Computational Concepts to GPUs », nVidia (ppt)
- Francisco Chinchilla, Todd Gamblin, Morten Sommervoll « Parallel N-Body Simulation using GPUs (word)
- L. Nyland, M. Harris, and J. Prins, “N-body simulations on a GPU,” in Proc of
the ACM Workshop on General-Purpose Computation on Graphics Processors,
2004. - Tsuyoshi Hamada, Toshiaki Iitaka, « The Chamomile Scheme: An Optimized Algorithm for N-body simulations on Programmable Graphics Processing Units » , 2007 (pdf)
Pour rester au courant sur ce sujet, suivre le site de référence GPGPU.org (General-Purpose Computation Using Graphics Hardware)
Tout ceci et la récente fusion d’AMD (CPU) et d’ATI (GPU) fait penser que les prochains processeurs combineront peut-être les avantages respectifs des CPU et des GPU. Peut-être en coupant la poire en deux en faisant beaucoup de coeurs simples, comme dans le « Cell » d’IBM qui trône dans les PlayStation 3 ? Il faudra encore apprendre à programmer ce genre de puces pour en tirer toute la puissance…
2 commentaires sur “GPUs et Physique”