Académique Documents
Professionnel Documents
Culture Documents
1
PLAN
1 INTRODUCTION
2 NVIDIA
6 PROGRAMMATION DU GPU
7 CUDA
2
8 CONCLUSION
INTRODUCTION
3
LES MEILLEURES CARTES GRAPHIQUE DE
2019
4
1.NVIDIA
Nvidia est l'un des plus grands fournisseurs de
processeurs graphiques, de cartes graphiques
et de chipsets pour PC et consoles de jeux
(Saturn, Xbox, PlayStation 3). Il s'agit d'une
société dite fabless (qui conçoit, mais ne
fabrique pas), dont le siège est à Santa Clara en
Californie aux États-Unis. Nvidia conçoit des
circuits graphiques allant de la carte graphique
pour netbook (miniportable) aux très puissant
modèles
5
2.LES CARTES GRAPHIQUES
(CARTE VIDÉO)
un composant de l'unité centrale chargé de
l'affichage sur l'écran : Windows, les fenêtres, le
bureau...
• Les cartes graphiques puissantes ont pour rôle
également de gérer les affichages 3D (jeux vidéo).
6
LES COMPOSANTS DE CARTE
GRAPHIQUE
Processeur
graphique Mémoire vidéo
7
LES CONNECTEURS : 3 types d’interfaces
8
PROCESSEUR GRAPHIQUE ( GPU)
9
LA MÉMOIRE VIDÉO
La mémoire vidéo est chargée de conserver les images traitées
par le processeur graphique avant l'affichage.
10
LA RAMDAC
La RAMDAC est un circuit spécialisé d'une carte vidéo chargé de
transformer les informations numériques en impulsions
analogiques et de les envoyer en direction de l'écran
11
LE BIOS VIDÉO
C’est un petit programme
enregistré dans
une mémoire morte
(ROM) qui contient les
informations de la carte
graphique.
chaque carte graphique
possède son
propre BIOS. Celui-ci est
spécifique
au fabricant de la carte.
Role - Le BIOS vidéo permet
de gérer
les composants de la carte
graphique
12
4.LES GPU ET LES CPU
13
NOTION DE GPU
Un processeur graphique (appelé GPU, pour Graphical
Processing Unit), constituant le cœur de la carte
graphique et chargé de traiter les images en fonction de
la résolution et de la profondeur de codage sélectionnée.
Il comporte des unités de calcul arithmétiques et logiques
14
NOTION DE CPU
Le processeur (noté CPU, pour Central Processing Unit)
est un circuit électronique cadencé au rythme d'une
horloge interne, a pour mission de réaliser les différents
calculs inhérents au bon fonctionnement de
l'ordinateur
15
L’ARCHITECTURE DE CPU/PU
16
5.LES DIFFÉRENCE ENTRE GPU ET CPU
17
Au niveau du nombre de block
18
Au nivaux de complexité
19
POUR QUE LA VITESSE
D’EXÉCUTION SOIT PLUS RAPIDE
D’APRÈS LA VARIATION DE
COMPLEXITÉ
POURQUOI PAS ON UTILISE 2
CPU ?
20
Un GPU peut contenir plusieurs centaines de
cores, alors que les processeurs classiques
contiennent actuellement moins de 10 cores
21
22
5.LES NIVEAUX DE DÉVELOPPEMENT
DE GPU
23
6.LA PROGRAMMATION DE
GPU
La programmation GPU, est
l'utilisation du processeur
graphique dans le but d'effectuer
des calculs le processeur central
(CPU) de l'ordinateur.
En raison de l'architecture
particulière des GPU, les calculs
pouvant être parallélisés, comme
par exemple l'addition ou la
multiplication de matrices, sont
exécutés beaucoup plus
rapidement par le GPU que par le
CPU.
24
LES LANGAGES UTILISÉ POUR
PROGRAMMER GPU
OpenCL, OpenGL,CUDA……..
25
CARTE GRAPHIQUE KHRONOS GROUP PROGRAMMER
PAR LANGUAGE OPENCL
26
CARTE GRAPHIQUE SILICON GRAPHICS PROGRAMMER27
PAR LANGUAGE OPENGL
CARTE GRAPHIQUE NVIDIA PARGRAMER PAR
LANGUAGE CUDA 28
7.CUDA
Généralités
CUDA (Compute Unified Device Architecture) est une architecture
de programmation parallèle développée par NVIDIA. Elle étend le
langage C avec des fonctionnalités permettant la programmation sur
processeur graphique.
29
Déroulement de l'exécution
Un programme tournant sur GPU
s'exécute en 5 étapes :
1) Déclaration et allocation de la mémoire
hôte et de la mémoire de la carte
graphique.
2) Initialisation de la mémoire hôte.
3) Transfert des données de la mémoire
hôte à la mémoire de la carte
graphique.
4) Exécution des fonctions GPU (kernels).
5) Retour des données à la mémoire hôte.
30
Programmation
Programme CUDA
xxx.h xxx.cu
31
1. Sélection du processeur graphique:
La sélection du GPU utilisé par le programme s'effectuer
à l'aide de la fonction cudaSetDevice:
cudaError_t cudaSetDevice (int device)
32
2. Allocation en mémoire device et transfert des
données CPU => GPU
L'allocation
de la mémoire s'exécute à l'aide de la
fonction cudaMalloc :
cudaError_t cudaMalloc (void ** devPtr, size_t size)
33
Letransfert des données s'exécute via la fonction
cudaMemcpy :
cudaError_t cudaMemcpy (void * dst, const void * src,
size_t count,enum cudaMemcpyKind kind)
34
3. Appel du kernel
35
4. Récupération des résultats et libération de la
mémoire
36
EXEMPLE
37