USTHB Master2 HPC
Programmation Parallèle sur
GPU
Dr. Hocine SAADI
saadi@[Link] / [Link]@[Link]
©2024 Hocine SAADI [Link]@[Link]
Processeur GPU ?
GPU: Graphics Processing Unit
Avant 2007: Processeur SIMD avec des fonctions basiques et limitées,
dédiées à l’accélération graphique (rendu graphique)
Assure une large palette de tâches graphiques
(fonctions de calcul d’image)
Traitement du signal vidéo
Gestion de la mémoire vidéo
Décompression Mpeg
Projection 3D sur un plan 2D
Création de graphismes 3D
©2024 Hocine SAADI [Link]@[Link]
Processeur GPU ?
GPU: Graphics Processing Unit
A partir de 2007: évolution des GPU :
- Jeux d’instruction plus élargie
- Hiérarchie de mémoires (caches …)
- Plusieurs Cœurs de calcul (Many-coeurs)
- Des API (CUDA), langage processeurs programmables
©2024 Hocine SAADI [Link]@[Link]
Fabricants de carte graphique
AMD et Nvidia sont les principaux constructeurs de cartes graphiques
mais, depuis 2022, il faut également compter sur (Arc Alchemist).
Architectures et langages différents selon les constructeurs
Intel
©2024 Hocine SAADI [Link]@[Link]
Engouement pour l’utilisation des GPUs
- Présents dans tous les PCs et stations de travail (accessibilité)
- Architectures massivement parallèles permettant des performances supérieures
à celles des CPUs
©2024 Hocine SAADI [Link]@[Link]
Utilisations des GPUs
2048-core with 64 Tensor Cores
PC
Jetson AGX Station
70x45 mm
472 GFlops
128 cœurs
Mini PC
Cluster Ibnbadis Superordinateur
©2024 Hocine SAADI [Link]@[Link]
TOP 500
2023 :
-Fugaku (Japan) est le plus puissant superc
Fugaku
alculateur du monde avec une puissance de 442
Pétaflops Composé de 7,3 millions de cœurs
Ce monstre de puissance composé de 4.608
serveurs IBM renfermant chacun six cate GPU
Nvidia V100
2024 :
1- Frontier (USA) ; 8,6 millions de cœurs ,
1194 PFlop/s ou 1194 exaFLOPS
2- Aurora ; 4,7 million de cœurs, 585 PFlop/s
Frontier
©2024 Hocine SAADI [Link]@[Link]
GPU sur IBNBADIS
IBNBADIS est une plateforme de calcul HPC :
32 noeuds de calcul + Une carte GPU
- Chaque noeud a 2 processeurs 2.00GHz
- Chaque processeur est composé de 8 coeurs,
- Au total 512 coeurs.
- Une puissance théorique du cluster est d’environs 8TFLOPS.
©2024 Hocine SAADI [Link]@[Link]
GPGPU
GPGPU ( General Purpose Graphics Processing Units )
Utilisation des GPU pour accélérer les applications de calcul scientifique,
tout types d’applications gourmandes en puissance de calcul (simulation)
via des APIs graphiques comme OpenGL (lourdeur), Apparition d’APIs
pour les applications non-graphiques (OpenCL et CUDA)
GPU actuels : Graphisme + Calculs.
Systèmes hybrides CPU-GPU: “Heterogeneous parallel Computing »
- Le GPU Fonctionne en collaboration avec le CPU.
- Le CPU utilise le GPU comme un Co-processeur
©2024 Hocine SAADI [Link]@[Link]
GPGPU
CPU pour les parties séquentielles où la
latenceest importante, les CPU peuvent être
10+ fois plus rapides que les GPU pour le
code séquentiel
GPU pour les parties parallèles où le débit
gagne, Les GPU peuvent être 10+ fois
plus rapides que les CPU pour le code
parallèle
©2024 Hocine SAADI [Link]@[Link]
Domaines concernés par les GPU
Le calcul parallèle sur GPU est utilisé dans de nombreuses disciplines
Financial Scientific Engineering Data Intensive
Medical Imaging
Analysis Simulation Simulation Analytics
Digital Audio Digital Video Computer Biomedical Numerical
Processing Processing Vision Informatics Methods
Statistical Interactive
IA
Modeling Physics
©2024 Hocine SAADI [Link]@[Link]
GPGPU
Industrie pétrolière
Des simulations, des techniques d’aide à la décision,
de plus en plus complexes et gourmandes en puissance
de calcul sont étulisées :
- la modélisation et la simulation des réservoirs
- le traitement d’images 3D et l’interprétation de données
provenant d’algorithmes sismiques.
Biotechnologies et Industrie pharmaceutique
Ces domaines sont parmi les domaines demandeurs en
puissance de calcul en Algérie:
- la prédiction de structures de protéines inconnues
(protein folding)
- la modélisation des interactions intermoléculaires
GPGPU
Imagerie médicale
Les applications d’imagerie medicales impliquent l’utilisation
d’algorithmes de plus en plus complexes tels que les algorithme
de segmentation d’images et de reconstruction d’objets 3D
nécessitant la manipulation de grandes masses de données
(data-intensive) et une grande puissance de calcul (CPU-time
intensive) pour le traitement de ces données.
La modélisation du climat & prédictions météorologiques
La climatologie traite de la modélisation du climat afin d’en
prédire et comprendre bouleversements et les phénomènes
naturels qui y sont liés.
Ces modélisations sont basées sur des modèles
mathématiques et algorithmes complexes.
©2024 Hocine SAADI [Link]@[Link]
Comparaison CPU /GPU
Pourquoi une telle différence en termes de performance avec le CPU ?
- Plus de transistors sont dédiés aux traitements des données au lieu du
contrôle et de la gestion du cache
- Plus d’unités de calcul ALUs ( Arethmetic Logical Units)
- Débit mémoire élevé +-100 Go/s (CPU 10 Go/s)
©2024 Hocine SAADI [Link]@[Link]
GPU vs CPU
CPU GPU
Cœurs orientés latence Cœurs orientés débit
Chip Chip
Core Compute Unit
Cache/Local Mem
Local Cache
Registers
Threading
Registers
Control
SIMD
Unit
SIMD Unit
©2024 Hocine SAADI [Link]@[Link]
Comparaison CPU /GPU
CPUs:Conception orientée latence
- ALU Puissant
ALU ALU
Latence des opérations réduite
Control
ALU ALU
- Caches de grande taille
– Convertir les accès mémoire à latence
longue en accès au cache à latence
Cache courte
- Contrôle sophistiqué
– Prédiction de branche pour une latence
DRAM
de branche réduite
©2024 Hocine SAADI [Link]@[Link]
Comparaison CPU /GPU
CPU: Conception orientée débit
Petites caches
Pour augmenter le débit de la mémoire
Contrôle simple
Aucune prédiction de branche
Pas de transfert de données
ALU économes en énergie
Beaucoup, longue latence mais fortement
pipeline pour un débit élevé
DRAM
Nécessite un nombre massif de threads pour
tolérer les latences
Logique de thread
État du fil
©2024 Hocine SAADI [Link]@[Link]
Comparaison CPU /GPU
©2024 Hocine SAADI [Link]@[Link]
Comparaison CPU /GPU
GPU
- Caractéristiques des GPUs :
Les GPUs tolèrent une large latence
- Moins de cache
- Plus de place pour les unités de calcul
- Très grand nombre d’unités de calcul
- Très grand nombre de threads
- Mémoire locale de grande taille
- Large bande passante mémoire
©2024 Hocine SAADI [Link]@[Link]
Architecture des GPUs NVIDIA
Le GPU est constitué de N petites machines
Multiprocesseurs’’ (SIMD) partageant une mémoire
globale
Un multiprocesseur appelé Stream Multiprocessor SM
• M Processeurs appelés Stream Processor SP
• Un décodeur d’instructions (instruction Unit)
• Trois type de mémoires partagées entre les
M processeurs
• Registres (propres à chaque processeur)
- Une instruction est appliquée aux processeurs (SP)
d’un même multiprocesseur (SM)
©2024 Hocine SAADI [Link]@[Link]
Architecture des GPUs NVIDIA
Chaque Multiprocesseur SM possède une hiérarchie de mémoire cache: 3 types
de mémoires avec des tailles, Vitesses et latences variées.
Un GPU = N unités SIMD + Mémoires
Le GPU est connecté à au CPU à
travers la RAM (Mémoir globale)
©2024 Hocine SAADI [Link]@[Link]
Architecture des GPUs NVIDIA – EXP.
GEFORCE 8
Représentation d’un multiprocesseur de la
GEFORCE 8
16 SM, chaque SM possède deux processeurs
spécialisés appelés SFU et 8 SP (streaming
processors).
Donc un total de 128 SP (cores si on veut)
©2024 Hocine SAADI [Link]@[Link]
Merci de votre attention
Questions ???
©2024 Hocine SAADI [Link]@[Link]