ローカルAIで遊ぼうと、いろいろ試してみております。まぁ、いわゆる「おもちゃ」的に遊んでいる状況です。
で、ちょっと苦労したのが「どうやったらGPUを使ってくれるのよ」ってところ。
具体的にはLemonade Serverなんですが、最初はStandaloneのサーバとしてインストールしていました。この時も、いくつかのモデルを使ってもCPUの負荷が上がるだけでGPUは静かな状態のまま。その後、Docker/Dockhandの環境に移行しましたが、状況は全く変わらず。最初は構成ファイル中に /dev/kfd, /dev/dri の Device を記述してなかったので「ああ、それだったか」と思ったのですが、それを記述しても状況は変わらず。使用したモデルのBackendにROCmを指定しても変わらず。
config set rocm_channel=nightly を指定して backends install llamacpp:rocm をやっても、なんら状況は変わりません。
Lemonade Serverのバージョンは 11.5.2(=本記事投稿時点で最新)でしたが「こりゃダメか」と諦めました。
が、Standalone サーバの時には apt install したそのままで動かしてただけだったのを思い出し、lemonade config set rocm_channel=nightly して、lemonade backends install llamacpp:rocm して、もっかいトライしてみたら、冒頭の絵の通りGPUを使ってくれることが分かりました。
とりあえず、少しばかり望んだ状況に近づいたワケですが、それにしても、どうも応答がもっさりしてる…。
Docker環境には比較用に ollama も導入してあり、Lemonade Serverと同じModelを使って同じプロンプトで試してみたら、極めてスムースに応答してくれました。CPUはほとんど使用されずGPUがほぼ100%の負荷で処理されていました。
ってことで、Lemonade Serverは「もう少し改善が望まれるね」という状況のように思いました。nVidiaのGPUなら結果が違うのかもしれませんが、CPUもAMD製、GPUもAMD製。の上にLemonade Serverの開発にもAMDが大きく関与しているはずで、今の状況ってのはちょっと寂しい感じがします。
そうではなくて、自分の環境/設定が悪い?
いろいろ調べて試してみたんですけどねぇ…。まだ何かあるのかもしれません。
【後日追記】
8/15(土)の朝、Lemonade ServerのUpdateがあり v11.6.0 になりました。で、Gemma4:12Bを使って様子を見てみたところ、以前とは少し様子が違い、CPUはほとんど回らずGPUが100%で回り続けてくれるようになりました。やったね。
リリースノートを見てもgfx120xに関連するようなことは何も書いてなかったですが、「The llama.cpp ROCm backend now runs on AMD Instinct MI100, MI200, MI210, and MI250 GPUs on Linux.」なんてのがあって「ついでにgfx120x系も具合が良くなったんかな」と無根拠に妄想。
自分の環境条件を書いてなかったですが、GPU Driverは31.40.1を「--usecase=graphics,rocm,opencl --opencl=rocr --vulkan=radv --gfxversion=gfx1200」を指定してインストールしています。この時、Pytorchのバージョンが低くてインストールでエラーとなり、こちらよりPytorch 2.13.0/ROCm7.2を指定してインストール(アップデート?)した後、GPU Driverをインストールし直しました。何かよく分かった上でこういうことをした、というのではなくて、問題が出る都度あれこれ検索して対処方法を入手して…を繰り返してやっただけ。何か間違えてるかも…(特に Pytorch)