Salut à tous,
Je joue avec keras (un module python basé sur Theano pour jouer avec les réseaux de neurones). J'ai activé le support du GPU, mais la plupart de mes programmes restent très lents. Je cherche donc pourquoi.
La première idée a été de lancer atop et de surveiller l'utilisation des ressources. Rien ne dépasse 10%. J'utilise alors nvidia-smi pour surveiller l'utilisation du GPU, mais elle reste en-dessous de 10%, elle aussi. Pourtant, mon programme est listé dans les processus utilisant le GPU. Sur un exemple plus simple, Keras utilise bien 100% du GPU.
Comment trouver la ressources limitantes ?
Merci d'avance pour votre aide
Duna
Trouver le bottlneck d'un programme
- Dunatotatos
- Membre
- Messages : 426
- Inscription : 11 mai 2016, 20:56
- Status : Hors-ligne
Je vérifie avec iotop, L'utilisation ne dépasse pas 1%.
En fait, j'ai pensé que certaines ressources insoupçonnées pourrait poser problème. Comme l'attente de la génération de bits aléatoires dans /dev/random. Si je lance cat /dev/random, aucune ressource affichée dans atop, nvidia-smi ou iotop n'est sur-utilisée. Pourtant, mon programme est bloqué. Et j'imagine que /dev/random n'est pas la seule ressource de ce type.
Un travail peut-être intéressant serait de répertorier tous les points potentiellement bloquant, et de monitorer ces points dans un utilitaires unique qui permettrait de détecter facilement des bottleneck.
Utile ? Existant ?
EDIT : J'ai relancé mon programme une 2ème fois, et bizarrement, il s'est fini en moins d'une seconde (ce qui correspond au temps de calcul que j'avais estimé sur GPU).
En fait, j'ai pensé que certaines ressources insoupçonnées pourrait poser problème. Comme l'attente de la génération de bits aléatoires dans /dev/random. Si je lance cat /dev/random, aucune ressource affichée dans atop, nvidia-smi ou iotop n'est sur-utilisée. Pourtant, mon programme est bloqué. Et j'imagine que /dev/random n'est pas la seule ressource de ce type.
Un travail peut-être intéressant serait de répertorier tous les points potentiellement bloquant, et de monitorer ces points dans un utilitaires unique qui permettrait de détecter facilement des bottleneck.
Utile ? Existant ?
EDIT : J'ai relancé mon programme une 2ème fois, et bizarrement, il s'est fini en moins d'une seconde (ce qui correspond au temps de calcul que j'avais estimé sur GPU).