Развертывание модуля Интернета вещей с поддержкой GPU в Azure Stack Hub
С поддержкой GPU Azure Stack Hub можно развертывать модули с интенсивным процессором на устройствах Linux, работающих на IoT Edge. Размеры виртуальных машин, оптимизированных для GPU, — это специализированные виртуальные машины, доступные с одним или несколькими GPU NVIDIA. Из этой статьи вы узнаете, как использовать оптимизированные для GPU виртуальные машины для выполнения рабочих нагрузок с большим объемом вычислений, интенсивной графики и визуализации.
Прежде чем начать, вам потребуется подписка Azure Active Directory (Azure AD) с доступом к глобальной среде Azure и Azure Stack Hub, Реестр контейнеров Azure (ACR) и Центру Интернета вещей.
Работая с этой статьей, вы выполните следующие задачи:
- Установите виртуальную машину Linux с поддержкой GPU и установите правильные драйверы.
- Установите Docker и включите GPU в среде выполнения.
- Подключение устройство Интернета вещей в Центр Интернета вещей и установите из iOT Marketplace модель.
Getting started with GPUs - Установка и мониторинг устройства с локального компьютера с помощью обозревателя Интернета вещей Azure.
- При необходимости установите и отслеживайте устройство с помощью расширения Интернета вещей Azure в Visual Studio Code.
Предварительные требования
Вам потребуются следующие ресурсы в экземпляре Azure Stack Hub, глобальной среде Azure и на локальном компьютере разработки.
Azure Stack Hub и Azure
Подписка как пользователь, использующий Azure Active Directory (Azure AD) в интегрированной системе Azure Stack Hub с GPU NVIDA. Следующие микросхемы работают с Центром Интернета вещей:
- NCv3
- NCas_v4
Дополнительные сведения об GPU в Azure Stack Hub см. в статье о виртуальной машине графической обработки (GPU) в Azure Stack Hub.
Глобальная подписка Azure. Если у вас нет глобальной подписки Azure, создайте бесплатную учетную запись перед началом работы.
Реестр контейнеров Azure (ACR). Запишите сервер входа, имя пользователя и пароль ACR.
Бесплатный или стандартный Центр Интернета вещей в глобальной среде Azure.
Компьютер для разработки
При разработке можно использовать собственный компьютер или виртуальную машину в зависимости от ваших предпочтений. Компьютер разработки должен поддерживать вложенную виртуализацию. Эта возможность необходима для запуска Docker, подсистемы контейнеров, используемой в этой статье.
Компьютеру разработки потребуются следующие ресурсы:
- Python 3.x
- Pip для установки пакетов Python. Она установлена вместе с установкой Python. Если у вас установлен Pip, может потребоваться обновить до последней версии. Вы можете выполнить обновление с помощью pip. Введите
pip install --upgrade pip. - Azure CLI 2.0
- Git;
- Docker
- Visual Studio Code
- Средства Azure IoT для Visual Studio Code.
- Пакет расширений Python для Visual Studio Code
Регистрация устройства IoT Edge
Используйте отдельное устройство для размещения IoT Edge устройства. Использование отдельного устройства обеспечит разделение между компьютером разработки и IoT Edge устройство более точно отражает сценарий развертывания.
Создайте устройство IoT Edge в Azure с виртуальной машиной Linux:
Создайте виртуальную машину сервера Linux серии N в Azure Stack Hub. При установке компонентов для сервера вы будете взаимодействовать с сервером через SSH. Дополнительные сведения см. в статье "Использование пары ключей SSH" с Azure Stack Hub.
Подготовка виртуальной машины с поддержкой GPU
Установите драйверы GPU NVIDA на N-сервере Linux серии N, выполнив действия, описанные в статье, как установить драйверы GPU NVIDIA на виртуальных машинах серии N под управлением Linux.
Примечание
Для установки программного обеспечения используется командная строка Bash. Запишите команды, так как вы будете использовать те же команды для установки драйверов в контейнере, работающем в Docker на виртуальной машине с поддержкой GPU.
Установите последнюю версию среды выполнения IoT Edge на N-сервере Linux серии N в Azure Stack Hub. Инструкции см. в статье "Установка среды выполнения Azure IoT Edge в системах Linux на основе Debian"
Установка Docker
Установите Docker на виртуальной машине с поддержкой GPU. Вы будете запускать модуль из IoT Edge Marketplace в контейнере на виртуальной машине.
Необходимо установить Docker 19.02 или более поздней версии. Среда выполнения Docker теперь поддерживает GPU NVIDIA. Дополнительные сведения о графических процессорах bout в Docker см. в статье в документации По Docker, параметрах среды выполнения с памятью, ЦП и GPU.
Установка Docker
Контейнеры Docker могут работать в любой среде, например в локальном центре обработки данных, в службе стороннего поставщика или в облаке Azure. Контейнеры образов Docker работают в исходном формате в Linux и Windows. Но образы Windows будут выполняться только на узлах Windows, тогда как образы Linux — на узлах Linux или Windows (на данный момент с помощью виртуальной машины Linux Hyper-V). Термин "узлы" здесь означает физические серверы и виртуальные машины. Дополнительные сведения см. в статье "Что такое Docker?".
Подключение на сервер Linux серии N с помощью клиента SSH.
Обновите индекс apt и списки.
sudo apt-get updateПолучите новые версии существующих пакетов на компьютере.
sudo apt-get upgradeУстановите зависимости, необходимые для добавления репозитория apt Docker.
sudo apt-get install apt-transport-https ca-certificates curl software-properties-commonДобавьте ключ GPG Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -Добавьте репозиторий Docker apt.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"Обновите индекс apt и списки и установите Docker Community Edition.
sudo apt-get update sudo apt-get install docker-ceПроверьте установку, проверив версию Docker.
docker -vПредоставление доступных ресурсов GPU в Docker.
docker run -it --rm --gpus all ubuntu nvidia-smi
Получение элемента из Marketplace
Вернитесь к портал Azure и добавьте модель на пограничное устройство с помощью Marketplace iOT. В меню выберите "Модуль Marketplace ". Выполните поиск Getting started with GPUsи следуйте инструкциям по добавлению модуля.
Инструкции см. в разделе "Выбор устройства" и "Добавление модулей"
Включение мониторинга
Скачайте обозреватель Интернета вещей Azure и подключите приложение к Центр Интернета вещей.
Выберите устройство Интернета вещей и перейдите к телеметрии в меню навигации.
Нажмите кнопку "Пуск", чтобы начать мониторинг выходных данных с IoT Edge устройства.

