обновление: этот вопрос связан с Google Colab "Настройки ноутбука: Аппаратный ускоритель: GPU". Этот вопрос был написан до того, как была добавлена опция «TPU».
Прочитав несколько восторженных объявлений о том, что Google Colaboratory предоставляет бесплатный графический процессор Tesla K80, я попытался запустить на нем урок fast.ai, чтобы он никогда не завершился - быстро закончилась память. Я начал выяснять, почему.
Суть в том, что «бесплатная Tesla K80» не «бесплатна» для всех - для некоторых «бесплатна» лишь небольшая ее часть.
Я подключаюсь к Google Colab из западного побережья Канады и получаю только 0,5 ГБ из того, что должно было быть 24 ГБ оперативной памяти графического процессора. Остальные пользователи получают доступ к 11 ГБ оперативной памяти графического процессора.
Очевидно, что 0,5 ГБ ОЗУ графического процессора недостаточно для большинства операций ML / DL.
Если вы не уверены, что получите, вот небольшая функция отладки, которую я собрал вместе (работает только с настройкой графического процессора ноутбука):
# 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?
Можете ли вы подтвердить, что вы получите аналогичные результаты, если запустите этот код в блокноте Google Colab?
Если мои расчеты верны, есть ли способ получить больше этой оперативной памяти графического процессора в бесплатной коробке?
обновление: я не уверен, почему некоторые из нас получают 1/20 того, что получают другие пользователи. например, человек, который помог мне отладить это, из Индии, и он получает все!
Примечание : пожалуйста, не присылайте больше предложений о том, как убить потенциально застрявшие / выходящие из строя / параллельные ноутбуки, которые могут потреблять части графического процессора. Независимо от того, как вы это делаете, если вы находитесь в той же лодке, что и я, и должны были запустить код отладки, вы увидите, что вы все еще получаете в общей сложности 5% ОЗУ графического процессора (на момент этого обновления).