Soutenance du projet de fin d’études ASR · Soutenance du projet de fin d’études ASR :...

22
Soutenance du projet de fin d’études ASR : Paul-Émile SUBLET Hervé LOEFFEL Encadrant : François TRAHAY 1 25/01/2012

Transcript of Soutenance du projet de fin d’études ASR · Soutenance du projet de fin d’études ASR :...

  • Soutenance du projet de fin d’études ASR :

    Paul-Émile SUBLET

    Hervé LOEFFEL

    Encadrant : François TRAHAY

    1 25/01/2012

  • Sommaire : 1) Contexte

    2) Implémentation du module CUDA

    3) Tests de performance

    4) Avenir de EZTrace

    5) Conclusion

    2 Paul-Émile SUBLET Hervé LOEFFEL

  • Contexte (1/3) : - Des logiciels de pointe utilisant des calculs de plus en

    plus lourds

    - Nécessité de réduire les temps d’exécution

    3 Paul-Émile SUBLET Hervé LOEFFEL

  • Contexte (2/3) : - La parallélisation : une solution pour accélérer les

    programmes

    - Effectuer les calculs sur le GPU : CUDA

    4 Paul-Émile SUBLET Hervé LOEFFEL

  • Contexte (3/3) : - EZTrace : permet de voir les temps utilisés par les

    fonctions, les threads…

    - Permet à l’utilisateur d’optimiser le programme

    - Visualisation sur VITE

    5 Paul-Émile SUBLET Hervé LOEFFEL

  • Fonctionnement de CUDA:

    6 Paul-Émile SUBLET Hervé LOEFFEL

  • Implémentation du module CUDA dans EZTrace (1/5) : - Modules déjà existants : MPI, OpenMP, memory…

    - Nouveau module : CUDA

    - Structure : cuda.cu

    cuda_ev_codes.h

    eztrace_convert_cuda.c

    7 Paul-Émile SUBLET Hervé LOEFFEL

  • Implémentation du module CUDA dans EZTrace (2/5) :

    Interception des fonctions :

    - cudaLaunch

    - cudaMalloc

    - cudaMemcpy

    - cudaThreadSynchronize

    - cudaEventSynchronize

    - __cudaRegisterFunction

    8 Paul-Émile SUBLET Hervé LOEFFEL

  • Implémentation du module CUDA dans EZTrace (3/5) :

    9 Paul-Émile SUBLET Hervé LOEFFEL

  • Implémentation du module CUDA dans EZTrace (4/5) : - Conversion de la trace en format standard Pajé/OTF

    => GTG

    10 Paul-Émile SUBLET Hervé LOEFFEL

  • Implémentation du module CUDA dans EZTrace (5/5) :

    11 Paul-Émile SUBLET Hervé LOEFFEL

  • Tests de performance (1/6): - Lancement de kernels multiples

    for(j = 0 ; j < atoi(argv[1]);j++)

    {

    for(i = 0; i

  • Tests de performance (2/6): - Lancement de kernels multiples

    13 Paul-Émile SUBLET Hervé LOEFFEL

  • Tests de performance (3/6): - Utilisation multiple de cudaMemcpy :

    for(j = 0 ; j < atoi(argv[1]) ; j++)

    cudaMemcpy(entierACalculer_h, entierACalculer_d,

    sizeof(int), cudaMemcpyDeviceToHost);

    14 Paul-Émile SUBLET Hervé LOEFFEL

  • Tests de performance (4/6): - Utilisation multiple de cudaMemcpy :

    15 Paul-Émile SUBLET Hervé LOEFFEL

  • Tests de performance (5/6):

    - Algorithme de Mandelbrot

    - Lancement d’un unique kernel

    - Calculs effectués sur le GPU

    16 Paul-Émile SUBLET Hervé LOEFFEL

  • Tests de performance (6/6):

    17 Paul-Émile SUBLET Hervé LOEFFEL

  • Avenir de EZTrace : améliorations

    - Statistiques

    - Représentations d’autres fonctions moins courantes dans le module CUDA

    - Nouveaux modules pour d’autres librairies (OpenCL, etc…)

    18 Paul-Émile SUBLET Hervé LOEFFEL

  • Avenir de EZTrace : utilisation

    - Module CUDA implanté dans la future version de EZTrace

    - Utilisation par les entreprises

    19 Paul-Émile SUBLET Hervé LOEFFEL

  • Conclusion

    - Immersion dans un projet déjà entamé

    - Implémentation du module CUDA

    - Essais de performance

    - Un projet toujours en cours

    20 Paul-Émile SUBLET Hervé LOEFFEL

  • Conclusion

    « L’informatique, c’est l’art de passer des journées pour essayer de gagner quelques microsecondes »

    21 Paul-Émile SUBLET Hervé LOEFFEL

  • Démonstration

    22 Paul-Émile SUBLET Hervé LOEFFEL