更新:这个问题与Google Colab的“笔记本设置:硬件加速器:GPU”有关。这个问题是在添加“TPU”选项之前写的。
阅读了有关 Google Colaboratory 提供免费 Tesla K80 GPU 的多个令人兴奋的公告,我尝试运行fast.ai http://course.fast.ai/教训它永远不会完成 - 很快就会耗尽内存。我开始调查原因。
最重要的是,“免费 Tesla K80”并不是对所有人来说都是“免费”的——对于某些人来说,只有一小部分是“免费”的。
我从加拿大西海岸连接到 Google Colab,但本应是 24GB GPU RAM 的却只有 0.5GB。其他用户可以使用 11GB GPU RAM。
显然 0.5GB GPU RAM 不足以满足大多数 ML/DL 工作的需要。
如果您不确定会得到什么,这里是我整理的一些调试功能(仅适用于笔记本电脑的 GPU 设置):
# 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()
在运行任何其他代码之前在 jupyter 笔记本中执行它会给我:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
获得完整卡的幸运用户将看到:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
您是否发现我从 GPUtil 借用的 GPU RAM 可用性计算有任何缺陷?
您能否确认,如果您在 Google Colab 笔记本上运行此代码,您会得到类似的结果吗?
如果我的计算正确,有什么办法可以在免费盒子上获得更多 GPU RAM 吗?
更新:我不知道为什么我们中的一些人得到的只是其他用户的 1/20。例如帮助我调试这个的人来自印度,他掌握了整个事情!
note:请不要再发送任何有关如何消除可能消耗 GPU 部分的潜在卡住/失控/并行笔记本的建议。不管你如何划分它,如果你和我在同一条船上并运行调试代码,你会发现你仍然获得总共 5% 的 GPU RAM(截至本次更新)。