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 を実行するために必要です。
開発用コンピューターには、次のリソースが必要です。
- Python 3.x
- Python パッケージをインストールするための pip。 これは Python インストールと共にインストールされます。 Pip がインストールされている場合は、最新バージョンにアップグレードできます。 pip 自体を使用してアップグレードできます。 次のコマンドを入力します:
pip install --upgrade pip
- Azure CLI 2.0
- Git
- Docker
- Visual Studio Code
- Visual Studio Code 用の Azure IoT Tools
- Visual Studio Code 用の Python 拡張機能パック
IoT Edge デバイスを登録する
別のデバイスを使用して IoT Edge デバイスをホストします。 別のデバイスを使用すると、開発マシンと IoT Edge デバイスの間の分離が実現され、デプロイ シナリオがより正確に反映されます。
Linux VM を使用して Azure に IoT Edge デバイスを作成します。
Azure Stack Hub 上に N シリーズ Linux サーバー VM を作成します。 サーバーのコンポーネントをインストールすると、SSH 経由でサーバーと対話します。 詳細については、「Azure Stack Hubで SSH キー ペアを使用する」を参照してください。
IoT Edge デバイス を作成して登録する
GPU 対応 VM を準備する
記事の手順に従って、N シリーズ Linux サーバーに NVIDA GPU ドライバーをインストール Linuxを実行している N シリーズ VM に NVIDIA GPU ドライバーをインストールします。
手記
bash コマンド ラインを使用してソフトウェアをインストールします。 同じコマンドを使用して、GPU 対応 VM 上の Docker で実行されているコンテナーにドライバーをインストールするため、コマンドをメモしておきます。
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 とは」を参照してください。.
SSH クライアントを使用して N シリーズ Linux サーバーに接続します。
apt インデックスとリストを更新します。
sudo apt-get update
コンピュータ上の既存パッケージの新しいバージョンを取得します。
sudo apt-get upgrade
Docker の apt リポジトリを追加するために必要な依存関係をインストールします。
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
Docker の GPG キーを追加します。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Docker の apt リポジトリを追加します。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt インデックスとリストを更新し、Docker Community Edition をインストールします。
sudo apt-get update sudo apt-get install docker-ce
Docker のバージョンを確認してインストールを確認します。
docker -v
Docker で使用可能な GPU リソースを公開します。
docker run -it --rm --gpus all ubuntu nvidia-smi
Marketplace からアイテムを取得する
Azure portal に戻り、iOT マーケットプレースを使用してエッジ デバイスにモデルを追加します。 メニューから Marketplace モジュール を選択します。 Getting started with GPUs
を検索し、指示に従ってモジュールを追加します。
手順については、「デバイスの選択とモジュールの追加 を参照してください。
監視を有効にする
IoT デバイスを選択し、ナビゲーション メニューからテレメトリに移動します。
[Start] を選択して、IoT Edge デバイスからの出力の監視を開始します。
モジュールを監視する (省略可能)
VS Code コマンド パレットで、Azure IoT Hub 実行します。[IoT Hubを選択します。
構成する IoT Edge デバイスを含むサブスクリプションと IoT ハブを選択します。 この場合は、Azure Stack Hub インスタンスでサブスクリプションを選択し、Azure Stack Hub 用に作成された IoT Edge デバイスを選択します。 これは、前の手順で Azure portal を使用してコンピューティングを構成するときに発生します。
VS Code エクスプローラーで、Azure IoT Hub セクションを展開します。 [デバイス] に、Azure Stack Hub に対応する IoT Edge デバイスが表示されます。
そのデバイスを選択し、右クリックして[組み込みのイベント エンドポイント 監視を開始] を選択します。
Devices > Modules に移動すると、GPU モジュール 実行されていることがわかります。
VS Code ターミナルには、Azure Stack Hub の監視出力として IoT Hub イベントも表示されます。
GPU による同じ一連の操作 (5000 回のシェイプ変換の反復) の実行にかかる時間が、CPU の場合と比べて大幅に少ないことがわかります。
次の手順
Azure Stack Hub 上 グラフィックス処理装置 (GPU) 仮想マシン (VM) の詳細を確認する
Azure Stack Hub、Data Box Edge、Intelligent Edge の詳細、コンピューティングの未来:インテリジェント クラウドとインテリジェント エッジ