Ryzen AI Software 1.3を導入してからタスクマネージャーにNPUの動作状況が表示されるようになった。しかしNPUを動作させるプログラムがないためNPUが実際に動作している様子を見たことはこれまで一度もなかった。
本日ようやくRyzenAIのサンプルプログラムとしてyolov8 Pythonを動かし、Webカメラで物体認識をさせながらタスクマネージャーでNPUが動く様子を見ることができた。


物体認識をしている様子を動画でお見せしたいところだが、狭くて乱雑な私の机の様子が写ってしまうので、静止画だけ載せることにした😊
導入方法
1)前提条件
・NPUドライバがインストールされていること
・NPUデバイスが認識されていること
・参考情報 https://singula2045.hatenablog.com/entry/2024/12/08/115112
・Ryzen AI Software 1.3 がインストールされていること
・動作確認プログラムが動作していること
・参考情報 https://singula2045.hatenablog.com/entry/2024/12/08/145049
2)Yolov8 Python Implementation with Webcam Input
導入手順はRyzen AIのGithubの説明の通り、と言いたいところだがこの通りにやっても動かなかった。動かすためのポイントがあるのでメモしておきたい。
- Jupyter Notebookでデモプロを動かすため以下の準備が必要
・Jupyter NotebookまたはJupyter labの導入
・Pythonの仮想環境(今回の例ではryzen-ai-1.3.0を使用)
・Python仮想環境をJupyter Notebookで使用できるようにする
※仮想環境作成のコマンドは話が長くなるので最後にまとめて記載する - yolov8.ipynbを開き、用意したPython仮想環境ryzen-ai-1.3.0を選択
- 最初のセルで「python -m pip install -r requirements.txt」を実行
・このrequirement.txtの中に罠が仕掛けられていた(onnxruntimeがコメントアウトされている)
・このため3つ目のセル実行でonnxruntimeというモジュールがないというエラーがでる
・それではと安易に「pip install onnxruntime」を実行してはいけない。とりあえず動くようになるが、プロバイダーとして”CPUExecutionProvider”しか認識されないためCPUでしか動かなくなり、私のように泥沼にハマる
・「pip install onnxruntime-directml」も実行してはいけない。GPUまたはCPUで動くようになるが、NPUでは動かない
・正解は下記のページにある「Install the Vitis AI Execution Provider」の通りにマニュアルでonnxruntime-vitisaiをインストールすること
・もし他のonnxruntime****をインストールしていた場合は全て削除してから上記インストールコマンドを実行すること - ここまで正しく行えていれば、NPU、GPU、CPUの3つのプロバイダが認識され、サンプルプログラムも動作する
- 3つのプロバイダが認識されているかはセルで下記のプログラムを実行して確認できる
import onnxruntime as rt print(rt.get_available_providers())
['VitisAIExecutionProvider', 'DmlExecutionProvider', 'CPUExecutionProvider']
上記のように表示されればほぼ成功である。
3)実行結果
CPU Inference
Inference with onnxruntime on CPU ep

----------------------------------------
Inference time: 324.24 ms
----------------------------------------
iGPU Inference
We will leverage the onnxruntime DirectML ep to inference on AMD Radeon 780m iGPU

----------------------------------------
Inference time: 303.81 ms
----------------------------------------
NPU Inference
Inference with onnxruntime on NPU ep

----------------------------------------
Inference time: 204.61 ms
----------------------------------------
推論時間はNPUが一番早くなった。
実際は、CPU、GPUは一瞬で終わるが、NPUはモデルデータの読み込みに時間がかかるのか、トータルでは一番時間がかかった。
Model inference on NPU with webcam
Now we have validated the the model with image., and we will use the webcam as live input to do the inference on NPU.


Webカメラを接続してセルを実行して暫し待つ。するとライブで物体認識が始まる。
CPUでもGPUでもなく、NPUで動いていることが始めて確認できた。苦労したがようやく報われた気がする。とりあえず満足である。
Python仮想環境作成コマンドのメモ
今回は何度も試行錯誤したので、これらコマンドを何度も使った。多分すぐに忘れるので、忘れる前にメモしておきたい。コマンドの意味等はNETにある他の解説記事を参照いただきたい。
anaconda/minicondaのコマンド
- 環境名のリスト
・conda env list - 環境作成
・conda create -n [仮想環境名] python=[バージョン].[レベル] - 環境の有効化
・conda activate [仮想環境名] - 環境削除
・conda remove -n [仮想環境名] --all
Jupyter kernel関連コマンド
condaコマンドで作成した環境をJupyter Notebookで使用可能にするためのコマンド
- 環境名のリスト
・jupyter kernelspec list - 環境追加
・ipython kernel install --user --name=[仮想環境名] - 環境削除
・jupyter kernelspec uninstall [仮想環境名] - 仮想環境内でipykernelをコマンドで使うためのインストールコマンド
・pip install ipykernel