Развертывание модуля Интернета вещей с поддержкой GPU в Azure Stack Hub

Azure Stack Hub с поддержкой GPU позволяет развертывать модули с интенсивным использованием процессоров на устройствах Linux, работающих на IoT Edge. Размеры виртуальных машин, оптимизированных для GPU, — это специализированные виртуальные машины, доступные с одним или несколькими GPU NVIDIA. Из этой статьи вы узнаете, как использовать оптимизированные для GPU виртуальные машины для выполнения рабочих нагрузок с интенсивным использованием вычислительных ресурсов, графики и визуализации.

Прежде чем начать, вам потребуется подписка Microsoft Entra с доступом к глобальной среде Azure и Azure Stack Hub, Реестр контейнеров Azure (ACR) и Центру Интернета вещей.

Работая с этой статьей, вы выполните следующие задачи:

  • Установите виртуальную машину Linux с поддержкой GPU и установите правильные драйверы.
  • Установите Docker и включите GPU в среде выполнения.
  • Подключите устройство Интернета вещей к Центру iOT и установите из iOT Marketplace модель : Getting started with GPUs.
  • Установка и мониторинг устройства с локального компьютера с помощью обозревателя Интернета вещей Azure.
  • При необходимости установите и отслеживайте устройство с помощью расширения Интернета вещей Azure в Visual Studio Code.

Предварительные требования

Вам потребуются следующие ресурсы в экземпляре Azure Stack Hub, глобальном Azure и на локальном компьютере разработки.

Azure Stack Hub и 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:

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

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

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

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

    Примечание

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

  2. Установите последнюю версию среды выполнения IoT Edge на сервере Linux серии N в Azure Stack Hub. Инструкции см. в статье Установка среды выполнения azure IoT Edge в системах Linux на основе Debian.

Установка Docker

Установите Docker на виртуальной машине с поддержкой GPU. Вы собираетесь запустить модуль из IoT Edge Marketplace в контейнере на виртуальной машине.

Необходимо установить Docker 19.02 или более поздней версии. Теперь среда выполнения Docker поддерживает GPU NVIDIA. Дополнительные сведения о дополнительных gpuout в 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. Установите зависимости, необходимые для добавления репозитория Docker apt.

    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 и добавьте модель на пограничное устройство с помощью iOT Marketplace. В меню выберите Модуль Marketplace . Выполните поиск Getting started with GPUsи следуйте инструкциям по добавлению модуля.

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

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

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

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

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

допустимая установка

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

  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.

    допустимая установка —

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

Next Steps