186 votes

Un utilitaire de type "top" pour surveiller l'activité CUDA sur un GPU

J'essaie de surveiller un processus qui utilise CUDA et MPI, y a-t-il un moyen de le faire, quelque chose comme la commande "top" mais qui surveille aussi le GPU ?

0 votes

"nvidia-smi pmon -i 0" peut surveiller tous les processus tournant sur le GPU nvidia 0.

213voto

Che Points 333

Pour obtenir un aperçu en temps réel des ressources utilisées, faites :

nvidia-smi -l 1

Cela va boucler et appeler la vue à chaque seconde.

Si vous ne souhaitez pas conserver les traces passées de l'appel en boucle dans l'historique de la console, vous pouvez également le faire :

watch -n0.1 nvidia-smi

Où 0,1 est l'intervalle de temps, en secondes.

enter image description here

3 votes

Interroger la carte toutes les 0,1 secondes ? Cela va-t-il entraîner une charge sur la carte ? De plus, en utilisant watch, vous démarrez un nouveau processus toutes les 0,1 secondes.

0 votes

@MickT Est-ce un gros problème ? Comme le Nvidia-smi ont cette boucle de construction ! La commande "watch" est-elle très différente de la commande nvidia-smi -l ?

0 votes

C'est possible, j'ai vu des cartes bas de gamme avoir des blocages étranges et je pense que c'est parce que trop d'utilisateurs utilisaient nvidia-smi sur les cartes. Je pense que l'utilisation de 'nvidia-smi -l' est une meilleure solution car vous n'avez pas à forker un nouveau processus à chaque fois. De plus, vérifier la carte toutes les 0,1 secondes est exagéré, je le ferais toutes les secondes si j'essaie de déboguer un problème, sinon je le fais toutes les 5 minutes pour surveiller les performances. J'espère que cela vous aidera ! :)

135voto

Alleo Points 178

Je trouve gpustat très utile. In peut être installé avec pip install gpustat et imprime la répartition de l'utilisation par processus ou par utilisateur.

enter image description here

4 votes

Après avoir mis watch gpustat -cp vous pouvez voir les statistiques en continu mais les couleurs ont disparu. Comment réparer cela ? @Alleo

1 votes

@AbhimanyuAryan use watch -c . @Roman Orac, Merci, cela a également fonctionné pour moi sur redhat 8 lorsque j'obtenais une erreur due à l'importation de _curses dans python.

7 votes

watch -c gpustat -cp --color

86voto

Edric Points 11387

Je ne suis pas au courant de quelque chose qui combine ces informations, mais vous pouvez utiliser la fonction nvidia-smi pour obtenir les données brutes, comme ceci (merci à @jmsu pour le conseil sur -l) :

$ nvidia-smi -q -g 0 -d UTILIZATION -l

==============NVSMI LOG==============

Timestamp                       : Tue Nov 22 11:50:05 2011

Driver Version                  : 275.19

Attached GPUs                   : 2

GPU 0:1:0
    Utilization
        Gpu                     : 0 %
        Memory                  : 0 %

4 votes

Je pense que si vous ajoutez un -l à cela, vous obtenez une mise à jour continue qui surveille efficacement l'utilisation du GPU et de la mémoire.

6 votes

Et si, lorsque je l'exécute, l'utilisation du GPU indique simplement N/A ?

3 votes

@natorro On dirait que nVidia a abandonné le support pour certaines cartes. Vérifiez ce lien forums.nvidia.com/index.php?showtopic=205165

28voto

Jayhello Points 703

Il suffit d'utiliser watch nvidia-smi il émettra le message par intervalle de 2s par défaut.

Par exemple, comme l'image ci-dessous :

enter image description here

Vous pouvez également utiliser watch -n 5 nvidia-smi (-n intervalle de 5 par 5s).

22voto

Deepak Points 346

Utiliser l'argument "--query-compute-apps="

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv

pour une aide supplémentaire, veuillez suivre

nvidia-smi --help-query-compute-app

0 votes

nvidia-smi --help-query-compute-app Combinaison invalide des arguments d'entrée. Veuillez exécuter nvidia-smi -h pour de l'aide.

0 votes

Utilice --help-query-compute-apps

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X