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


Развертывание модуля IoT с включенным GPU на устройстве Azure Stack Edge Pro GPU

ОБЛАСТЬ ПРИМЕНЕНИЯ:Да для Pro — SKU GPU Azure Stack Edge Pro — GPUДа для SKU Pro 2Azure Stack Edge Pro 2Да для SKU R ProAzure Stack Edge Pro R

Примечание.

Настоятельно рекомендуется развернуть последнюю версию IoT Edge на виртуальной машине Linux. Управляемый IoT Edge в Azure Stack Edge использует старую версию среды выполнения IoT Edge, которая не имеет последних функций и исправлений. Инструкции см. в статье о развертывании виртуальной машины Ubuntu. Дополнительные сведения о других поддерживаемых дистрибутивах Linux, которые могут запускать IoT Edge, см. в поддерживаемых системах Azure IoT Edge — обработчиках контейнеров.

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

Вы узнаете, как выполнять следующие задачи:

  • Подготовка Azure Stack Edge Pro к запуску модуля GPU.
  • Загрузка и установка примера кода из репозитория Git.
  • Создание решения и манифеста развертывания.
  • Развертывание решения на устройстве Azure Stack Edge Pro.
  • Мониторинг выходных данных модуля.

Сведения о примере модуля

В этой статье для примера модуля GPU приведен код сравнительного тестирования производительности ЦП и GPU в PyTorch и TensorFlow.

Необходимые компоненты

Перед началом работы убедитесь, что у вас есть следующие ресурсы:

Получение кода примера

  1. Перейдите к шаблонам Azure Intelligent Edge в примерах Azure. Клонируйте или загрузите архивный файл, чтобы получить из него код.

    Скачать ZIP-файл

    Извлеките файлы из скачанного пакета. Примеры также можно клонировать.

    git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
    

Соберите и разверните модуль

  1. Откройте папку GpuReferenceModules в Visual Studio Code.

    Откройте GPUReferenceModules в VS Code

  2. Откройте deployment.template.json и найдите параметры, на которые он ссылается для обращения к реестру контейнеров. В следующем файле используются CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD и CONTAINER_REGISTRY_NAME.

        {
      "$schema-template": "2.0.0",
      "modulesContent": {
        "$edgeAgent": {
          "properties.desired": {
            "schemaVersion": "1.0",
            "runtime": {
              "type": "docker",
              "settings": {
                "minDockerVersion": "v1.25",
                "loggingOptions": "",
                "registryCredentials": {
                  "${CONTAINER_REGISTRY_NAME}":{
                  "username": "$CONTAINER_REGISTRY_USERNAME",
                  "password": "$CONTAINER_REGISTRY_PASSWORD",
                  "address": "${CONTAINER_REGISTRY_NAME}.azurecr.io"
                  }
                }
              }
            },
    
  3. Создайте новый файл . Заполните значения параметров для реестра контейнеров (используйте значения с предыдущего шага) следующим образом:

    CONTAINER_REGISTRY_NAME=<YourContainerRegistryName>
    CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName>
    CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
    

    Ниже приведен пример файла .env:

    Создание и сохранение файла .env

  4. Сохраните файл как .env в папке SampleSolution.

  5. Войдите в Docker, введя следующую команду в интегрированном терминале Visual Studio Code.

    docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
    

    Перейдите к разделу Ключи доступа в реестре контейнеров на портале Azure. Скопируйте и используйте имя реестра, пароль и сервер входа.

    Ключи доступа в реестре контейнеров

    После указания учетных данных вход будет выполнен успешно.

    Успешный вход

  6. Передача образа в реестр контейнеров Azure. В обозревателе VS Code щелкните правой кнопкой мыши файл deployment.template.json и выберите пункт Создать и отправить решение IoT Edge.

    Создание и отправка решения IoT Edge

    Если расширения Python и Python не установлены, они будут установлены при сборке и отправке решения. Но это приведет к более длительному времени сборки.

    После завершения этого шага модуль появится в реестре контейнеров.

    Модуль в реестре контейнеров

  7. Чтобы создать манифест развертывания, щелкните правой кнопкой мыши deployment.template.json, а затем выберите пункт Создать манифест развертывания IoT Edge.

    Создание файла манифеста развертывания IoT Edge

    В уведомление указан путь, по которому был создан манифест развертывания. Манифест — это файл deployment.amd64.json, созданный в папке config.

  8. Выберите файл deployment.amd64.json в папке config, а затем выберите Создать развертывание для одного устройства. Не используйте файл deployment.template.json.

    Создание развертывания для одного устройства

    В окне вывода должно появиться сообщение о том, что развертывание прошло успешно.

    Сообщение про успешное развертывание

Мониторинг модуля

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

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

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

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

      Запуск мониторинга

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

      Модуль в Центре Интернета вещей Azure

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

      Выходные данные мониторинга

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

Next Steps