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