В моей предыдущей статье я шаг за шагом объяснил, как настроить среду глубокого обучения на AWS. Одним из важных шагов была установка CUDA toolkit и cuDNN. Однако этот шаг потребовал много времени. В этой статье я буду использовать docker, в частности nvidia-docker, вместо этого, чтобы упростить процесс установки и, следовательно, ускорить процесс установки.

Мы будем использовать тот же экземпляр Amazon EC2 GPU, что и в прошлый раз:

  • Изображение: ami-b03ffedf (Ubuntu Server 16.04 LTS (HVM), тип тома SSD)
  • Регион: eu-central-1 (ЕС Франкфурт)
  • Тип экземпляра: g2.2xlarge
  • Хранилище: 30 ГБ (рекомендуется не менее 20+ ГБ)

1. Создайте новый экземпляр EC2 GPU.

2. Обновите драйверы NVIDIA и установите docker + nvidia-docker

Драйвер NVIDIA

Обновите графический драйвер:

$ sudo add-apt-repository ppa:graphics-drivers/ppa -y
$ sudo apt-get update
$ sudo apt-get install -y nvidia-375 nvidia-settings nvidia-modprobe

Докер

Установите Docker Community Edition (дополнительную информацию об установке см. В официальном руководстве):

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Verify that the key fingerprint is 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce

NVIDIA-Docker

Установите nvidia-docker и его плагин:

$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
$ sudo dpkg -i /tmp/nvidia-docker_1.0.1-1_amd64.deb && rm /tmp/nvidia-docker_1.0.1-1_amd64.deb

3. Проверьте свою среду:

Теперь мы можем использовать nvidia-docker, чтобы проверить, все ли работает должным образом:

$ sudo nvidia-docker run --rm nvidia/cuda nvidia-smi

Примечание. Если вы запустите команду в первый раз, она сначала загрузит изображение. Более того, если вы не хотите работать от имени sudo, вам необходимо добавить пользователя EC2 в группу докеров sudo usermod -a -G docker ubuntu (подробности см. В Руководстве по AWS).

Вот результат, который вы должны увидеть:

Теперь вы можете использовать официальный образ докера TensorFlow или образ Theano, чтобы быстро запустить среду глубокого обучения, или вы можете написать свой собственный файл докера и отправить его в концентратор докеров.

Пример для TensorFlow:

Запустите последний контейнер TensorFlow в оболочке (для других вариантов, таких как запуск программ TensorFlow как записных книжек Jupyter, ознакомьтесь с официальным руководством TensorFlow):

$ sudo nvidia-docker run -it tensorflow/tensorflow:latest-gpu bash

Запустите простой пример на Python, чтобы убедиться, что TensorFlow правильно работает с поддержкой графического процессора:

import tensorflow as tf
a = tf.constant(5, tf.float32)
b = tf.constant(5, tf.float32)
with tf.Session() as sess:
    sess.run(tf.add(a, b)) # output is 10

Это результат, которого вы должны ожидать:

Заключение

В этом сообщении в блоге я использовал докер для настройки среды глубокого обучения на AWS. Это значительно ускоряет процесс настройки. Это особенно полезно для тех, у кого дома нет собственных графических процессоров;)

Следуйте за мной в твиттере: @datitran