Google Colaboratory:关于其GPU的误导信息(只有5%的RAM可用于某些用户)
Google Colaboratory:关于其GPU的误导信息(只有5%的RAM可用于某些用户)
更新:这个问题与Google Colab的“笔记本设置:硬件加速器:GPU”有关。此问题是在“TPU”选项添加之前编写的。
在关于Google Colaboratory提供免费的Tesla K80 GPU的多个激动人心的公告中,我尝试在上面运行fast.ai课程,但始终无法完成 - 内存迅速耗尽。我开始调查原因。
底线是,“免费的Tesla K80”并不是对所有人都是“免费”的 - 对于一些人来说,只有一小部分是“免费”的。
我从加拿大西海岸连接到Google Colab,只获得了0.5GB的GPU RAM,而其他用户可以访问11GB的GPU RAM。
显然,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。例如,帮助我调试的人来自印度,他得到了全部内容!
注意:请不要再发送关于如何终止可能卡住/失控/并行运行的笔记本的建议。无论你如何切割,如果你和我一样运行调试代码,你仍然只能获得总共5%的GPU RAM(截至本次更新)。