Мониторинг модуля (необязательно)
В палитре команд VS Code выберите команду Azure IoT Hub: Select IoT Hub (Центр Интернета вещей Azure: выбрать Центр Интернета вещей).
Выберите подписку и Центр Интернета вещей, содержащий устройство IoT Edge, которое нужно настроить. В этом случае выберите подписку в экземпляре Azure Stack Hub и выберите IoT Edge устройство, созданное для Azure Stack Hub. Это устройство было создано при настройке вычислений на портале Azure на предыдущих этапах.
В обозревателе VS Code разверните раздел "Центр Интернета вещей Azure". В разделе "Устройства" должно отобразиться IoT Edge устройство, соответствующее Azure Stack Hub.
Выберите это устройство, щелкните правой кнопкой мыши и выберите "Начать мониторинг встроенной конечной точки события".
Перейдите к модулям устройств>, и вы увидите, что модуль GPU запущен.
Терминал VS Code также должен отображать события Центр Интернета вещей в качестве выходных данных мониторинга для Azure Stack Hub.

Вы увидите, что GPU тратит на выполнение одного и того же набора операций (5000 итераций преобразования формы) намного меньше времени, чем ЦП.
Next Steps
Дополнительные сведения о виртуальной машине (GPU) в Azure Stack Hub
Дополнительные сведения об Azure Stack Hub, Data Box Edge и Intelligent Edge, будущее вычислений: интеллектуальное облако и интеллектуальная граница
Дополнительные сведения о гибридных облачных приложениях см. в статье "Гибридные облачные решения"