sta*_*son 89 python ram gpu machine-learning google-colaboratory
更新:此问题与Google Colab的"笔记本设置:硬件加速器:GPU"有关.这个问题是在添加"TPU"选项之前编写的.
阅读关于谷歌Colaboratory提供免费特斯拉K80 GPU的多个激动人心的公告,我试图快速运行它上课,因为它永远不会完成 - 快速耗尽内存.我开始调查原因.
最重要的是,"免费特斯拉K80"对所有人来说都不是"免费" - 因为有些只是"免费"的一小部分.
我从加拿大西海岸连接到谷歌Colab,我只得到0.5GB的24GB GPU内存.其他用户可以访问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()
Run Code Online (Sandbox Code Playgroud)
在运行任何其他代码之前在jupyter笔记本中执行它给了我:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Run Code Online (Sandbox Code Playgroud)
获得完整卡的幸运用户将看到:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Run Code Online (Sandbox Code Playgroud)
你是否看到我从GPUtil借来的GPU RAM可用性计算中存在任何缺陷?
如果您在Google Colab笔记本上运行此代码,您能否确认获得类似结果?
如果我的计算是正确的,有没有办法在免费盒子上获得更多的GPU内存?
更新:我不确定为什么我们中的一些人得到其他用户得到的1/20.例如,帮助我调试这个的人来自印度,他得到了整个事情!
注意:请不要再发送任何有关如何杀死可能消耗部分GPU的可能卡住/失控/并行笔记本的建议.无论你如何切片,如果你和我在同一条船上并运行调试代码,你会发现你仍然得到总共5%的GPU RAM(截至此更新仍然如此).
sta*_*son 28
所以为了防止在这个线程建议的上下文中出现无效的另外十几个答案!kill -9 -1,让我们关闭这个帖子:
答案很简单:
在撰写本文时,谷歌只向我们中的一些人提供5%的GPU,而对其他人提供100%的GPU.期.
dec-2018更新:我有一个理论认为,当Google机器人检测到非标准行为时,Google可能会列出某些帐户或浏览器指纹的黑名单.这可能完全是巧合,但是很长一段时间我在任何碰巧需要它的网站上都遇到了Google Re-captcha的问题,在我被允许通过之前我必须经历几十个谜题,经常花了我10多分钟才完成.这持续了好几个月.突然之间,截至本月我完全没有任何谜题,任何google re-captcha只需点击一下鼠标即可解决,就像差不多一年前一样.
为什么我要讲这个故事?好吧,因为同时我在Colab上获得了100%的GPU内存.这就是为什么我的怀疑是,如果你在理论谷歌黑名单上,那么你不会被信任免费获得大量资源.我想知道你们中是否有人发现有限的GPU访问和Re-captcha噩梦之间存在相同的相关性.正如我所说,这也可能完全是巧合.
Ngu*_*ong 21
昨晚我运行你的片段,得到你所得到的:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Run Code Online (Sandbox Code Playgroud)
但今天:
Gen RAM Free: 12.2 GB I Proc size: 131.5 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Run Code Online (Sandbox Code Playgroud)
我认为最可能的原因是GPU在VM之间共享,因此每次重新启动运行时都有机会切换GPU,并且您也有可能切换到其他用户正在使用的GPU.
更新:事实证明,即使GPU RAM Free为504 MB,我也可以正常使用GPU,我认为这是我昨晚获得的ResourceExhaustedError的原因.
如果你执行一个只有
!kill -9 -1的单元格
,那将导致所有运行时的状态(包括内存,文件系统和GPU)被清除并重新启动.等待30-60秒,然后按右上角的CONNECT按钮重新连接.
| 归档时间: |
|
| 查看次数: |
63750 次 |
| 最近记录: |