Calcul sur GPU
5ème année ingénieur de Polytech Paris-Sud
Stéphane Vialle, CentraleSupélec & LISN, Stephane.Vialle@centralesupelec.fr
(cours conçu avec Laércio Lima Pilla, CNRS)
-
Thème et objectifs du cours :
Ce
cours à comme objectif d'appréhender par la pratique la
programmation des GPU (processeurs graphiques) pour le calcul scientifique. Le langage CUDA sera
étudié, ainsi que de nombreux
concepts de l'algorithmique de calcul sur GPU, et mis en oeuvre lors de
plusieurs TP. Des mesures et analyses de performances seront effectués
pour chaque développement réalisé, et serviront de validation à toutes
les démarches d'optimisation.
-
Contenu du cours :
- Architecture des GPU, Bases de la programmation CUDA, Bonnes pratiques de la programmation CUDA(coalescence, divergence...)
- Bibliothèque CUBLAS, Transferts rapides et recouvrement
- Utilisation de la Shared Memory, autres optimisations
- Retour d'expérience sur la programmation hybride CPU/GPU et sur cluster de GPU.
- Supports de cours :
1 - GPU architecture
|
| 1 slide par page |
| 2 slides par page |
| 6 slides par page |
Site web du "Top 500" des superordinateurs |
http://www.top500.org/ |
2 - CUDA : bases de la programmation
|
|
1 slide par page |
|
2 slides par page |
|
6 slides par page |
3 - CUDA : bonnes pratiques
|
|
1 slide par page |
|
2 slides par page |
|
6 slides par page |
4 - Bibliothèque CUBLAS
|
| 1 slide par page |
| 2 slides par page |
| 6 slides par page |
5 - CUDA : transferts, streams et recouvrement
|
| 1 slide par page |
| 2 slides par page |
| 6 slides par page |
6 - CUDA : Prog. avancée Part-1
|
|
1 slide par page |
|
2 slides par page |
|
6 slides par page |
7 - CUDA : Prog. avancée Part-2
|
| 1 slide par page |
| 2 slides par page |
| 6 slides par page |
8 - Retour d'expérience sur la programmation hybride
|
|
1 slide par page |
|
2 slides par page |
|
6 slides par page |
TP-0 : prise en main de l'environnement de développement CUDA
| Enoncé
|
|
|
TP-1 : programmation CUDA de base (produit de matrices, coalescence, mesure de performances)
|
Enoncé
| Perf
|
|
TP-2 : Programmation CUBLAS, Tensor Cores et Optimisation des transferts CPU-GPU
|
Enoncé
| Perf
|
|
TP-3 : Programmation CUDA optimisée avec la shared memory
|
Enoncé
| Perf
|
|
04/12/2023
|
Cours
|
Bat 640
|
E106
|
06/12/2023
|
TP-0
|
Bat 620
|
B009
|
06/12/2023
|
Cours
|
Bat 620
|
A203
|
15/12/2023
| TD-1
|
Bat 620
|
A200
|
22/12/2023
|
TP-1
|
Bat 620
|
B016
|
08/01/2024
|
Cours
|
Bat 620
|
A102
|
08/01/2024
|
TD-2
|
Bat 620
|
A102
|
09/01/2024
|
TP-2
|
Bat 620
|
B016
|
23/01/2024
|
Cours
|
Bat 620
|
A102
|
23/01/2024
| TD-3
| Bat 620
|
A102
|
13/02/2024
|
TP-3
|
Bat 620
|
B016
|
- J. Sanders and E. Kandrot. "CUDA by Example: An Introduction to General-Purpose GPU Programming". NVIDIA. 2010.