Help us understand the problem. What is going on with this article?

Azure の次世代 GPU 搭載 VM NVv4 を試す

概要

Azure では 2019 年の夏ごろに NVv4 という次世代の GPU 搭載仮想マシンが登場しており、現在プレビューが実施されています。

このアナウンス時から申請していたプレビューアクセスが最近になってようやく認められましたので、試してみた結果と感想をまとめました。

NVv4 の紹介

基本的なことは NVv4 シリース (プレビュー) のドキュメント を参照してください。

「NV って名前なのに NVIDIA じゃなくて AMD の GPU なんですか?」といった素朴な疑問については Microsoft Ignite 2019 イベント開催時の AMD のブログ投稿が言及しています。

Wondering what does NVv4 stands for? “N” = GPU Accelerated VM family in Azure “V” = Visualization “4” = Generation 4 – which means the NVv4 is the latest generation of GPU enabled virtual desktops services from Azure.

NVv4 シリーズの価格表を見ると、米国中南部リージョンで開始価格が 11,446円/月〜と、従来世代の GPU 搭載 VM と比べ非常に安くなっています (ただしこれはプレビュー価格であり、GA すると 2 倍くらいになると思います)。

image.png

この価格は AMD Radeon Instinct MI25 という仮想化対応 GPU を最大で 8 分割することで実現しているため、性能も値段相応になるものと思われます。なお CPU には AMD EPYC 7V12 (Rome) を使用しています。

NVv4 の想定用途としてはモダンな Web ブラウザやオフィスアプリなどを利用する VDI があげられていますが、Unreal や Unity といったゲームエンジンのツールを多用するようになったゲーム開発分野でも同様に役立ちそうです。クラウドで GPU は使いたいけど月 10 万円以上するモンスタースペック GPU VM は不要という用途は数多くあり、NVv4 の提供する性能・価格ゾーンはこれにマッチしていると思います。

NVv4 プレビューに申し込む

ということでぜひ試してみたい NVv4 ですが、それにはこちらの申請フォームを提出してプレビューアクセスを申し込む必要があります。

なお自分は申請後かなり待たされました。プレビューのアナウンス後に申請フォームを合計で 3 回くらい提出しましたが、申請を受け付けたといったような連絡もなく、まったく状況がわかりませんでしたので、Microsoft の営業の方にもお願いしたところ 2019 年末にようやくプレビューの案内のメールが来て NVv4 が使えるようになりました。

NVv4 プレビューは米国中南部または西ヨーロッパのリージョンで実施されています。実際に利用可能なリージョンと個数 (vCPU クオータ) はプレビュー開始時に案内メールの中で通知されます。自分の場合は米国中南部で 8 コアまででした。

NVv4 VM を使ってみる

NV_v4 VM 自体は Azure Portal や CLI などを使って普通に作ることができます。

image.png

GPU を利用するにはドライバのインストールが必要です。いまのところサポートされているのは Windows VM のみです。

Windows

こちらのドキュメントに説明があるとおり、ドライバ Radeon-Pro-Software-for-Enterprise-19.Q4.1-Technical-Preview.exe をダウンロードしてインストールします。インストールが完了すると Radeon Instinct MI25 MxGPU というディスプレイアダプタが現れ、すぐに利用可能になります。

image.png

ディスプレイアダプタはデバイスマネージャーより無効化・有効化することができます。 GPU の有無は即時反映され、再起動は必要ありません (自分はこれにちょっと驚きました)。

image.png

Standard_NV4as_v4 の Windows VM で DxDiag を実行した結果を Gist に貼っておきました。

Linux

Microsoft からは Linux 用のドライバは提供されていません。次のような場所で見つかるソフトウェアを使うとなにか動くかもしれないですが、まだ試せていません。

Standard_NV4as_v4 の Linux VM で lscpu や lspci してみた結果は次のとおりでした。

CPU は 2 コア 4 スレッドのようです。

NVv4 の感想

自分はもっぱら macOS の Microsoft Remote Desktop 10 アプリで、東京から米国中南部リージョンの Standard_NV4as_v4 の Windows Server 2019 Datacenter 1809 の VM に接続して試しています。いくつかテストした結果や感想を書いておきます。

  • traceroute で計測したところ、ホップ数は 17 くらい、遅延は 150〜160ms 程度でした。
  • リモートデスクトップの操作感自体は、ネットワーク的な距離や遅延から想像されるほど悪くはない感じでした。 Chrome も VSCode も若干のひっかかりはありますが、普通に使うことができます。
  • ゲームエンジンや 3D CG ツール類の作業環境として常用するのはやはりちょっと厳しいですが、ビルドやレンダリング前の確認・調整には十分使えるパフォーマンスがあります。東日本リージョンで動くようになれば常用も可能になるかもしれません。
  • Unity: GPU のない VM ではカクカク動作だった Editor のシーンプレビューが、 NVv4 で GPU を有効にするとスルスルと動くようになりました。 Angry Bots 2 から出力した Windows64 Player は 1FPS 動作だったものが 45FPS 程度まで向上しました。
  • Unreal: GPU のない VM では DX11 feature level 10.0 is required to run the engine. と出て Editor がそもそも起動しませんでしたが、 NVv4 では普通に起動するようになりました。いくつかの Maketplace のサンプルプロジェクトも動作しました。
  • Blender: GPU のない VM では A graphics card and driver with support for OpenGL 3.3 or higher is required. と出て起動しませんでしたが、NVv4 では普通に起動します。 Blender のデモ からダウンロードできるサンプルプロジェクトを開いて編集・レンダリングができました。

…動作確認レベルの情報やふんわりとした感想しかなくて申しわけありません。

本来ならスコアが出るベンチマークプログラムでも走らせるべきところですが、リモートデスクトップ環境だと普通のゲーム系のベンチマークアプリを試したところ軒並み悲惨なスコアしか出ず、本来の CPU・GPU の性能が計測できていないように感じました。

オフスクリーンのレンダリング性能を計測しようと Blender Benchmark を走らせてみましたが、 Radeon Instinct MI25 MxGPU (OPENCL) を使おうとすると、どのシーンを選んでも Loading scece ... から先に進行しませんでした。なにかバグとかスペック不足とかがあるのかもしれませんが、詳しくは調べてはいません。

自分が特に関心があるのは Unity のアセットビルドや Unreal のクックの所要時間のような、ゲームプロジェクトの CI/CD の観点での性能なので、今後はなにか手頃なサイズのベンチマーク用プロジェクトを用意して時間を計ってみたいと思っています。

まとめ

Azure の新しい GPU 搭載 VM である NVv4 が試せるようになったので、とりあえず試した結果をまとめてみました。

これまでクラウドの GPU といえば重い機械学習やムービーレンダリング用途の性能お化けばかりでしたが、 NVv4 はそれよりずっと軽い性能と低い価格の領域をカバーしています。 Azure 以外のクラウドベンダには NVv4 に相当するプロダクトはまだなく、ポテンシャルを感じます。

早くプレビューが終わって東日本リージョンでも使えるようになることを願っていますが、こればかりは需要で決まるものなので、日本のどこかの企業が Windows Virtual Desktop などで大口利用してくれないかなあと思っています。またゲーム業界でも、クラウドの GPU を活用した開発や CI/CD をやっていこうという人が増えるとよいですね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした