Развертывание модуля IoT с включенным GPU на устройстве Azure Stack Edge Pro GPU
ОБЛАСТЬ ПРИМЕНЕНИЯ: Azure Stack Edge Pro — GPU
Azure Stack Edge Pro 2
Azure 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.
Необходимые компоненты
Перед началом работы убедитесь, что у вас есть следующие ресурсы:
- У вас есть доступ к GPU, поддерживающему 1-узловой Azure Stack Edge Pro. Это устройство активируется с помощью ресурса в Azure. См. Активация устройства.
- Вы настроили вычисления на этом устройстве. Выполните инструкции из Руководства по настройке вычислений на устройстве Azure Stack Edge Pro.
- Реестр контейнеров Azure (ACR). Перейдите в колонку Ключи доступа и запишите имя системы контроля учетных записей, а также имя пользователя и пароль для входа в нее. Дополнительные сведения см. в разделе Быстрое начало. Создание закрытого реестра контейнеров с помощью портала Azure.
- Следующие ресурсы разработки на клиенте Windows:
- Azure CLI 2.0 или более поздней версии.
- Docker CE. Вам может потребоваться учетная запись для скачивания и установки программного обеспечения.
- Visual Studio Code
- Расширение Azure IoT Edge для Visual Studio Code.
- Расширение Python для Visual Studio Code
- Python 3;
- Pip для установки пакетов Python (обычно входит в состав установки Python)
Получение кода примера
Перейдите к шаблонам Azure Intelligent Edge в примерах Azure. Клонируйте или загрузите архивный файл, чтобы получить из него код.
Извлеките файлы из скачанного пакета. Примеры также можно клонировать.
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
Соберите и разверните модуль
Откройте папку GpuReferenceModules в Visual Studio Code.
Откройте 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" } } } },
Создайте новый файл . Заполните значения параметров для реестра контейнеров (используйте значения с предыдущего шага) следующим образом:
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
Ниже приведен пример файла .env:
Сохраните файл как .env в папке SampleSolution.
Войдите в Docker, введя следующую команду в интегрированном терминале Visual Studio Code.
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
Перейдите к разделу Ключи доступа в реестре контейнеров на портале Azure. Скопируйте и используйте имя реестра, пароль и сервер входа.
После указания учетных данных вход будет выполнен успешно.
Передача образа в реестр контейнеров Azure. В обозревателе VS Code щелкните правой кнопкой мыши файл deployment.template.json и выберите пункт Создать и отправить решение IoT Edge.
Если расширения Python и Python не установлены, они будут установлены при сборке и отправке решения. Но это приведет к более длительному времени сборки.
После завершения этого шага модуль появится в реестре контейнеров.
Чтобы создать манифест развертывания, щелкните правой кнопкой мыши deployment.template.json, а затем выберите пункт Создать манифест развертывания IoT Edge.
В уведомление указан путь, по которому был создан манифест развертывания. Манифест — это файл
deployment.amd64.json
, созданный в папке config.Выберите файл deployment.amd64.json в папке config, а затем выберите Создать развертывание для одного устройства. Не используйте файл deployment.template.json.
В окне вывода должно появиться сообщение о том, что развертывание прошло успешно.
Мониторинг модуля
В палитре команд VS Code выберите команду Azure IoT Hub: Select IoT Hub (Центр Интернета вещей Azure: выбрать Центр Интернета вещей).
Выберите подписку и Центр Интернета вещей, содержащий устройство IoT Edge, которое нужно настроить. В этом случае выберите подписку, используемую для развертывания устройства Azure Stack Edge Pro, а также устройство IoT Edge, созданное для устройства Azure Stack Edge Pro. Это устройство было создано при настройке вычислений на портале Azure на предыдущих этапах.
В обозревателе VS Code разверните раздел "Центр Интернета вещей Azure". В разделе Устройства должно быть устройство IoT Edge, соответствующее устройству Azure Stack Edge Pro.
Выберите это устройство, щелкните по нему правой кнопкой мыши и выберите пункт Запуск мониторинга встроенной конечной точки события.
Перейдите к модулям устройств>, и вы увидите, что запущен модуль GPU.
В терминале VS Code также должны отображаться события Центра Интернета вещей в виде выходных данных мониторинга для устройства Azure Stack Edge Pro.
Вы увидите, что GPU тратит на выполнение одного и того же набора операций (5000 итераций преобразования формы) намного меньше времени, чем ЦП.
Next Steps
- Дополнительные сведения о настройке GPU для использования модуля.