J'ai installé tensorflow dans mon Ubuntu 16.04 en utilisant la deuxième réponse ici avec l'installation intégrée de cuda d'ubuntu apt.
Maintenant, ma question est de savoir comment puis-je tester si tensorflow utilise vraiment gpu? J'ai un gpx gtx 960m. Quand je import tensorflow
c'est la sortie
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Cette sortie est-elle suffisante pour vérifier si tensorflow utilise gpu?
python
tensorflow
ubuntu
gpu
Tamim Addari
la source
la source
log_device_placement
approche en réponse. Le moyen le plus fiable est de regarder la chronologie comme spécifié dans ce commentaire: github.com/tensorflow/tensorflow/issues/…Réponses:
Non, je ne pense pas que "bibliothèque CUDA ouverte" soit suffisante pour le dire, car différents nœuds du graphique peuvent se trouver sur différents appareils.
Pour savoir quel appareil est utilisé, vous pouvez activer le placement de l'appareil de journalisation comme ceci:
Vérifiez votre console pour ce type de sortie.
la source
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
En plus d'utiliser
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
ce qui est décrit dans d'autres réponses ainsi que dans la documentation officielle de TensorFlow , vous pouvez essayer d'assigner un calcul au GPU et voir si vous avez une erreur.Ici
Si vous avez un GPU et pouvez l'utiliser, vous verrez le résultat. Sinon, vous verrez une erreur avec une longue trace de pile. À la fin, vous aurez quelque chose comme ceci:
Récemment, quelques fonctions utiles sont apparues dans TF:
Vous pouvez également vérifier les appareils disponibles dans la session:
devices
vous rendra quelque chose commela source
Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582 pciBusID: 0000:02:00.0 totalMemory: 10.92GiB freeMemory: 10.76GiB
Le morceau de code suivant devrait vous donner tous les appareils disponibles pour tensorflow.
la source
Je pense qu'il existe un moyen plus simple d'y parvenir.
Il imprime généralement comme
Cela me semble plus facile que ces journaux verbeux.
la source
Tensorflow 2.0
Les sessions ne sont plus utilisées dans 2.0. Au lieu de cela, on peut utiliser
tf.test.is_gpu_available
:Si vous obtenez une erreur, vous devez vérifier votre installation.
la source
tf.config.list_physical_devices('GPU')
Cela confirmera que tensorflow utilise le GPU pendant l'entraînement?
Code
Production
la source
log_device_placement
il et comment voir CPU vs GPU dans la sortie?). Cela améliorera la qualité de votre réponse!En plus des autres réponses, les éléments suivants devraient vous aider à vous assurer que votre version de tensorflow inclut la prise en charge GPU.
la source
Ok, lancez d'abord un
ipython shell
depuis le terminal etimport
TensorFlow:Maintenant, nous pouvons regarder l'utilisation de la mémoire du GPU dans une console en utilisant la commande suivante:
Puisque nous n'avons
import
édité que TensorFlow mais que nous n'avons pas encore utilisé de GPU, les statistiques d'utilisation seront:Remarquez que l'utilisation de la mémoire du GPU est très inférieure (~ 700 Mo); Parfois, l'utilisation de la mémoire GPU peut même être aussi faible que 0 Mo.
Maintenant, chargeons le GPU dans notre code. Comme indiqué dans
tf documentation
, faites:Maintenant, les statistiques de la montre doivent afficher une mémoire d'utilisation du GPU mise à jour comme ci-dessous:
Observez maintenant comment notre processus Python à partir du shell ipython utilise ~ 7 Go de mémoire GPU.
PS Vous pouvez continuer à regarder ces statistiques pendant l'exécution du code, pour voir à quel point l'utilisation du GPU est intense au fil du temps.
la source
Cela devrait donner la liste des appareils disponibles pour Tensorflow (sous Py-3.6):
la source
Je préfère utiliser nvidia-smi pour surveiller l'utilisation du GPU. si elle augmente considérablement lorsque vous démarrez votre programme, c'est un signe fort que votre tensorflow utilise le GPU.
la source
Avec les récentes mises à jour de Tensorflow, vous pouvez le vérifier comme suit:
Cela retournera
True
si le GPU est utilisé parTensorflow
, et retourneraFalse
cas contraire.Si vous voulez appareil ,
device_name
vous pouvez taper:tf.test.gpu_device_name()
. Obtenez plus de détails d' icila source
Exécutez ce qui suit dans Jupyter,
Si vous avez correctement configuré votre environnement, vous obtiendrez la sortie suivante dans le terminal où vous avez exécuté "cahier jupyter" ,
Vous pouvez voir ici que j'utilise TensorFlow avec un Nvidia Quodro K620.
la source
Je trouve que l'interrogation du GPU à partir de la ligne de commande est la plus simple:
si votre apprentissage est un processus d'arrière-plan, le pid de
jobs -p
doit correspondre au pid denvidia-smi
la source
Vous pouvez vérifier si vous utilisez actuellement le GPU en exécutant le code suivant:
Si la sortie est
''
, cela signifie que vous utilisezCPU
uniquement;Si la sortie est quelque chose comme ça
/device:GPU:0
, cela signifie que celaGPU
fonctionne.Et utilisez le code suivant pour vérifier lequel
GPU
vous utilisez:la source
' '
, que devons-nous faire?Placez-le près du haut de votre cahier jupyter. Commentez ce dont vous n'avez pas besoin.
REMARQUE: avec la sortie de TensorFlow 2.0, Keras est désormais inclus dans le cadre de l'API TF.
Répondu à l'origine ici .
la source
Pour Tensorflow 2.0
source ici
une autre option est:
la source
is_gpu_available
(de tensorflow.python.framework.test_util) est obsolète et sera supprimé dans une future version.MISE À JOUR DU TENSORFLOW> = 2.1.
La méthode recommandée pour vérifier si TensorFlow utilise le GPU est la suivante:
Depuis TensorFlow 2.1,
tf.test.gpu_device_name()
a été déprécié au profit de ce qui précède.la source
Voici la ligne que j'utilise pour répertorier les périphériques disponibles
tf.session
directement depuis bash:Il imprimera les appareils disponibles et la version tensorflow, par exemple:
la source
J'ai trouvé ci-dessous l'extrait est très pratique pour tester le GPU ..
Test Tensorflow 2.0
Test Tensorflow 1
la source
Ce qui suit renverra également le nom de vos périphériques GPU.
la source
Avec tensotflow 2.0> =
la source
Comme suggéré par @AmitaiIrron:
Cette section indique qu'un GPU a été trouvé
Et ici, il a été ajouté en tant que périphérique physique disponible
la source
Vous avez quelques options pour tester si l'accélération GPU est utilisée par votre installation TensorFlow.
Vous pouvez taper les commandes suivantes sur trois plates-formes différentes.
Spyder - Tapez la commande suivante dans la console.
import tensorflow as tf tf.test.is_gpu_available()
la source
Tensorflow 2.1
Un calcul simple qui peut être vérifié avec nvidia-smi pour l'utilisation de la mémoire sur le GPU.
la source
Si vous utilisez TensorFlow 2.0, vous pouvez l'utiliser pour la boucle pour afficher les périphériques:
la source
si vous utilisez tensorflow 2.x, utilisez:
la source
Exécutez cette commande dans Jupyter ou votre IDE pour vérifier si Tensorflow utilise ou non un GPU:
tf.config.list_physical_devices('GPU')
la source