Trace d'exécution pour programmes CUDA

Contexte :

Dans le domaine du calcul intensif, l'analyse de l'exécution d'une application est une partie importante du processus de développement. Cette analyse permet de comprendre et d'améliorer les performances de l'application. L'évolution des architecture matérielles utilisées (processeurs multi-coeurs, GPU, etc.) ainsi que l'utilisation de modèles de programmation hybrides (MPI+threads+CUDA par exemple) compliquent de plus en plus l'optimisation et l'analyse d'applications.

Afin de faciliter la compréhension du comportement d'un programme, EZTrace[1] intercepte les appels à certaines fonctions (MPI_Send, pthread_mutex_lock, etc.) et génère un fichier de trace visualisable avec un outils adapté (Vampir ou ViTE[2] par exemple).

EZTrace fourni une liste de plugins permettant d'analyser des applications utilisant MPI, OpenMP ou des Pthread. L'analyse de programme exploitant des cartes graphiques (programmes CUDA ou OpenCL) est pour le moment impossible avec EZTrace.

Sujet :

Le but de ce projet est d'étendre EZTrace afin de fournir un plugin permettant d'analyser des programmes CUDA et/ou OpenCL.

Les phases envisagées pour ce projet sont les suivantes :

Ce projet est en lien avec l'U.V ASR CSC5001 (grappes et grilles).

Environnement de travail :

Responsable : François TRAHAY
Téléphone : 4740
Bureau : D303

Références :

[1] EZTrace: disponible sous licence GPL2 ici: http://eztrace.gforge.inria.fr/

[2] ViTE (Visual Trace Explorer): outil de visualisation de traces (similaire à Vampir) développé par des étudiants de l'ENSEIRB sous licence CECILL-A : http://vite.gforge.inria.fr/