aktualizacja: to pytanie jest związane z „Ustawieniami notebooka: Akcelerator sprzętowy: GPU” Google Colab. To pytanie zostało napisane przed dodaniem opcji „TPU”.
Czytając wiele podekscytowanych ogłoszeń o Google Colaboratory dostarczającym darmowy procesor graficzny Tesla K80, próbowałem działać szybko. A lekcja na ten temat, aby nigdy się nie skończyła - szybko zabrakło pamięci. Zacząłem się zastanawiać, dlaczego.
Najważniejsze jest to, że „bezpłatna Tesla K80” nie jest „bezpłatna” dla wszystkich - dla niektórych tylko niewielka jej część jest „bezpłatna”.
Łączę się z Google Colab z Zachodniego Wybrzeża Kanady i otrzymuję tylko 0,5 GB z tego, co powinno być 24 GB pamięci RAM GPU. Inni użytkownicy uzyskują dostęp do 11 GB pamięci RAM GPU.
Najwyraźniej 0,5 GB pamięci RAM GPU jest niewystarczające dla większości zadań ML / DL.
Jeśli nie jesteś pewien, co otrzymujesz, oto mała funkcja debugowania, którą zeskrobałem razem (działa tylko z ustawieniem GPU notebooka):
# 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()
Wykonanie go w notebooku jupyter przed uruchomieniem jakiegokolwiek innego kodu daje mi:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Szczęśliwi użytkownicy, którzy uzyskają dostęp do pełnej karty, zobaczą:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Czy widzisz jakąś lukę w moich obliczeniach dostępności pamięci RAM na GPU, pożyczonej od GPUtil?
Czy możesz potwierdzić, że uzyskasz podobne wyniki, jeśli uruchomisz ten kod na notatniku Google Colab?
Jeśli moje obliczenia są prawidłowe, czy jest jakiś sposób, aby uzyskać więcej pamięci RAM GPU w darmowym pudełku?
aktualizacja: nie jestem pewien, dlaczego niektórzy z nas otrzymują 1/20 tego, co otrzymują inni użytkownicy. np. osoba, która pomogła mi w debugowaniu tego, pochodzi z Indii i dostaje wszystko!
Uwaga : nie wysyłaj więcej sugestii, jak zabić potencjalnie zablokowane / niekontrolowane / równoległe notebooki, które mogą zużywać części GPU. Bez względu na to, jak go pokroisz, jeśli jesteś na tej samej łodzi co ja i miałeś uruchomić kod debugowania, zobaczysz, że nadal masz łącznie 5% pamięci RAM GPU (nadal w tej aktualizacji).