Coelacanth's Dream

AMD XDNA ドライバーからプロセスごとの使用量が取得可能に

AMD がオープンソースで開発、公開している AMD XDNA Driver for Linuxfdinfo へのメモリ使用量と NPU 使用量の出力に対応した。
fdinfo への使用量の出力には amdgpu, i915, xe 等の GPU ドライバーが対応しており、それを利用するモニタリングソフトウェアとしては Syllo/nvtop が存在する。

Windows では Ryzen 8040 Series 向けに NPU モニタリングのサポートがタスクマネージャーに追加されることが 2024/02/08 に発表されていた。1
今回 AMD XDNA Driver が fdinfo への出力に対応したことで、Linux 環境においても同様の機能が追加可能になったと言える。

自作の AMD GPU 向けモニタリングソフトウェア amdgpu_top にも最低限の対応を追加したが、XDNA NPU を搭載した環境を持っていないため、ドライバーのソースコードやドキュメントを参照しながらの作業となった。

Linux 環境における XDNA NPU のモニタリング機能に関しては、Ryzen AI 300 Series (Strix Point) 限定ではあるが他にも方法はある。
amdgpu ドライバーの機能として、SMU (System Management Unit) から内部的に取得可能な温度やクロック、電力量、使用率、帯域等を構造体にまとめ、バイナリ形式で出力する gpu_metrics というものがある。
Ryzen AI 300 Series では gpu_metricsaverage_ipu_activity, average_ipu_reads, average_ipu_writes, average_ipu_power, average_ipuclk_frequency, average_mpipu_frequency というフィールドが存在し、それらは恐らく XDNA NPU の状態に関する情報と思われる。