Поделиться через


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

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

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

В этой статье вы:

  • Установите виртуальную машину Linux с поддержкой GPU и установите правильные драйверы.
  • Установите Docker и включите GPU в среде выполнения.
  • Подключите устройство Интернета вещей к IoT Hub и установите модель из 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 на сервере 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. Вы будете запускать модуль из Marketplace IoT Edge в контейнере на виртуальной машине.

Необходимо установить Docker 19.02 или более поздней версии. Среда выполнения Docker теперь поддерживает графические процессоры NVIDIA. Чтобы узнать больше о GPU в 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. Добавьте apt-репозиторий Docker.

    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
    

Получить товар с рынка

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

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

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

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

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

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

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

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

  1. В палитре команд VS Code запустите Центр Интернета вещей 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 итераций преобразования фигур), значительно меньше, чем для ЦП.

Дальнейшие шаги