次の方法で共有


GPU 対応 IoT モジュールを Azure Stack Hub にデプロイする

GPU 対応の Azure Stack Hub を使用すると、IoT Edge で実行されている Linux デバイスにプロセッサを集中的に使用するモジュールをデプロイできます。 GPU 最適化 VM サイズは、単一または複数の NVIDIA GPU で使用できる特殊な VM です。 この記事では、GPU 最適化 VM を使用して、コンピューティング集中型、グラフィックス集中型、視覚化ワークロードを実行する方法について説明します。

開始する前に、グローバル Azure と Azure Stack Hub、Azure Container Registry (ACR)、IoT ハブにアクセスできる Microsoft Entra サブスクリプションが必要です。

この記事では、次の操作を行います。

  • GPU 対応の Linux VM をインストールし、適切なドライバーをインストールします。
  • Docker をインストールし、ランタイムで GPU を有効にします。
  • IoT デバイスを iOT Hub に接続し、iOT マーケットプレースからモデルをインストールします:Getting started with GPUs
  • Azure IoT エクスプローラーを使用して、ローカル コンピューターからデバイスをインストールして監視します。
  • また、必要に応じて、Visual Studio Code の Azure IoT 拡張機能を使用してデバイスをインストールして監視します。

前提 条件

Azure Stack Hub インスタンス、グローバル Azure、およびローカル開発マシンに、次のリソースを配置する必要があります。

Azure Stack Hub と Azure

  • NVIDA GPU を使用する Azure Stack Hub 統合システムで Microsoft Entra ID を使用するユーザーとしてのサブスクリプション。 次のチップは iOT Hub で動作します。

    • NCv3
    • NCas_v4

    Azure Stack Hub 上の GPU の詳細については、「グラフィックス処理装置 (GPU) VM on Azure Stack Hub」を参照してください。

  • グローバル Azure サブスクリプション。 グローバル Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウントを作成してください。

  • Azure Container Registry (ACR)。 ACR サインイン サーバー、ユーザー名、パスワードを書き留めます。

  • グローバル Azure の無料または Standard レベルの IoT ハブ

開発用コンピューター

  • 開発設定に応じて、独自のコンピューターまたは仮想マシンを使用できます。 開発用コンピューターでは、入れ子になった仮想化をサポートする必要があります。 この機能は、この記事で使用されるコンテナー エンジンである Docker を実行するために必要です。

  • 開発用コンピューターには、次のリソースが必要です。

IoT Edge デバイスを登録する

別のデバイスを使用して IoT Edge デバイスをホストします。 別のデバイスを使用すると、開発マシンと IoT Edge デバイスの間の分離が実現され、デプロイ シナリオがより正確に反映されます。

Linux VM を使用して Azure に IoT Edge デバイスを作成します。

  1. Azure Stack Hub 上に N シリーズ Linux サーバー VM を作成します。 サーバーのコンポーネントをインストールすると、SSH 経由でサーバーと対話します。 詳細については、「Azure Stack Hubで SSH キー ペアを使用する」を参照してください。

  2. IoT Edge デバイス を作成して登録する

GPU 対応 VM を準備する

  1. 記事の手順に従って、N シリーズ Linux サーバーに NVIDA GPU ドライバーをインストール Linuxを実行している N シリーズ VM に NVIDIA GPU ドライバーをインストールします。

    手記

    bash コマンド ラインを使用してソフトウェアをインストールします。 同じコマンドを使用して、GPU 対応 VM 上の Docker で実行されているコンテナーにドライバーをインストールするため、コマンドをメモしておきます。

  2. Azure Stack Hub の N シリーズ Linux サーバーに最新の IoT Edge ランタイムをインストールします。 手順については、「Debian ベースの Linux システムに Azure IoT Edge ランタイムをインストールする を参照してください。

Docker をインストールする

GPU 対応 VM に Docker をインストールします。 VM 上のコンテナー内の IoT Edge マーケットプレースからモジュールを実行します。

Docker 19.02 以降をインストールする必要があります。 Docker ランタイムで NVIDIA GPU がサポートされるようになりました。 Docker での GPU の詳細については、Docker ドキュメントの記事、メモリ、CPU、GPU を使用したランタイム オプションのを参照してください。

Docker をインストールする

Docker コンテナーは、お客様のデータセンター内、外部サービス プロバイダーまたはクラウド内の任意の場所(オンプレミス)、Azure 上で実行できます。 Docker イメージ コンテナーは、Linux と Windows でネイティブに実行できます。 ただし、Windows イメージは Windows ホストでのみ実行でき、Linux イメージは Linux ホストと Windows ホスト (これまでは Hyper-V Linux VM を使用) で実行できます。ホストはサーバーまたは VM を意味します。 詳細については、「Docker とは」を参照してください。.

  1. SSH クライアントを使用して N シリーズ Linux サーバーに接続します。

  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. Docker の GPG キーを追加します。

    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. Docker で使用可能な GPU リソースを公開します。

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

Marketplace からアイテムを取得する

Azure portal に戻り、iOT マーケットプレースを使用してエッジ デバイスにモデルを追加します。 メニューから Marketplace モジュール を選択します。 Getting started with GPUsを検索し、指示に従ってモジュールを追加します。

手順については、「デバイスの選択とモジュールの追加 を参照してください。

監視を有効にする

  1. Azure IoT エクスプローラー ダウンロードし、アプリケーションを IoT Hub に接続します。

  2. IoT デバイスを選択し、ナビゲーション メニューからテレメトリに移動します。

  3. [Start] を選択して、IoT Edge デバイスからの出力の監視を開始します。

有効なインストール

モジュールを監視する (省略可能)

  1. VS Code コマンド パレットで、Azure IoT Hub 実行します。[IoT Hubを選択します。

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

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

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

    2. Devices > Modules に移動すると、GPU モジュール 実行されていることがわかります。

    3. VS Code ターミナルには、Azure Stack Hub の監視出力として IoT Hub イベントも表示されます。

    有効なインストールは

    GPU による同じ一連の操作 (5000 回のシェイプ変換の反復) の実行にかかる時間が、CPU の場合と比べて大幅に少ないことがわかります。

次の手順