web-dev-qa-db-fra.com

Tensorflow: Comment surveillez-vous les performances du GPU pendant la formation du modèle en temps réel?

Je suis nouveau sur Ubuntu et les GPU et j'ai récemment utilisé un nouveau PC avec Ubuntu 16.04 et 4 GPU NVIDIA 1080ti dans notre laboratoire. La machine dispose également d'un processeur i7 16 cœurs.

J'ai quelques questions de base:

  1. Tensorflow est installé pour le GPU. Je suppose donc qu'il priorise automatiquement l'utilisation du GPU? Si oui, utilise-t-il les 4 ensemble ou utilise-t-il 1 et en recrute-t-il un autre si nécessaire?

  2. Puis-je surveiller en temps réel l'utilisation/l'activité du GPU lors de la formation d'un modèle?

Je comprends parfaitement qu'il s'agit de matériel de base, mais des réponses claires et définitives à ces questions spécifiques seraient formidables.

ÉDITER:

Sur la base de cette sortie - cela signifie-t-il vraiment que presque toute la mémoire de chacun de mes GPU est utilisée?

enter image description here

9
GhostRider
  1. Tensorflow n'utilise pas automatiquement tous les GPU, il n'utilisera qu'un seul GPU, en particulier le premier gpu /gpu:0

    Vous devez écrire du code multi gpus pour utiliser tous les gpus disponibles. exemple cifar mutli-gp

  2. pour vérifier l'utilisation toutes les 0,1 secondes

    watch -n0.1 nvidia-smi

12
Ishant Mrinal
  1. Si aucune autre indication n'est donnée, une installation TensorFlow activée par GPU utilisera par défaut le premier GPU disponible (tant que le pilote Nvidia et CUDA 8.0 sont installés et que le GPU dispose des fonctionnalités nécessaires capacité de calcul , qui, selon les documents est 3.0). Si vous souhaitez utiliser plus de GPU, vous devez utiliser tf.device directives dans votre graphique (en savoir plus ici ).
  2. La façon la plus simple de vérifier l'utilisation du GPU est l'outil de console nvidia-smi . Cependant, contrairement à top ou à d'autres programmes similaires, il affiche uniquement l'utilisation actuelle et se termine. Comme suggéré dans les commentaires, vous pouvez utiliser quelque chose comme watch -n1 nvidia-smi pour relancer le programme en continu (dans ce cas toutes les secondes).
4
jdehesa

Toutes les commandes ci-dessus utilisent watch, il est beaucoup plus efficace de garder le contexte vivant en utilisant le boucleur builin: nvidia-smi -l 1.

Si vous voulez voir quelque chose comme htop et nvidia-smi en même temps, vous pouvez essayer regards (pip install glances).

0
TimZaman

Si vous utilisez GCP, veuillez jeter un œil à ce script qui vous permet de surveiller l'utilisation du GPU dans StackDriver, vous pouvez également l'utiliser pour collecter des données nvidia-smi en utilisant nvidia-smi -l 5 commande et de rapporter ces statistiques pour vous de suivre.

https://github.com/GoogleCloudPlatform/ml-on-gcp/tree/master/dlvm/gcp-gpu-utilization-metrics

enter image description here

0
gogasca