549 votes

Comment vérifier si pytorch utilise le GPU?

Je voudrais savoir si utilise mon GPU. Il est possible de détecter avec s'il ya une activité de la GPU pendant le processus, mais je veux quelque chose d'écrit dans un `` script.

Y a-t-il un moyen de le faire?

908voto

vinzee Points 2195

Cela va fonctionner :

Cela me dit que le GPU est utilisé par .

240voto

blue-phoenox Points 4555

Comme il n'a pas été proposé ici, je vais ajouter une méthode à l'aide d' torch.device, comme c'est assez pratique, également lors de l'initialisation de tenseurs sur le bon device.

# setting device on GPU if available, else CPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print('Using device:', device)
print()

#Additional Info when using cuda
if device.type == 'cuda':
    print(torch.cuda.get_device_name(0))
    print('Memory Usage:')
    print('Allocated:', round(torch.cuda.memory_allocated(0)/1024**3,1), 'GB')
    print('Cached:   ', round(torch.cuda.memory_cached(0)/1024**3,1), 'GB')

Sortie:

Using device: cuda

Tesla K80
Memory Usage:
Allocated: 0.3 GB
Cached:    0.6 GB

Comme mentionné ci-dessus, à l'aide de device il est possible:

  • Pour déplacer les tenseurs à l' device:

    torch.rand(10).to(device)
    
  • Pour créer un tenseur directement sur l' device:

    torch.rand(10, device=device)
    

Ce qui rend la commutation entre le CPU et le GPU à l'aise sans changer le code.


Edit:

Comme il y a eu quelques questions et de la confusion au sujet de la mise en cache et alloué de la mémoire, je suis en ajoutant des informations supplémentaires à ce sujet:


Vous pouvez soit directement à la main sur un device comme indiqué plus haut dans le post ou vous pouvez le laisser Aucun et il va utiliser l' current_device().

72voto

mario23 Points 322

Après le démarrage de l'exécution de la formation de la boucle, si vous voulez manuellement le regarder à partir du terminal, si votre programme est en utilisant les ressources GPU et dans quelle mesure, alors vous pouvez utiliser:

$ watch -n 2 nvidia-smi

Cela permettra de mettre à jour les statistiques d'utilisation pour toutes les 2 secondes jusqu'à ce que vous appuyez sur ctrl+c


Aussi, vous pouvez vérifier si votre installation de PyTorch détecte votre CUDA installation correctement en faisant:

In [13]: import  torch

In [14]: torch.cuda.is_available()
Out[14]: True

True statut signifie que PyTorch est correctement configuré et est l'utilisation du GPU même si vous avez à déplacer/place les tenseurs avec les instructions nécessaires dans votre code.


Si vous voulez le faire à l'intérieur du code Python, puis regardez dans ce module:

https://github.com/jonsafari/nvidia-ml-py ou dans pypi ici: https://pypi.python.org/pypi/nvidia-ml-py/

53voto

prosti Points 4630

D'un point de vue pratique, une seule digression mineure :

Cela `` sait maintenant si cuda ou cpu.

Et il ya une différence comment vous traitez avec le modèle et avec les tenseurs lors du passage à cuda. C'est un peu étrange au début.

Tout cela est délicat et le comprendre une fois, vous aide à faire face rapidement avec moins de débogage.

28voto

TimeSeam Points 371

Sur le site du bureau et la page de démarrage, consultez GPU pour PyTorch comme ci-dessous:

Référence: PyTorch Démarrer

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