update: pertanyaan ini terkait dengan "Pengaturan notebook: Akselerator perangkat keras: GPU" Google Colab. Pertanyaan ini ditulis sebelum opsi "TPU" ditambahkan.
Membaca beberapa pengumuman gembira tentang Google Colaboratory yang menyediakan Tesla K80 GPU gratis, saya mencoba menjalankan pelajaran fast.ai tentangnya agar tidak pernah selesai - kehabisan memori dengan cepat. Saya mulai menyelidiki mengapa.
Intinya adalah bahwa "Tesla K80 gratis" tidak "gratis" untuk semua - untuk beberapa hanya sebagian kecil saja yang "gratis".
Saya terhubung ke Google Colab dari West Coast Kanada dan saya hanya mendapatkan 0,5GB dari apa yang seharusnya menjadi RAM GPU 24GB. Pengguna lain mendapatkan akses ke RAM GPU 11GB.
Jelas, RAM 0,5 GB GPU tidak cukup untuk sebagian besar pekerjaan ML / DL.
Jika Anda tidak yakin dengan apa yang Anda dapatkan, berikut adalah sedikit fungsi debug yang saya kumpulkan (hanya berfungsi dengan pengaturan GPU pada 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()
Mengeksekusinya di notebook jupyter sebelum menjalankan kode lain memberi saya:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Pengguna beruntung yang mendapatkan akses ke kartu penuh akan melihat:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Apakah Anda melihat adanya kekurangan dalam kalkulasi saya tentang ketersediaan RAM GPU, yang dipinjam dari GPUtil?
Dapatkah Anda mengonfirmasi bahwa Anda mendapatkan hasil yang serupa jika menjalankan kode ini di notebook Google Colab?
Jika perhitungan saya benar, apakah ada cara untuk mendapatkan lebih banyak RAM GPU di kotak gratis?
update: Saya tidak yakin mengapa sebagian dari kita mendapatkan 1/20 dari apa yang didapat pengguna lain. misalnya orang yang membantu saya men-debug ini dari India dan dia mendapatkan semuanya!
catatan : tolong jangan kirim saran lagi tentang cara mematikan notebook yang berpotensi macet / runaway / paralel yang mungkin menghabiskan bagian-bagian GPU. Tidak peduli bagaimana Anda mengirisnya, jika Anda berada di perahu yang sama dengan saya dan menjalankan kode debug, Anda akan melihat bahwa Anda masih mendapatkan total 5% RAM GPU (hingga pembaruan ini masih).