Память GPU в контейнере TensorFlow с NVIDIA SLI - PullRequest
0 голосов
/ 30 апреля 2020

Я сконструировал компьютер для машинного обучения с двумя графическими процессорами RTX 2070 SUPER NVIDIA, подключенными к SLI Bridge, Windows ОС (SLI проверено на панели управления NVIDIA).

Я провел тестирование системы с использованием http://ai-benchmark.com/alpha и получили впечатляющие результаты.

Чтобы максимально использовать библиотеки, использующие графический процессор для научных c задач (cuDF), я создал контейнер TensorFlow Linux:

https://www.tensorflow.org/install/docker

с использованием тега «latest-gpu-py3-jupyter».

Затем я подключил PyCharm к этому контейнеру и настроил его интерпретатор как интерпретатор того же проекта (я смонтировал папку хост-проекта в контейнере).

Когда я запускаю тот же эталонный тест для контейнера, я получаю сообщение об ошибке:

tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[50,56,56,144] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu
     [[node MobilenetV2/expanded_conv_2/depthwise/BatchNorm/FusedBatchNorm (defined at usr/local/lib/python3.6/dist-packages/ai_benchmark/utils.py:238) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

Эта ошибка связана с исчерпанием памяти графического процессора внутри контейнера.

Почему графический процессор на хосте windows успешно обрабатывает вычисления, а графический процессор на контейнере Linux исчерпывает память?

* 10 25 * Что делает эту разницу? это связано с выделением памяти в контейнере?

1 Ответ

0 голосов
/ 06 мая 2020

Вот отличная ссылка от docker .com, которая объясняет, почему ваш желаемый рабочий процесс не будет работать. Он также не будет работать с RAPIDS cudf. Docker Рабочий стол работает с использованием Hyper V, который изолирует оборудование и не имеет доступа к графическому процессору, как ожидают драйверы Linux. Кроме того, nvidia- docker только linux

Я могу сообщить вам, что RAPIDS (cudf) в настоящее время также не поддерживает эту реализацию. Однако Windows лучше работает с хостом Linux. Как для tenorflow, так и для cudf, я настоятельно рекомендую использовать (или двойную загрузку) одну из рекомендованных ОС в качестве хост-ОС, которую можно найти здесь: https://rapids.ai/start.html#prerequisites. Если вам нужен Windows в вашем рабочем процессе, вы можете запустить его поверх хоста Linux.

Существует вероятность того, что в будущем версия WSL позволит вам запускать RAPIDS на Windows, позволяя вам самостоятельно создать решение Windows.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...