mise à jour: cette question est liée aux "Paramètres du notebook: accélérateur matériel: GPU" de Google Colab. Cette question a été écrite avant l'ajout de l'option "TPU".
En lisant plusieurs annonces enthousiastes à propos de Google Colaboratory fournissant un GPU Tesla K80 gratuit, j'ai essayé d'exécuter une leçon fast.ai dessus pour qu'elle ne se termine jamais - rapidement à court de mémoire. J'ai commencé à chercher pourquoi.
L'essentiel est que «le Tesla K80 gratuit» n'est pas «gratuit» pour tous - pour certains, seule une petite partie est «gratuite».
Je me connecte à Google Colab depuis la côte ouest du Canada et je ne reçois que 0,5 Go de ce qui est supposé être une RAM GPU de 24 Go. Les autres utilisateurs ont accès à 11 Go de RAM GPU.
Il est clair que 0,5 Go de RAM GPU est insuffisant pour la plupart des travaux ML / DL.
Si vous n'êtes pas sûr de ce que vous obtenez, voici une petite fonction de débogage que j'ai récupérée (ne fonctionne qu'avec le paramètre GPU du notebook):
# memory footprint support libraries/code
!ln -sf /opt/bin/nvidia-smi /usr/bin/nvidia-smi
!pip install gputil
!pip install psutil
!pip install humanize
import psutil
import humanize
import os
import GPUtil as GPU
GPUs = GPU.getGPUs()
# XXX: only one GPU on Colab and isn’t guaranteed
gpu = GPUs[0]
def printm():
process = psutil.Process(os.getpid())
print("Gen RAM Free: " + humanize.naturalsize( psutil.virtual_memory().available ), " | Proc size: " + humanize.naturalsize( process.memory_info().rss))
print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".format(gpu.memoryFree, gpu.memoryUsed, gpu.memoryUtil*100, gpu.memoryTotal))
printm()
L'exécuter dans un notebook jupyter avant d'exécuter tout autre code me donne:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Les utilisateurs chanceux qui auront accès à la carte complète verront:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Voyez-vous une faille dans mon calcul de la disponibilité de la RAM GPU, empruntée à GPUtil?
Pouvez-vous confirmer que vous obtenez des résultats similaires si vous exécutez ce code sur un ordinateur portable Google Colab?
Si mes calculs sont corrects, existe-t-il un moyen d'obtenir plus de RAM GPU sur la boîte gratuite?
mise à jour: je ne sais pas pourquoi certains d'entre nous obtiennent 1 / 20e de ce que les autres utilisateurs obtiennent. par exemple, la personne qui m'a aidé à déboguer ceci est de l'Inde et il obtient le tout!
Remarque : veuillez ne pas envoyer plus de suggestions sur la façon de tuer les ordinateurs portables potentiellement bloqués / emballés / parallèles qui pourraient consommer des parties du GPU. Peu importe comment vous le découpez, si vous êtes dans le même bateau que moi et que vous exécutez le code de débogage, vous verrez que vous obtenez toujours un total de 5% de RAM GPU (à partir de cette mise à jour toujours).