Est-il possible d'arrêter tous les traitements en cours utilisant le GPU via CUDA, sans redémarrer la machine ?
Réponses
Trop de publicités?L'utilitaire lsof vous aidera à le faire. Vous pouvez obtenir une liste des processus accédant à vos cartes NVIDIA avec :
lsof /dev/nvidia*
Ensuite, utilisez kill ou pkill pour terminer les processus que vous voulez. Notez que vous ne voudrez peut-être pas tuer X s'il est en cours d'exécution. Sur mon système de bureau, X et kwin accèdent également au GPU.
Longue réponse :
lsof /dev/nvidia*
vous donne les PIDs fonctionnant sur votre carte GPU qui ressemble à quelque chose comme : lsof : erreur de statut sur PID : No such file or directory
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 7215 ******* mem CHR 195,255 434 /dev/nvidiactl
python 7215 ******* mem CHR 195,0 435 /dev/nvidia0
et
awk '{print $2}'
sélectionne la colonne PID (dans mon cas, c'est la deuxième colonne) et
xargs -I {} kill {}
tue ces travaux PID.
Réponse courte :
Vous pouvez utiliser la commande suivante pour les supprimer tous en même temps.
Attention ! Cette commande va supprimer tous les PIDs qui apparaissent dans lsof /dev/nvidia*. Exécutez d'abord lsof /dev/nvidia* pour confirmer que ces travaux sont ceux que vous voulez supprimer.
lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}
Terminez le travail par un seul ordre.