次の方法で共有


GPU 対応 IoT モジュール Azure Stack Edge Pro GPU デバイスにデプロイする

適用対象: Pro の場合ははい - GPU SKUAzure Stack Edge Pro - GPUはい (Pro 2 SKU の場合)Azure Stack Edge Pro 2はい (Pro R SKU の場合)Azure Stack Edge Pro R

注意

Linux VM に最新の IoT Edge バージョンをデプロイすることを強くお勧めします。 Azure Stack Edge 上のマネージド IoT Edge では、最新の機能と修正プログラムがない古いバージョンの IoT Edge ランタイムが使用されます。 手順については、Ubuntu VM のデプロイに関するページを参照してください。 IoT Edge を実行できるその他のサポートされている Linux ディストリビューションの詳細については、「Azure IoT Edge のサポートされるシステム」のコンテナー エンジンに関する部分を参照してください。

この記事では、Azure Stack Edge Pro GPU デバイスに GPU 対応 IoT Edge モジュールをデプロイする方法について説明します。

この記事では、次のことについて説明します。

  • GPU モジュールを実行するために Azure Stack Edge Pro を準備します。
  • Git リポジトリからサンプ ルコードをダウンロードしてインストールします。
  • ソリューションをビルドし、配置マニフェストを生成します。
  • ソリューションを Azure Stack Edge Pro デバイスにデプロイします。
  • モジュールの出力を監視します。

サンプル モジュールについて

この記事の GPU サンプル モジュールには、CPU と GPU を比較する PyTorch および TensorFlow のベンチマーク サンプル コードが含まれています。

前提条件

開始する前に、以下の項目があることを確認します:

サンプル コードの入手

  1. [Azure サンプルの Azure インテリジェント エッジ パターン] に移動します。 コードの ZIP ファイルを複製またはダウンロードします。

    ZIP 形式でダウンロード

    ZIP ファイルからファイルを解凍します。 サンプルを複製することもできます。

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

モジュールをビルドおよびデプロイする

  1. Visual Studio Code で GpuReferenceModules フォルダーを開きます。

    VS Code で GPUReferenceModules を開く

  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. SampleSolution フォルダーにファイルを .env として保存します。

  5. Docker にサインインするには、Visual Studio Code 統合ターミナルで次のコマンドを入力します。

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

    Azure portal でコンテナー レジストリの [アクセス キー] セクションに移動します。 レジストリ名、パスワード、ログイン サーバーをコピーして使用します。

    コンテナー レジストリのアクセス キー

    資格情報を指定すると、サインインに成功します。

    成功したサインイン

  6. Azure コンテナー レジストリにイメージをプッシュします。 VS Code Explorer で、deployment.template.json ファイルを選択して右クリックし、[IoT Edge ソリューションのビルドとプッシュ] を選択します。

    IoT Edge ソリューションをビルドしてプッシュする

    Python と Python の拡張機能がインストールされていない場合は、ソリューションをビルドしてプッシュするとインストールされます。 ただし、ビルド時間は長くなります。

    この手順が完了すると、コンテナー レジストリにモジュールが表示されます。

    コンテナー レジストのモジュール

  7. 配置マニフェストを作成するには、deployment.template.json ファイルを右クリックし、[IoT Edge 配置マニフェストの生成] を選択します。

    IoT Edge 配置マニフェストの生成

    配置マニフェストが生成されたパスが通知されます。 マニフェストは、config フォルダーに生成された deployment.amd64.json ファイルです。

  8. config フォルダーで deployment.amd64.json ファイルを選択し、[単一デバイスのデプロイの作成] をクリックします。 deployment.template.json ファイルは使用しないでください。

    単一デバイスのデプロイを作成する

    [出力] ウィンドウに、デプロイに成功したことを示すメッセージが表示されます。

    出力のデプロイメント成功

モジュールを監視する

  1. VS Code コマンド パレットで、[Azure IoT Hub: Select IoT Hub]\(Azure IoT Hub: IoT ハブの選択\) を実行します。

  2. 構成する IoT Edge デバイスが含まれているサブスクリプションと IoT ハブを選択します。 この場合、Azure Stack Edge Pro デバイスのデプロイに使用するサブスクリプションを選択し、Azure Stack Edge Pro デバイス用に作成された IoT Edge デバイスを選択します。 これは、前の手順で Azure portal からコンピューティングを構成した場合に発生します。

  3. VS Code エクスプローラーで、[Azure IoT Hub] セクションを展開します。 [デバイス] に、Azure Stack Edge Pro デバイスに対応する IoT Edge デバイスが表示されます。

    1. そのデバイスを選択して右クリックし、[組み込みイベント エンドポイントの監視を開始する] を選択します。

      監視の開始

    2. [デバイス] > [モジュール] の順にアクセスして、GPU モジュールが実行中であることを確認します。

      IoT Hub のモジュール

    3. VS Code ターミナルでも Azure Stack Edge Pro デバイスの監視出力に IoT Hub イベントが含まれていることを確認します。

      監視出力

      CPU よりも GPU の方が、同じ操作セット (5000 回の図形変換) の実行にかかった時間がずっと短いことがわかります。

次のステップ