Ryzen AI Software version1.1 がリリースされ、Llama2 7Bが機能追加された(情報はこちら)。70億パラメタのLLMをUM790 ProのNPUで動かすことができるらしい。
最終的にはLlama2をNPUで動かすことが私の目標であるが、いきなりはハードルが高い。今回はNPUで画像認識するデモプロの動作確認ができたので、そこまでを記録しておきたい。
環境の再構築
Ruzen AIを動かすために必要な環境は以下の通り。この辺りの導入については私のこちらの記事を見ていただきたい。
私は既に上記環境を導入して、デモプロの動作確認もトライしていたが、何故かcmakeのコンパイルエラーとなり、これまで動かせずにいた。
今回、あることがきっかけでAnacondaとVisual Studioをアンイストールし、再インストールしたところ、cmakeのコンパイルエラーがなくなり、デモプロを動かすことができた。
Anacondaを再インストールしたのは、Anaconda-navigatorがWindowsメニューから起動できなくなったためだ。Anaconda-navigatorを起動するたびに「最新バージョンにアップデートするか」と確認され、何かあるとこわいのでアップデートしないでいたのだが、毎回聞かれるのが鬱陶しくなり、思い切ってアップデートした後におかしくなった。再インストールしたことで、NPUでデモプロを動かせるようになり、結果オーライではあったが、今後はAnacondaのバージョンアップはしないつもりだ。
Visual Studioも2022と2019をインストールしていたが、Ryzen AIの動作確認プログラムを動かそうとしたところ、Visual Studio 2019を認識してくれない状態になっていたため、Visual Studioも全てアンインストールし、2019のみを再インストールした。
Ryzen AIデモプロのダウンロード
導入したいフォルダで下記コマンドを実行しGitからクローンすると、RyzenAI-SWフォルダの下に関連するファイルがダウンロードされる。
$ git clone https://github.com/amd/RyzenAI-SW.git
詳細はGitHubのページを見てもらいたい。
Ryzen AIデモプロのセットアップ
デモプロは2種類が用意されている。
私が試したのは「Multiple model concurrency demo」の方である。
1)準備
こちらのページの「Download Package」にあるzipファイルをダウンロードし、その中のreleaseフォルダをRyzenAI-SW\demo\multi-model-exec\ipu_modelsx4_demoの下に展開する。
2)構築コマンド実行
Ryzen AIの動作確認時に作成したPythonの仮想環境(ryzenai-1.0-”作成日付時刻”)があるので、Anacondaでそれを選択してからPowerShellを起動する。PowerShellで下記の構築コマンドを実行する。
$ python generate_script.py
Ryzen AIデモプロ実行結果
構築コマンドを実行すると、フォルダipu_modelsx4_demoの下にデモプロの起動コマンド(run_resnet50.bat、run_retinaface.bat、run_segmentation.bat、run_yolovx.bat等)が作成される。
PowerShellのコマンドプロンプトからこれらのコマンドを実行する。
うまくcmakeのコンパイルまで通ると、下記のように画像認識した結果の画像が次々と表示される。
FPSは64くらいの値を表示していた。顔や自動車や動物を認識できているので正しく動いてはいるようだ。ずっと動き続ける作りになっていて止め方が分からない。仕方ないのでコマンドプロンプトごと強制終了させた。
付記
上記以外で行った作業はいくつかあったかもしれないが、正確に覚えていない。覚えているのは、cmakeコンパイルエラーになった時に、****.cmakeというファイルが見つからないというメッセージが表示されたので、メッセージで指定された環境変数にパス名を設定した。以下をユーザ環境変数に追加している。今となってはこれらが必要だったのかは定かでないが、念の為付記しておく。
- GLOG_DIR
- GLOG_ROOT
- GFLAGS_DIR
- XRT_DIR
最後に
NPUで高速に画像認識するデモプロを動作させることができた。NPUの動作状況や稼働率を確認する術がない、というか知らないので確認できないのだが、多分NPUで動いているのだと思う。
次のステップとしてLLM(Llama2)をNPUで動かしてみたい。
IntelのNPU(Intel Core Ultra7 155H)を使ってLLMを動かしている人は既にいるようだ。
上記のブログを見ると、Intelの場合はWindowsのタスクマネージャーでNPUの動作状況が表示されるらしい。私のUM790 ProではNPUは表示されていない。
Ryzen AI Software version1.1 で動くLLMは、w4abf16という量子化で動作し、且つβ版という条件付きとなっている。Llama2を導入するためのドキュメントはGitHubのこちらに掲載されているが、内容が難解すぎる。。。「ちょっと何言っているか分からない」というレベルだ(笑)。
分かる人には分かるのだろうが、AMDもRyzen AIに力を入れていくつもりなら、せめて量子化済みのモデルを用意するとか、LM Studioで動かせるようにするとか、導入までのハードルをもう少し下げてほしいものだ。