Google Colaboratory: irreführende Informationen über seine GPU (nur 5% RAM verfügbar für einige Benutzer)
Lesen mehrere aufgeregt Ankündigungen über Google Colaboratory die Kostenlose Tesla K80 GPU, ich habe versucht zu laufen, schnell.ai Lektion, die es für ihn nie abgeschlossen werden - schnell der Speicherplatz aus. Ich begann zu untersuchen, warum.
Die Quintessenz ist, dass "freie Tesla K80" ist nicht "frei" für alle - für manche nur ein kleines Stück von ihm ist "frei".
Ich eine Verbindung zu Google Colab von der Westküste Kanadas, und ich bekomme nur 0,5 GB, was soll ein 24 GB GPU-RAM. Andere Benutzer erhalten Sie Zugang zu 11 GB GPU-RAM.
Klar 0,5 GB GPU-RAM reicht für die meisten ML/DL Arbeit.
Wenn Sie nicht sicher sind, was Sie erhalten, hier ist die kleine debug-Funktion, die ich zusammengekratzt:
# 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()
Ausführung in einem jupyter notebook vor dem ausführen von anderem code gibt mir:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Den glücklichen Benutzer, die Zugriff auf die vollständige Karte sehen:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Sehen Sie irgendwelche Fehler in meiner Berechnung von der GPU-RAM-Verfügbarkeit, geliehen von GPUtil?
Können Sie bestätigen, dass Sie ähnliche Ergebnisse erhalten, wenn Sie diesen code ausführen auf Google Colab notebook?
Wenn meine Berechnungen richtig sind, gibt es eine Möglichkeit, um mehr GPU-RAM auf dem freien Feld?
update: ich bin mir nicht sicher, warum einige von uns bekommen 1/20 von dem, was andere Benutzer erhalten. z.B. die person, die mir half, mich zu Debuggen, das ist aus Indien, und er bekommt die ganze Sache!
Hinweis: bitte don ' T senden Sie weitere Vorschläge, wie zu töten, der potentiell stuck/runaway/parallel-notebooks, die möglicherweise verbrauchen Teile der GPU. Egal wie Sie Scheibe es, wenn Sie im gleichen Boot wie ich und waren, die zum ausführen der debug-code, den Sie würde sehen, dass Sie immer noch eine Summe von 5% des GPU-RAM (als dieser noch aktualisiert werden).
InformationsquelleAutor der Frage stason | 2018-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Letzte Nacht lief ich Ihr snippet und bekam genau das, was Sie bekam:
aber heute:
Ich denke, dass der wahrscheinlichste Grund ist, die GPUs sind, die gemeinsam von VMs, so dass bei jedem Neustart der Laufzeit haben Sie die chance, wechseln der GPU, und es ist auch die Wahrscheinlichkeit, Sie wechseln zu einer, die verwendet wird, die von anderen Benutzern.
AKTUALISIERT:
Es stellt sich heraus, dass ich die GPU auch normal, wenn die GPU RAM Frei ist 504 MB, was ich dachte, als die Ursache der ResourceExhaustedError bekam ich Letzte Nacht.
InformationsquelleAutor der Antwort Nguyễn Tài Long
Wenn Sie ausführen, eine Zelle ist nur, dass
!kill -9 -1
in ihm, dass Sie werde dazu führen, dass alle Ihre Laufzeit ist-Zustand (einschließlich Speicher -, Dateisystem-und GPU) sauber abgewischt werden und neu gestartet werden. Warten Sie 30-60s, und drücken Sie die CONNECT-Taste in der oberen rechten Ecke zu verbinden.
InformationsquelleAutor der Antwort Ajaychhimpa1
So zu verhindern, dass sich ein Dutzend Antworten, die darauf hindeutet ungültig im Zusammenhang mit diesem thread den Vorschlag an !kill -9 -1, lasst uns diesen thread schliessen:
Die Antwort ist einfach:
Dies Schreibe, Google einfach gibt nur 5% der GPU für einige von uns, in der Erwägung, dass 100% der anderen. Zeitraum.
InformationsquelleAutor der Antwort stason
Neu Starten Jupyter IPython Kernel:
InformationsquelleAutor der Antwort mkczyk
Bekam ich auch
GPU, RAM: 16 MB | Verwendet: 11423MB | Util 100% | Gesamt 11439MB
Ich vermute, dass zwar jeder Benutzer bekommt eine eigene VM alle VMs sind multi-Mieter von gängigen hardware-Maschine...so teilen sich die 32 GB der Tesla K80.
Ein wenig enttäuschend.
Als Ergebnis bin ich Verzicht auf die Verwendung von google-colab ! :o(
InformationsquelleAutor der Antwort Shirish Ranade
Irreführende Beschreibung seitens Google. Ich habe zu begeistert zu, denke ich. Alles eingerichtet, die Daten geladen, und jetzt bin ich nicht in der Lage, etwas zu tun aufgrund der mit nur 500 MB Speicher für mein Notebook.
InformationsquelleAutor der Antwort ivan_bilan
Finden Sie die Python ist3 pid und kill die pid. Bitte siehe unten im Bild
Hinweis: töten nur Python ist3(pid=130) nicht jupyter python(122).
InformationsquelleAutor der Antwort Manivannan Murugavel
Ich glaube, wenn wir über mehrere notebooks öffnen. Nur schließen es nicht wirklich stoppen den Prozess. Ich habe nicht herausgefunden, wie um ihn zu stoppen. Aber ich habe oben zu finden, die PID des Python ist3, das ausgeführt wurde, längsten und mit den meisten Speicher und ich tötete es. Alles jetzt wieder normal.
InformationsquelleAutor der Antwort Ritwik G
Diese befreit den Raum
InformationsquelleAutor der Antwort Siddarthan