Google Colaboratory: вводящая в заблуждение информация о его графическом процессоре (доступно только 5% ОЗУ для некоторых пользователей)

обновление: этот вопрос относится к 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% ОЗУ графического процессора (по состоянию на это обновление до сих пор).

+72
12 февр. '18 в 15:44
источник поделиться
11 ответов

Поэтому, чтобы предотвратить еще дюжину ответов, предлагающих недопустимые в контексте этой цепочки предложения! Kill -9 -1, давайте закроем эту ветку:

Ответ прост:

На момент написания статьи Google просто отдает только 5% GPU некоторым из нас, тогда как 100% - другим. Период.

Обновление за март 2019: Год спустя Google наконец заметил эту ветку и послал @AmiF, чтобы дискредитировать ее, подразумевая, что каждый, у кого есть эта проблема, является некомпетентным пользователем, который не может понять, как сбросить время выполнения для восстановления памяти. @AmiF далее предполагает, что, возможно, эта проблема была просто ошибкой в их коде и что мы, пользователи, не можем сказать политику компании против ошибки.

К сожалению, полное раскрытие информации не производится, и нам остается только догадываться о том, что на самом деле может происходить. Очевидно, что коммерческая компания будет иметь оговорки в отношении того, с кем им приятно, и поэтому здесь невозможно избежать дискриминации. Это имеет смысл и очень логично. Поскольку этот ресурс предоставляется бесплатно, мы не можем на самом деле жаловаться, а только спрашиваем, почему некоторые из нас занесены в черный список, в то время как другие из других идентичных установок/локалей не являются.

Так как мой личный аккаунт был удален из черного списка в декабре 2018 года (см. Мое обновление ниже), я могу полагаться только на других пользователей, которые все еще находятся в черном списке, чтобы помочь говорить правду. Пока я пишу это обновление, эта тема получила еще одно возражение.

Тем не менее, давайте надеяться, что Google придет конец черного списка, по крайней мере для тех, кто просит, чтобы его исключили из списка. Большинство из нас не делали никаких компрометирующих действий, чтобы оказаться в таком списке, и их просто поймали незрелые мозги машинного обучения, и им не дают возможности доказать свою вину. @AmyF предложила сообщить об этой проблеме по адресу http://github.com/googlecolab/colabtools/issues - если вы сообщите о проблеме и отмахнетесь от ее закрытого билета без расследования, как в этом случае, пожалуйста, опубликуйте ссылку на вашу неразрешенную проблему. вопрос в комментариях к этому ответу, чтобы мы могли попросить подотчетности.

И, конечно же, перед тем, как вы добавите голос в этот поток, выполните "Сброс всех времени выполнения" в меню "Время выполнения" в colab и посмотрите, не возникла ли у вас проблема с незавершенными ноутбуками, которые все еще потребляют ОЗУ GPU, и на вас это никак не повлияет черный список политики.

После прекращения голосования мы узнаем, что эта политика дискриминации была отменена. К сожалению, с этим обновлением это не так, что делает комментарии @AmyF ниже крайне сомнительными.

Обновление от декабря 2018 года: у меня есть теория, что Google может иметь черный список определенных учетных записей или, возможно, отпечатки пальцев браузера, когда его роботы обнаруживают нестандартное поведение. Это может быть полное совпадение, но в течение некоторого времени у меня была проблема с Google Re-captcha на любом веб-сайте, который требовал его, когда мне приходилось проходить десятки головоломок, прежде чем мне позволили пройти, часто мне нужно 10+ мин, чтобы выполнить. Это продолжалось много месяцев. Внезапно, начиная с этого месяца, я не вижу никаких загадок, и любая повторная проверка Google разрешается одним щелчком мыши, как это было почти год назад.

И почему я рассказываю эту историю? Ну, потому что в то же время мне дали 100% ОЗУ GPU на Colab. Вот почему я подозреваю, что если вы находитесь в теоретическом черном списке Google, то вам не доверяют, что вам предоставят много ресурсов бесплатно. Интересно, найдет ли кто-нибудь из вас такую же корреляцию между ограниченным доступом к графическому процессору и кошмаром Re-captcha? Как я уже сказал, это также может быть совпадением.

