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)


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.
    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 rapides et recouvrement
    1 slide par page 2 slides par page 6 slides par page
    6 - CUDA : utilisation de la Shared Memory
    1 slide par page 2 slides par page 6 slides par page
    7 - CUDA : autres optimisations
    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
    TD-1 : Définition de grilles de blocs de threads - gestion des débordements dans les kernels
    Préparation du TP-1
    TD-2 : Utilisation des CUBLAS et des Streams
    Préparation du TP-2
    TD-3 : Conception de codes utilisant la Shared Memory
    Préparation du TP-3
    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é
    TP-2 : Programmation CUBLAS, Tensor Cores et Optimisation des transferts CPU-GPU
    Enoncé
    TP-3 : Programmation CUDA optimisée avec la shared memory
    Enoncé
     
    04/01/2022
    Cours
    Bat 640
    E106
    11/01/2022
    TP-0
    Bat 640
    E112
    12/01/2022
    Cours
    Bat 640
    E108
    17/01/2022
    TD-1
    Bat 640
    E108
    19/01/2022
    TP-1
    Bat 620
    B009
    25/01/2022
    Cours
    Bat 640
    E106
    25/01/2022
    TD-2
    Bat 640
    E106
    26/01/2022
    TP-2
    Bat 620
    B014
    09/02/2022
    Cours
    Bat 640
    E110
    11/02/2022
    Cours
    Bat 640
    E108
    15/02/2022
    TD-3
    Bat 640
    E101
    16/02/2022
    TP-3
    Bat 620
    B007