更新:此问题与Google Colab的“笔记本设置:硬件加速器:GPU”有关。在添加“ TPU”选项之前就写了这个问题。
阅读关于Google Colaboratory提供免费Tesla K80 GPU的多个激动人心的公告,我试图在它上运行fast.ai课程,以使其永远无法完成-很快耗尽内存。我开始调查原因。
最重要的是,“免费的Tesla K80”并不是所有人都“免费”的-因为其中只有一小部分是“免费的”。
我从加拿大西海岸连接到Google Colab,我只能得到0.5GB的24GB GPU RAM。其他用户可以访问11GB的GPU RAM。
显然,对于大多数ML / DL工作而言,0.5GB GPU RAM是不够的。
如果您不确定自己能得到什么,这里是我拼凑的一点调试功能(仅适用于笔记本的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。例如,帮助我调试此问题的人来自印度,他得到了全部!
注意:关于如何杀死可能消耗GPU部分的潜在卡住/失控/平行笔记本,请不要发送任何其他建议。无论如何切片,如果您和我在同一条船上并且要运行调试代码,您都会看到您仍然获得了5%的GPU RAM(截至本次更新)。