Académique Documents
Professionnel Documents
Culture Documents
CPU
L’acronyme CPU signifie Central Processing Unit. Le CPU est le processeur central
de l'ordinateur, c’est le cerveau de votre machine. Le CPU est un élément essentiel du
hardware. En effet, il est impliqué dans la plupart des tâches et calculs effectués par tous les
autres composants.
GPU
Le GPU est l’acronyme de Graphics Processing Unit. Il s’agit donc tout simplement de la
carte graphique de l’appareil. Le GPU désigne le processeur qui équipe la carte
graphique,Et, son rôle est de gérer l’affichage de l’image sur l’écran. Leur parallélisme
massif les rend aussi intéressants comme processeurs de calcul matriciel
introduction
Les processeurs graphiques sont habituellement destinés aux calculs 3D issus des jeux
et aux applications multimédia. Cependant, ces applications ne constituent qu’une très faible
proportion des tâches attendues de ces processeurs. Les processeurs graphiques sont
considérés alors sous-exploités. Afin de profiter pleinement de leurs performances, une
compagnie appelée NVIDIA à lancer des versions de cartes graphiques dédiées uniquement
pour des calculs de haut débit plutôt que pour des jeux vidéo. L' utilisation du GPU comme
coprocesseur permet également d’alléger le CPU d'une certaine quantité de travail.
Depuis les cinq dernières années, le développement des GPUs a connue une évolution
exponentielle comparativement aux CPUs. Cette évolution ne veut pas dire que les GPUs
évoluent plus que les CPUs, mais il s'agirait d’une nouvelle exploitation des GPUs, plus
précisément dans des calculs intensifs de haut niveau en se basant sur le principe de la
programmation parallèle. L’évolution des GPU et des CPU est illustrée dans la figure 1.
Figure1. Évolution de GPU vs CPU
Dans l’ensemble, un GPU dans sa version GeForce 8800 peut être vu comme une
grosse unité de calcul divisée en 16 multiprocesseurs qui traitent des groupes de 32 threads à
travers 8 processeurs généraux et 2 processeurs spécialisés. Ces 16 multiprocesseurs cadencés
permettent ensemble de traiter toutes les instructions courantes sur 512 threads, et avec un
débit de 256 opérations par cycle. Le GeForce 8800 a été décrit comme un GPU équipé de
128 processeurs appelées ALUs répartis en 8 partitions de haute fréquence 1350 MHz.
Dans ce qui suit nous allons expliquer sans rentrer dans les détails, le fonctionnement
de CUDA:
- La première étape consiste à définir la composante sur laquelle le programme va être
exécuté. Cette spécification se fait par un kernel appelé par le CPU et exécuté par le GPU
- La deuxième étape est la façon par laquelle le kernel est appelé dans le programme:
Fonction<<< blocks, threads, memory >>>
Tels que les blocs ‘blocks’ représentent le nombre de threads à traiter, threads
représentent le nombre de threads par bloc et memory un espace mémoire optionnel
dynamiquement alloué dans la mémoire partagée, voir la figure 4.
Enfin, une librairie de fonctions mathématiques est supportée par le GPU telles que les
fonctions d’algèbre linéaire et FFT, et une fonction de synchronisation qui permet de bloquer
l'exécution d'un kernel dans un multiprocesseur tant que tous les threads ne sont pas arrivés à
ce point, de manière à éviter les problèmes de type lecture après écriture.
Pour exploiter les performances du GPU, il est essentiel de répartir les tâches sur les
grilles des blocs dont la taille doit être adaptée au problème traité afin de maximiser
l'utilisation des unités de calcul.
Figure 4. Diagramme représentant le fonctionnement du CUDA