Architectures Parallèles
Processeurs Graphiques
Préparé par
Dr. Olfa Hamdi-Larbi
ola_ola79@[Link]
• GPU ou processeur graphique «Graphics Processing Unit »
circuit intégré présent sur une carte graphique et assurant les
fonctions de calcul de l'affichage.
• processeur graphique : structure hautement parallèle
⇒ efficace pour une large palette de tâches graphiques : gestion
de la mémoire vidéo, traitement du signal vidéo,….
• processeur graphique (GPU ou encore VPU pour Visual
Processing Unit) : libérer le micro-processeur de la carte mère en
prenant en charge les calculs spécifiques à l’affichage et la
coordination de graphismes 3D
•Cette division des tâches entre les deux processeurs libère le
processeur central de l’ordinateur et en augmente d’autant la
puissance apparente.
•Le processeur graphique est très souvent muni de son propre
radiateur ou ventilateur pour évacuer la chaleur qu’il produit.
carte graphique
ou encore un adaptateur graphique, est une carte
d’extension d’ordinateur dont le rôle est de produire
une image affichable sur un écran.
La carte graphique envoie à l’écran des images
stockées dans sa mémoire.
• Peu d’entreprises conçoivent de tels processeurs : NVIDIA,
ATI/AMD, Intel, S3 Graphics.
• Les deux principaux acteurs du marché AMD (ex ATI) et
NVIDIA proposent de multiplier la puissance de traitement par
des technologies permettant d’utiliser plusieurs cartes
graphiques sur un seul ordinateur.
• Le gain est évident : la puissance est réellement augmentée
dans de grandes proportions
la mémoire graphique est presque aussi importante que le GPU.
mémoire dans laquelle les données géométriques comme
colorimétriques sont stockées et mises à disposition du processeur
graphique.
joue un rôle proche de celui de la RAM pour un processeur
d’ordinateur.
vitesse de fonctionnement et taille sont autant de critères qui
peuvent lourdement influer sur les performances d’une carte
graphique.
On distingue deux grandes familles de mémoires graphiques :
La mémoire partagée : la solution la plus souvent retenue par
les configurations économiques ou orientées vers la bureautique
pure.
⇒ principe simple : une partie de la mémoire centrale de
l’ordinateur RAM est réservée aux stockages destinés au
processeur graphique.
La mémoire dédiée: le plus souvent embarquée sur la carte
graphique dédiée (ou à proximité du GPU dans le cas d’un
ordinateur portable)
⇒ce qui lui permet de bénéficier d’un bus dédié (voie de
communication) à la communication avec le processeur
graphique.
Processeur graphique intégré (IGP)
processeurs graphiques intégrés dans le northbridge sur la carte
mère de l’ordinateur ou directement au processeur central
utilisent la mémoire vive du processeur ou plus rarement une
faible quantité de mémoire dédiée.
Ils sont moins performants que ceux des cartes graphiques
dédiées,
ils sont moins couteux,
plus facile a intégrer
moins consommateurs en énergie.
Exemple:
• Les ordinateurs portables anciens et/ou bas de gamme utilisent cette
méthode afin de réduire les coûts.
• Les IGP suffisent si le matériel n'est pas sollicité par les jeux modernes.
• Les cartes mères actuelles ont souvent un processeur graphique intégré
et un (ou plusieurs) port permettant d’ajouter une carte graphique
dédiée.
• Carte graphique dédiée
Processeur graphique le plus puissant.
Le processeur est situé sur une carte interfacée avec la carte mère de
l’ordinateur.
Les cartes disposent de leur propre Mémoire vive.
• GPU consacre plus de transistors aux
unités arithmétiques et logiques et
moins de caches par rapport aux CPU.
• GPU ont aussi généralement une bande
passante mémoire plus élevée par rapport aux CPU.
Les parties séquentielles sont traitées par le CPU, alors que le
GPU gère et accélère les tâches de calcul les plus intensives
langages de programmation graphique : OpenGL et Cg
⇒programmer les applications scientifiques à la manière des
applications graphiques
⇒limiter l’accessibilité aux performances des GPU pour les
applications non graphiques
⇒ Nvidia propose un langage et un logiciel de haut niveau
appelé Compute Unified Device Architecture (CUDA)
⇒ exploiter les capacités du calcul des GPUs en se basant sur
le principe de programmation parallèle en utilisant des
threads
CUDA est un API considéré comme une
extension du langage C
CUDA logiciel composé de trois modules :
• une interface pour l’application des
programmations ‘API’,
• un runtime qui joue le rôle
intermédiaire entre l’utilisateur et le
driver
• une librairie pour les outils
mathématiques.
- CUDA exécute les parties parallèles de l’application
sur le GPU en tant que « Kernels »
- CUDA intègre des programmes CPU + GPU :
- Kernel : code C qui s’execute sur le GPU
- Serial : code C qui s’execute sur le CPU
- Kernels s’executent en tant que threads
parallèles
• CUDA exécute une séquence de Kernels sur
le GPU
• Un Kernel s’exécute comme une grille de
blocs de threads
• Un bloc de threads est une liste de
threads qui peuvent coopérer
• Les threads dans le même bloc se
synchronisent et partagent les données dans
la mémoire partagée (SM : Shared Memory)
• CUDA exécute les blocs de threads comme
des CTA (Concurrent Thread Array) sur les
cœurs SM