更新: 这个问题与 Google Colab 的“笔记本设置: 硬件加速器: GPU”有关。这个问题是在加入「 TPU 」选项前写的。
看到谷歌合作实验室提供免费的 Tesla K80图形处理器的多个令人兴奋的公告,我试图在上面运行 快点课程,因为它永远不会完成——很快就会耗尽内存。我开始调查原因。
底线是,“免费的特斯拉 K80”不是“免费的”所有-对于一些只有一小部分是“免费的”。
我连接到谷歌 Colab 从西海岸加拿大,我只得到0.5 GB 的什么应该是一个24 GB 的 GPU 内存。其他用户可以使用11GB 的 GPU RAM。
显然,0.5 GB 的 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()
在运行任何其他代码之前,在一个木星笔记本上执行它会给我:
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 内存的免费框?
更新: 我不知道为什么我们中的一些人得到了其他用户得到的二十分之一。例如,帮助我调试这个程序的人来自印度,他得到了所有的东西!
注意 : 请不要发送任何关于如何消除可能会消耗部分 GPU 的潜在卡住/失控/并行笔记本的建议。不管你怎么分配,如果你和我在同一条船上,并运行调试代码,你会看到你仍然得到总共5% 的 GPU 内存(截至目前为止仍然更新)。