Введение
В настоящее время практически невозможно найти какое-либо приложение для машинного обучения, которое не работает на Графическом процессоре NVIDIA.
В этом руководстве мы покажем вам, как масштабировать ваше приложение с поддержкой CUDA с помощью Docker.
Предпосылки
- Ubuntu 14.04 или новее (x86_64), требуется для среды выполнения контейнера NVIDIA.
- Docker Community Edition 19.03 или новее (с API v1.40) для встроенной поддержки NVIDIA
- Графический процессор NVIDIA с поддержкой CUDA
Настройка докера
- Установите Докер:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
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 docker-ce docker-ce-cli containerd.io
2. Добавьте пользователя в группу docker
:
sudo usermod -aG docker $USER
⚠️ Вам нужно начать новую сессию, чтобы обновить группы.
Установите драйвер NVIDIA и среду выполнения
- Проверьте установку командой
nvidia-smi
. Вы увидите следующий вывод:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.116 Driver Version: 390.116 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 560 Ti Off | 00000000:01:00.0 N/A | N/A | | 40% 46C P8 N/A / N/A | 790MiB / 1217MiB | N/A Default | +-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 Not Supported | +-----------------------------------------------------------------------------+
Если драйвер NVIDIA не предустановлен в вашем дистрибутиве Ubuntu, вы можете установить его с помощью sudo apt install nvidia-XXX
(XXX — это версия, самая новая — 440) или загрузить соответствующий драйвер NVIDIA и запустить двоичный файл как sudo.
⚠️ Безопасная загрузка: если вы хотите установить драйвер NVIDIA с включенной функцией безопасной загрузки UEFI, ознакомьтесь с официальным руководством NVIDIA.
2. Установите среду выполнения контейнера NVIDIA:
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list |\
sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
sudo apt-get install nvidia-container-runtime
3. Перезапустите Докер:
sudo systemctl stop docker
sudo systemctl start docker
Теперь вы готовы запустить свое первое приложение CUDA в Docker!
Запустите CUDA в Docker
- Выберите правильный базовый образ (тег будет иметь форму {version}-cudnn*-{devel|runtime}) для вашего приложения. Самый новый — 10.2-cudnn7-devel.
- Убедитесь, что NVIDIA работает в Docker с помощью:
docker run --gpus all nvidia/cuda:10.2-cudnn7-devel nvidia-smi
💡 Вы можете указать количество графических процессоров и даже конкретные графические процессоры с помощью флага
--gpus
. Ознакомьтесь с Справочником Docker.
3. Похлопайте себя по плечу, если вы получите тот же результат, что и при запуске nvidia-smi
на хост-компьютере.
Поздравляю! Как вы можете взломать свой собственный Dockerfile и масштабировать свое приложение на основе CUDA!
О нас
Целантур предоставляет решение, соответствующее GDPR, для автоматической анонимизации большого количества изображений и видео за счет размытия лиц, тел, автомобилей и номерных знаков. Если вы ищете решение для анонимизации, смело свяжитесь с нами.
Первоначально опубликовано на www.celantur.com.