AMD UMAマシンのモニタリング

EVO-X2 (Strix Halo)をLinuxにして、LLMとComfyUI画像生成専用にしてから、Open WebUIをかなり真剣に使うことが多くなった。EVO-X2は、テレビの裏に押しやられてしまい、イルミネーションがどうなっているのか?ファンがどうなっているのかは預かりしれず。さらに誰もログインしていないので、CPUやGPUやら全く気にしていない。しかし、GTTをメインにしてからそうも言っていられなくなった。

何度もいっているが、AMDのiGPUを使う場合、Windowsでの利用と真逆で、VRAMサイズを極小にする。AMDのiGPUは、UMAなので、VRAMとSystem RAMが共有領域なので、VRAMを確保されるとまずい。Sysytem RAM内にGTTというVRAMとして使っていい領域を指定して使う。

GTTは、AMD自身もLinuxでなら、VRAMではなく、GTTを使ってと言っている便利なものなんだが、一つ注意点があって、GTTは、System RAM空間の中でVRAMとして使って良いという領域。GTTをSystem RAMに近い領域で確保した場合、VRAMの利用が増えると、GTTがSystem RAMが圧迫する。もちろんSystem RAM自体もメモリを使う。つまり、メモリの取り合いでOOMが発生する。GTTで重要なのは、System RAMのうち、GTTでアサインされない容量、つまりSystem RAMとして確実に使える容量分は開けておく必要がある。GTTを100GBや112GBとかに設定できるが、System RAMとして確保を保証できる領域がほとんどないので、OOMが起きやすくなる。簡単には、System RAMで確認できるが、GTTでの利用なのかSystem RAMでの利用なのか、空き容量だけでは内訳が確認できない。また、VRAMの空き容量が余裕でも、最終的にGTTをどれくらい使うのかをモニタリングをする必要がある。LLMも、ロード時のVRAM消費容量と使っているときのVRAM容量も全然違う。使い続けていて、突然OOMというのも避けたい。

このような事情で、AMDのiGPUのマシンの場合、GTTのモニタリングはとても重要。

さて、世間でもAMD GPU用のGrafanaダッシュボードはちゃんとあるので、入れてみた。

VRAMの消費量もちゃんと表示されている。がしかし、VRAMの領域は2GBの中だけで使い物にならない。GTTの情報見えない。

調べてみるとGTTまで表示できるダッシュボードは見つからない。

 

ちょっと調べてみると、Prometheusのメトリックまで出してくれるものが見つかった。

https://github.com/skobkin/amdgputop-web

これを動かすには多分amdgpu_topが必要。amdgpu_topは引数でデータが取れるので便利なんだが、このようにグラフにしてくれるのはありがたい。ただし、開いたときからグラフがでるので、過去どうだったんだっけという用途には使えない。

このamdgputop_webは、Prometheusのメトリックスをつけてくれる。

既存のダッシュボードにつけてみた。GTTが見えるようになった。使い切ることはないと思ったが、13:00くらいに大量消費している。この時間は、ComfyUIを使っていた。

Strix Haloで、動画生成が途中で止まるのは、自分の経験だとメモリの問題が大きいので、こう言ったモニタリングをつけていれば、どっちで止まったのか?というのがわかる。それに応じて、GTTを変えれば動く。

というか、あまりにも便利なので、ラズパイでディスプレイを出しても面白いかもしれない。ちょうどラズパイ3bとラズパイ用のディスプレイが埃をかぶっているので。

コメントする