Calcul sur GPU

5ème année ingénieur de Polytech Paris-Sud

Stéphane Vialle, CentraleSupélec & LRI, Stephane.Vialle@centralesupelec.fr  

Laércio Lima Pilla, CNRS & LRI, pilla@lri.fr


Ce cours à comme objectif d'appréhender par la pratique la programmation des GPU (processeurs graphiques) et des clusters de GPU pour le calcul scientifique. Les langages CUDA et OpenACC seront étudiés, 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
    2 slides par page 3 slides par page 6 slides par page
    Site web du "Top 500" des superordinateurs http://www.top500.org/
    2 - CUDA : bases de la programmation
    2 slides par page 3 slides par page 6 slides par page
    3 - CUDA : bonnes pratiques
    2 slides par page 3 slides par page 6 slides par page
    4 - Bibliothèque CUBLAS
    2 slides par page 3 slides par page 6 slides par page
    5 - CUDA : transferts rapides et recouvrement
    2 slides par page 3 slides par page 6 slides par page
    6 - CUDA : programmation  optimisée
    2 slides par page 3 slides par page 6 slides par page
    7 - Retour d'expérience sur la programmation hybride
    2 slides par page 3 slides par page 6 slides par page
    8 - Algorithme du Stencil et implantation en CUDA
    1 slide par page
    2 slides par page


    TD-1 : CUDA's Thread Hierarchy - Application to Matrix Product computation
    Enoncé
    TD-2 : Utilisation des CUBLAS et des Streams
    Préparation du TP-2 à partir de l'énoncé du TP-2
    TD-3 : Conception de code Stencil optimisé sur GPU
    Enoncé
    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é
     
    07/01/2020
    Cours
    Bât 620
    Salle A101
    15/01/2020
    TP
    Bât 640
    Salle A212
    22/01/2020
    TD
    Bât 640
    Salle E113
    22/01/2020
    TP
    Bât 620
    Salle B009
    27/01/2020
    Cours
    Bât 620
    Salle A201
    27/01/2020
    TD
    Bât 620
    Salle A201
    29/01/2020
    TP
    Bât 640
    Salle A212
    04/02/2020
    Cours
    Bât 640
    Salle E102
    05/02/2020
    Cours
    Bât 620
    Salle A202
    05/02/2020
    TD
    Bât 620
    Salle A202
    12/02/2020
    TD
    Bât 620
    Salle A202
    12/02/2020
    TP
    Bât 640
    Salle A213