+18
04 июл. '18 в 18:02
источник

Прошлой ночью я запустил ваш фрагмент и получил именно то, что получил:

Gen RAM Free: 11.6 GB  | Proc size: 666.0 MB
GPU RAM Free: 566MB | Used: 10873MB | Util  95% | Total 11439MB

но сегодня:

Gen RAM Free: 12.2 GB  I Proc size: 131.5 MB
GPU RAM Free: 11439MB | Used: 0MB | Util   0% | Total 11439MB

Я думаю, что наиболее вероятная причина заключается в том, что графические процессоры распределяются между виртуальными машинами, поэтому каждый раз, когда вы перезапускаете среду выполнения, у вас есть шанс переключить GPU, и есть вероятность, что вы переключитесь на тот, который используется другими пользователями.

ОБНОВЛЕНО: Оказывается, что я могу использовать графический процессор, как правило, даже когда GPU RAM Free составляет 504 МБ, что, как я думал, является причиной ResourceExhaustedError, которую я получил вчера вечером.

+20
15 февр. '18 в 8:53
источник

Если вы выполните ячейку, которая
! kill -9 -1
в нем, что приведет к очистке и повторному запуску всего вашего состояния времени выполнения (включая память, файловую систему и графический процессор). Подождите 30-60 секунд и нажмите кнопку CONNECT в правом верхнем углу для повторного подключения.

+6
26 февр. '18 в 5:26
источник

Неверное описание со стороны Google. Наверное, я тоже слишком взволнован. Настройте все, загрузите данные, и теперь я не могу ничего с этим сделать из-за того, что для моего ноутбука выделено только 500 МБ памяти.

+3
11 мар. '18 в 21:46
источник

Найти Python3 pid и убить pid. Пожалуйста, смотрите изображение ниже enter image description here

Примечание: убить только python3 (pid = 130), а не jupyter python (122).

+2
05 апр. '18 в 6:33
источник

Перезапустить Jupyter IPython Kernel:

!pkill -9 -f ipykernel_launcher
+2
22 апр. '18 в 3:22
источник

Я также получил

GPU RAM бесплатно: 16 МБ | Используется: 11423MB | 100% | Всего 11439 МБ

Я подозреваю, что, хотя каждый пользователь получает выделенную виртуальную машину, все виртуальные машины являются многопользователями общей аппаратной машины... так что делятся 32 ГБ Tesla K80.

Немного разочаровывает.

В результате я отказываюсь от использования google colab! : О (

+2
11 мар. '18 в 3:22
источник

Я не уверен, если этот черный список правда! Вполне возможно, что ядра распределены между пользователями. Я также провел тест, и мои результаты следующие:

Gen RAM Free: 12,9 ГБ | Размер процессора: 142,8 МБ ОЗУ графического процессора Свободно: 11441 МБ | Используется: 0MB | Использовать 0% | Всего 11441 МБ

Кажется, я тоже получаю полное ядро. Однако я запускал его несколько раз и получал тот же результат. Может быть, я повторю эту проверку несколько раз в течение дня, чтобы увидеть, есть ли какие-либо изменения.

+1
28 февр. '19 в 10:48
источник

Я считаю, что если у нас есть несколько ноутбуков, открытые. Просто закрытие его фактически не останавливает процесс. Я не понял, как остановить это. Но я использовал top, чтобы найти PID из python3, который работал наиболее долго и использовал большую часть памяти, и я его убил. Теперь все в порядке.

0
25 февр. '18 в 13:10
источник

Вы можете сбросить все среды выполнения, в некоторых случаях это исправит проблемы с памятью.

Кроме того, я обнаружил, что если у вас открыто несколько проектов Colab, это увеличит вашу оперативную память.

enter image description here

0
13 апр. '19 в 22:37
источник
!pkill -9 -f ipykernel_launcher

Это освободило пространство

-4
05 сент. '18 в 10:18
источник

Посмотрите другие вопросы по меткам или Задайте вопрос