atualização: esta questão está relacionada às "Configurações do Notebook: acelerador de hardware: GPU" do Google Colab. Esta pergunta foi escrita antes de a opção "TPU" ser adicionada.
Lendo vários anúncios entusiasmados sobre o Google Colaboratory que fornece a GPU Tesla K80 gratuita, tentei executar a lição fast.ai sobre ele para nunca terminar - ficando rapidamente sem memória. Comecei a investigar o porquê.
O resultado final é que “Tesla K80 grátis” não é “grátis” para todos - para alguns, apenas uma pequena parte dele é “grátis”.
Eu me conecto ao Google Colab da Costa Oeste do Canadá e recebo apenas 0,5 GB do que deveria ser uma GPU RAM de 24 GB. Outros usuários têm acesso a 11 GB de GPU RAM.
Claramente, 0,5 GB de GPU RAM é insuficiente para a maioria dos trabalhos de ML / DL.
Se você não tem certeza do que obtém, aqui está uma pequena função de depuração que juntei (funciona apenas com a configuração de GPU do notebook):
# 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()
Executá-lo em um notebook jupyter antes de executar qualquer outro código me dá:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util 95% | Total 11439MB
Os sortudos usuários que obtiverem acesso ao cartão completo verão:
Gen RAM Free: 11.6 GB | Proc size: 666.0 MB
GPU RAM Free: 11439MB | Used: 0MB | Util 0% | Total 11439MB
Você vê alguma falha no meu cálculo da disponibilidade de RAM da GPU, emprestada da GPUtil?
Você pode confirmar que obtém resultados semelhantes se executar este código no notebook do Google Colab?
Se meus cálculos estiverem corretos, há alguma maneira de obter mais dessa GPU RAM na caixa gratuita?
atualização: Não sei por que alguns de nós recebem 1/20 do que outros usuários recebem. por exemplo, a pessoa que me ajudou a depurar isso é da Índia e ele fica com a coisa toda!
nota : por favor, não envie mais sugestões sobre como eliminar os notebooks potencialmente presos / em fuga / paralelos que podem estar consumindo partes da GPU. Não importa como você o divide, se você estiver no mesmo barco que eu e executar o código de depuração, verá que ainda obterá um total de 5% de GPU RAM (nesta atualização ainda).