Развертывание модуля Интернета вещей с поддержкой 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

Компьютер для разработки

  • При разработке можно использовать собственный компьютер или виртуальную машину в зависимости от ваших предпочтений. Компьютер разработки должен поддерживать вложенную виртуализацию. Эта возможность необходима для запуска Docker, подсистемы контейнеров, используемой в этой статье.

  • Компьютеру разработки потребуются следующие ресурсы:

Регистрация устройства IoT Edge

Используйте отдельное устройство для размещения IoT Edge устройства. Использование отдельного устройства обеспечит разделение между компьютером разработки и IoT Edge устройство более точно отражает сценарий развертывания.

Создайте устройство IoT Edge в Azure с виртуальной машиной Linux:

  1. Создайте виртуальную машину сервера Linux серии N в Azure Stack Hub. При установке компонентов для сервера вы будете взаимодействовать с сервером через SSH. Дополнительные сведения см. в статье "Использование пары ключей SSH" с Azure Stack Hub.

  2. Создание и регистрация устройства IoT Edge

Подготовка виртуальной машины с поддержкой GPU

  1. Установите драйверы GPU NVIDA на N-сервере Linux серии N, выполнив действия, описанные в статье, как установить драйверы GPU NVIDIA на виртуальных машинах серии N под управлением Linux.

    Примечание

    Для установки программного обеспечения используется командная строка Bash. Запишите команды, так как вы будете использовать те же команды для установки драйверов в контейнере, работающем в Docker на виртуальной машине с поддержкой GPU.

  2. Установите последнюю версию среды выполнения 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?".

  1. Подключение на сервер Linux серии N с помощью клиента SSH.

  2. Обновите индекс apt и списки.

    sudo apt-get update
    
  3. Получите новые версии существующих пакетов на компьютере.

    sudo apt-get upgrade
    
  4. Установите зависимости, необходимые для добавления репозитория apt Docker.

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  5. Добавьте ключ GPG Docker.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  6. Добавьте репозиторий Docker apt.

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. Обновите индекс apt и списки и установите Docker Community Edition.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Проверьте установку, проверив версию Docker.

    docker -v
    
  9. Предоставление доступных ресурсов GPU в Docker.

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

Получение элемента из Marketplace

Вернитесь к портал Azure и добавьте модель на пограничное устройство с помощью Marketplace iOT. В меню выберите "Модуль Marketplace ". Выполните поиск Getting started with GPUsи следуйте инструкциям по добавлению модуля.

Инструкции см. в разделе "Выбор устройства" и "Добавление модулей"

Включение мониторинга

  1. Скачайте обозреватель Интернета вещей Azure и подключите приложение к Центр Интернета вещей.

  2. Выберите устройство Интернета вещей и перейдите к телеметрии в меню навигации.

  3. Нажмите кнопку "Пуск", чтобы начать мониторинг выходных данных с IoT Edge устройства.

a valid install

Мониторинг модуля (необязательно)

  1. В палитре команд VS Code выберите команду Azure IoT Hub: Select IoT Hub (Центр Интернета вещей Azure: выбрать Центр Интернета вещей).

  2. Выберите подписку и Центр Интернета вещей, содержащий устройство IoT Edge, которое нужно настроить. В этом случае выберите подписку в экземпляре Azure Stack Hub и выберите IoT Edge устройство, созданное для Azure Stack Hub. Это устройство было создано при настройке вычислений на портале Azure на предыдущих этапах.

  3. В обозревателе VS Code разверните раздел "Центр Интернета вещей Azure". В разделе "Устройства" должно отобразиться IoT Edge устройство, соответствующее Azure Stack Hub.

    1. Выберите это устройство, щелкните правой кнопкой мыши и выберите "Начать мониторинг встроенной конечной точки события".

    2. Перейдите к модулям устройств>, и вы увидите, что модуль GPU запущен.

    3. Терминал VS Code также должен отображать события Центр Интернета вещей в качестве выходных данных мониторинга для Azure Stack Hub.

    a valid install is

    Вы увидите, что GPU тратит на выполнение одного и того же набора операций (5000 итераций преобразования формы) намного меньше времени, чем ЦП.

Next Steps