Давайте исследуем мир глубокого обучения на первом примере задачи MNIST. Здесь мы выбираем фреймворк MXNET для запуска.

Окружающая обстановка

ОС: Убунту 14.04

ЦП: Intel i7–3770

Графический процессор: Nvidia GeForce GT 640

Диск: 1 ТБ Сата

Оперативная память: 16 ГБ

Установленные инструменты

sudo apt-get update
sudo apt-get install -y build-essential git libblas-dev libopencv-dev

Установите инструментарий CUDA

Скачайте Инструментарий CUDA:

Затем установите CUDA из файла .deb.

sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda

Поскольку в набор инструментов CUDA входит драйвер Nvidia, мы можем проверить корректность командой nvidia-smi:

Если версия драйвера не совпадает, следуйте инструкциям в следующем разделе, чтобы установить драйвер Nvidia вручную.

Вручную установить драйвер Nvidia (опция)

Сначала нам нужно выбрать соответствующую версию драйвера Nvidia, здесь наша библиотека — nvidia-375.

Нажмите ctrl + alt + F1, чтобы войти в терминал tty1, затем временно отключите X-сервер:

sudo service lightdm stop

Загрузите и установите драйвер nvidia (зависит от вашего оборудования)

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-375

Перезапустите X-сервер

sudo service lightdm restart

Загрузите и скомпилируйте MXNET

Загрузите MXNET и скопируйте config.mk в корень проекта:

git clone --recursive https://github.com/dmlc/mxnet
cd mxnet
cp make/config.mk .

Отредактируйте config.mk следующим образом, обратите внимание, что /usr/local/cuda может выглядеть как /usr/local/cuda-7.5:

USE_CUDA = 1
USE_CUDA_PATH = /usr/local/cuda

Затем скомпилируйте MXNET:

make -j4

Поскольку мы хотим запустить образец MNIST с помощью python, мы можем установить mxnet как локальную библиотеку с помощью

cd python
python setup.py install

Запустить пример MNIST

Запустите версию по умолчанию (ЦП) примера MNIST:

cd example/image-classification
python train_mnist.py

Мы можем найти, что задержка для одной эпохи составляет 3,197 секунды при работе процессора.

Теперь давайте попробуем с GPU с ядром-0:

cd example/image-classification
python train_mnist.py --gpus=0

Вы можете обнаружить, что потребление времени немного уменьшилось.