自身初購入のAMD Ryzen搭載ミニPCでを積んだRyzen 7 8845HS搭載AOOSTAR GEM12 Pro MAXは、CPU、iGPU(Radeon 780M)、NPU(AMD Ryzen AI)を1つのSoCに一体化したAPU内蔵の小型PC、そんなPCを買ってみたからには、その存在を確かめてみたいし、リアルタイムで状態を確認してみたいよね、しかもPC-UNIX/*BSD/Linuxでという話。
とは言え、ここで紹介するコマンドやアプリの多くは、汎用なのでNPUはともかくも他のCPUやNVIDIA GPU情報も表示できるはずですが。
尚、当該ミニPCは、プリインストール済みかつ、クリーンインストール済みなWindows 11 ProとUSB SSDブートする恰好で正式リリース前のLinux 6.14カーネルを採用していたUbuntu 25.04ベータ版のデュアルブート|マルチブート構成です。
尚、AMD独自技術としての登録商標AMD XDNAからXDNA、amdxdnaは、NPU/Neural network Processing Unit、はたまた、IPU/Infrastructure Processing Unitと呼ばれることも。
また、AMD GPU|iGPUは、amdgpuと呼ばれることも。
ちなみにAMD CPU/GPU(iGPU)を1つのSoCに実装したものをAMDではAPU/Accelerated Processing Unitと呼び、その後、NPUを統合したものも同様にAPUと呼ぶようになったという話も。
残念ながら、今日時点ではまだ、Ryzen AIなNPUについては、WindowsのタスクマネージャのようにLinuxで「リアルタイム」でモニタすることはできませんが、コマンド実行により、その存在を確認することやamd / RyzenAI-SWの各種TutorialでNPUによる実行結果、CPUやiGPU|GPUとの比較結果を確認することはできます。
というか、当初、Jupyter Notebookでyolov8を起動・完了した時に表示されたAI Analyzerが、CPU、NPU含め、そうした機能があるっぽいものの、改めて確認してみようと思ったら、Web画面は表示されるものの、グラフなど何も表示されずじまい...。
もちろん、Linux上でのNPUの存在確認や実行結果確認するにあたっては、AMD XDNAドライバをインストール済み、もしくは、先月末に正式リリースされ、AMD XDNAドライバが組み込まれたLinuxカーネル 6.14〜を使っていることが前提です。
dmesgコマンドは、Linuxを含むUNIX系システムにおいて起動時にカーネルが出力するメッセージを表示してくれるコマンド。
lspciコマンドは、PCIデバイス情報を一覧表示するコマンド。
尚、最大限冗長な-vvvオプションを付けないと単にIPUでgrepするように1行程度の味気ない結果しか得ることができません。
hwinfoコマンドは、ハードウェア情報のリストを表示してくれるコマンド。 --pciは、Linuxを含むUNIX系システムにおいて起動時にカーネルが出力するメッセージを表示してくれるコマンド。
NPUは、PCIデバイスとして扱われるとのことで--pciオプション付きでPCIデバイスを一覧、lessにパイプして/(スラッシュ)+キーワードで検索するのが良いでしょう。
仮にhwinfoコマンドがなくてもディストロのパッケージマネージャでインストールできるでしょう。
rocm-smiコマンドは、その時点のGPU|iGPUの消費電力や温度などのステータスを文字や数値として一覧表示してくれるコマンドです。
よって、やりようによってはリアルタイムモニタもできなくもないでしょうが、GPUを使う、もしくは、使い終わるタイミングが事前にわかる場合、前後で実行すれば、その違いを比較できます。
尚、rocm-smiという名の通り、(NVIDIAで言うところのCUDAにあたる)ROCmがインストールされていることが前提となります。
AMD Ryzen AI NPU、IPUがあるなら、AMD Ryzen AIソフトウェアをインストールしてあるはずで、その過程でインストールしていることでしょう。
仮にそうでなくともamdgpu-installコマンドで--usecase rocm --no-dkmsなどとして更新することもできますし、amdgpuやROCmリポジトリを登録してあれば(これがある時点でRyzen AIソフトウェアはインストール済みでしょうが...)、パッケージマネージャからもROCmパッケージ自体はインストールできますが、単体で動作するのかは未確認ながら、amdgpu-dkmsもインストールすればいけるかも?
ここでdmesg | grep amdgpuとすれば、audit行はさておき、amdgpuに関する情報が表示されます。
hwinfoコマンドは、その名の通り、各種ハードウェア情報を一覧表示してくれるコマンド。
--gfxcardオプションを付ければ、amdgpu含む内蔵・外付けのGPUの情報をピックアップしてくれます。
尚、GPU|iGPUも、PCIデバイスとして扱われるとのことで--pciオプションを付きでhwinfo --pciとしても他のPCIデバイスの1つとして表示してくれますが、この場合、--gfxcardの方が適しているでしょう。
hwinfoコマンドがない場合、ディストロのパッケージマネージャなどからインストール。
nvtopコマンドは、CLI的なグラフィカル表示で文字とグラフによるGPU/iGPU、CPUの状況をリアルタイムでモニタリングできるコマンドです。
仮にnvtopがなくてもディストロのパッケージマネージャでインストールできることでしょう。
CoreCtrlは、AMD Softwareの代替ともなり得る汎用のCPU、GPU|iGPUリアルタイムモニタも備えたハードウェアパフォーマンスチューニングソフトウェアです。
ディストロのパッケージマネージャでインストールすることもできたりします。
もう1つ著名な汎用ソフトもあったのですが、APUなマシンだと何か制約がありそうだったのでCoreCtrlをチョイス。
CoreCtrl 1.4.3 システムソフトウェア一覧。
CoreCtrl 1.4.3 GPU0情報一覧。
CoreCtrl 1.4.3 CPU0情報一覧。
CoreCtrl 1.4.3 GPU0設定・リアルタイムモニタ。
CoreCtrl 1.4.3 CPU0設定・リアルタイムモニタ。
CLIのみならず、GUIも備えるamdgpu_topコマンドは、今から遡ること1年前の記事AMD GPU用のモニタリングツールを作り始めてから1年が経ってたで発見、その成果物がUmio-Yasuno / amdgpu_top、これをgit clone、[cd amdgpu_top]、[cargo install --locked --path .]するなりすればインストールできます。
当初、この記事を書いた時点で前者の記事は早々に拝見させて頂いたものの、是非使わせて頂きたいが...、あれ?それでamdgpu_topはどこに...とgithubのリンクに気づかず...今日、改めて気づき、インストールしてみたら、制御はさておき、リアルタイムモニタに限れば、これがあれば、他は要らないと言える充実ぶりに驚き。
XDNA fdinfoについては、GUIだと左ペインに情報としてはあるも、CLIも、GUIについては右ペインに情報が表示されていないのは、未実装なのか、NPUが稼働中でないと表示されないものなのか(Linuxカーネル6.14なUbuntu 25.04においてamdxdnaの存在は確認済み、Ryzen AIソフトウェアのインストールも成功しているはずも、実は失敗しているのか?)。
尚、amdgpu_top --xdnaで静的なNPU情報は取得でき、その他オプションも豊富。
ともあれ、Ryzen AI|amdxdna|NPUの情報があるのは、AMD、Ryzenのソフトウェアや対応ソフトウェアに当該情報が乏しい現状において、尚、秀逸かと。
--guiオプション付きにするとGUIが起動。
左ペインには、まだ開いていないタブがあり、さておき、右パネルもGRBM/GRBM2のグラフが、そしてグラフはまだまだ続く...
VRAM、Activity、fdinfo...
数値による、ここまでのFull list、XDNA fdinfo、各種センサー情報Sensors...
CPU Core Freq、GPU Metrix v2.1、CPU Core Temperature Plot...
CPU Core Power Plot、VCLK/DCLK Plot、そして展開されていないThrottling Log。
各グラフはマウスオーバーすると縦横の座標軸が追従すると共に縦軸・横軸の値が逐一表示され、右ペインのThrottling Logはまだログがないのでなんですが、左ペインの未展開のメニューを展開すると各種多くの情報が、最上段のInfoをクリックすると左ペインの開閉、Light/Darkでダークモードにも対応、GPUはセレクトボックスになっており、iGPU以外に外付けもあれば、選択・表示できる模様、すごっ。