【実測】LM StudioでRadeonが「なぜか遅い」正体は内蔵GPU【RX 9070 XT・ランタイム2.37.0】

※当サイトはアフィリエイト広告(Amazonアソシエイト含む)を利用しています。

Radeon・ローカルAI

LM StudioでRadeonを使っていて、「エラーは出ないのに、なぜか異常に遅い」という状態になったことはないだろうか。

筆者は2回踏んだ。1回目は7月、VulkanとROCmを比べた記事で「Vulkanが内蔵GPUを掴む」と書いた。2回目は9月、今度はROCmのほうが内蔵GPUを掴んだ。同じマシン、同じ設定のつもりで、Gemma 4 E4Bが本来96 tok/s出るところ16.5 tok/sしか出なかった。

2回目で原因が分かった。ランタイム(ROCm / Vulkan)によって、GPUに振られる番号が入れ替わる。片方で正しい設定が、もう片方では内蔵GPUを指している。この記事はその確認方法と、ついでに測り直したランタイム2.23.1→2.37.0の速度をまとめる。

【結論】GPUの番号はランタイムごとに違う。切り替えたら必ず確認する

  • ROCmランタイムでは内蔵GPUが0番、RX 9070 XTが1番。Vulkanランタイムでは逆(筆者環境・2026年9月)
  • 間違った番号で動くと、エラーは出ずに速度だけ1/6になる(E4B: 96 → 16.5 tok/s)
  • 確認は lms runtime survey。ランタイムを切り替えるたびに見る
  • ランタイム2.23.1→2.37.0で、ROCmは生成+5%前後。12BのVulkanは2.23.1でもすでに崩れていた=原因はランタイムではなくドライバ

【症状】エラーは出ない。ただ遅い

Ryzenのデスクトップには、CPUに内蔵GPU(Radeon Graphics)が付いている。LM StudioはこれもGPUとして認識する。だからモデルを載せる先が2つある状態になっていて、設定を間違えると内蔵GPUのほうに載る。

内蔵GPUでもモデルは動く。動くから、エラーが出ない。ただし速度が桁で落ちる。9月の実測ではこうだった。

載った先Gemma 4 E4B の生成速度
RX 9070 XT(正しい)96.0 tok/s
内蔵GPU(間違い)16.5 tok/s

設定を1つ間違えるだけで1/6になる。「Radeonは遅い」と感じてローカルLLMを諦めた人の何割かは、これを踏んでいるのではないかと思う。

【原因】ROCmとVulkanで、GPUの番号が入れ替わる

LM Studioには、モデルを載せるGPUを番号で指定する設定がある。問題は、その番号がランタイムごとに違うことだ。

筆者の環境で lms runtime survey(LM StudioのCLI)を実行すると、こう出た。この出力はいま選択しているランタイムの分だけで、上の行が0番、次が1番である。lms runtime select でランタイムを切り替えてもう一度実行すると、並びが逆になる。

ランタイム0番1番
llama.cpp ROCm内蔵GPU(Radeon Graphics)RX 9070 XT
llama.cpp VulkanRX 9070 XT内蔵GPU

同じマシンなのに、並び順が逆。ROCmで「1番を使う」と設定すればRX 9070 XTに載るが、その設定のままVulkanに切り替えると内蔵GPUに載る。逆も同じである。

さらにややこしいことに、この並び順は7月と9月で変わっていた。7月はROCm側でRX 9070 XTが0番だった。間にAMDのドライバを更新しているので、おそらくそのせいだと思うが、確証は無い。つまり「一度合わせたから大丈夫」ではなく、ランタイムを変えたときとドライバを更新したときは、毎回見直す必要がある。

7月に「Vulkanが内蔵GPUを掴む」と書いたのも、9月に「ROCmが掴んだ」のも、原因はこれ1つだった。

【確認】lms runtime survey と、速度の桁

確認は2段階でいい。

1. lms runtime survey で並びを見る。LM StudioをインストールするとCLIの lms が入る。ターミナルで実行すると、選択中のランタイムでのGPUの一覧が出る(上から0番、1番)。RX 9070 XTが何番かを確認して、設定のGPUをそこに合わせる。

2. 生成速度の桁を見る。モデルを載せて何か生成させ、tok/sを見る。Gemma 4 E4Bなら、RX 9070 XTで100前後、内蔵GPUで15前後。桁が違うので、数字を覚えておけば一目で分かる。自分の環境で1回だけ正しい速度を測っておくと、以後の異常にすぐ気づける。

筆者はベンチをスクリプトから回しているので、lms runtime survey の出力から「9070」を含む行の番号を拾って自動で指定するようにした。GUIで使う人は、設定のHardware(ハードウェア)からGPUを選ぶ。内蔵GPUを無効にしてしまうのが、いちばん確実である。

【測り直し】ランタイム2.23.1→2.37.0で何が変わったか

ついでに、LM Studioのランタイムを7月と同じ 2.23.1 と、9月14日時点の最新 2.37.0 で測り直した(その後 2.41.0 が出ている。未計測)。どちらも正しいGPUに載せた状態で、Gemma 4の3モデル。生成は300トークン×4回、初回を捨てた中央値。

生成速度(tok/s)

モデルROCm 2.23.1ROCm 2.37.0Vulkan 2.23.1Vulkan 2.37.0
Gemma 4 E4B99.0103.9129.2134.6
Gemma 4 12B58.561.228.728.9
Gemma 4 26B(MoE)40.339.736.436.6

2.23.1から2.37.0で、ROCmは4〜5%上がった。E4BとVulkanも同じくらい。26Bは動かない。ランタイム更新の効果はあるが、小さい。

もう1つ大事なことがある。12BのVulkanは、2.23.1の時点ですでに28.7に崩れている。7月に測ったときはVulkanのほうが速かったモデルだ。同じランタイムで同じモデルが半分以下になっているので、原因はLM Studioのランタイムではなく、その間に更新したAMDドライバである。これはOllama側で切り分けた結論と一致する。

7月からの変化(E4B・ROCm)

時点ランタイム生成 tok/s
7月2.23.176.3
9月2.23.199.0
9月2.37.0103.9

同じランタイム2.23.1で、7月の76.3が9月に99.0になっている。ランタイムを変えていないのに3割上がった。これもドライバ側の変化で、Vulkanのdense崩壊と同じ更新で、ROCmのほうは底上げされている。ドライバの更新は、速くなる方向にも遅くなる方向にも効く。だから測り直す。

VulkanとROCm、どっちを選ぶか(LM Studio・2026年9月)

上の表をそのまま読めばいい。E4BのようなサイズならVulkan、12B以上はROCm。モデルの大きさで勝者が変わる。これはOllamaで出た結論と同じで、中身が同じllama.cppなので当然ではある。

なお、読み込み速度(プロンプト処理)もあわせて測ったが、LM Studioの値は最初の1文字が出るまでの時間から逆算したもので、Ollamaの値とは絶対値を直接比べられない。傾向だけ書くと、ROCmがVulkanの1.5〜3倍で、7月と変わらない。

【足りない時】内蔵GPUは切って、RX 9070 XTの16GBを全部使う

内蔵GPUを掴む問題を潰したうえで、それでも「16GBに載らない」となったら、次は別の話になる。26B級はVRAMから溢れて速度が落ちるし、32K以上のコンテキストはモデルによってVRAMを食う。そこから先の逃げ道はGemma 4の5サイズを測った記事に書いた。

GPUごと替えるなら、AMDとNVIDIAどっちを買うかの記事で用途別に切り分けてある。BTOで組むなら、GPUとメモリ64GBを先に決める。

\GPUを選んで見積もる/
OZgaming ゲーミングPC
業界最安 プロレベルのスペックがこの価格。OZgamingのゲーミングPCでライバルに差をつけよう。

【まとめ】遅いと思ったら、まずGPUの番号

お疲れ様でした。

  • LM Studioは内蔵GPUもGPUとして数える。間違うとエラー無しで速度が1/6
  • ROCmとVulkanでGPUの番号が入れ替わる。片方で正しい設定はもう片方で間違い
  • 並び順はドライバ更新でも変わる。ランタイムを変えたとき・ドライバを更新したときは lms runtime survey
  • 自分の環境の「正しい速度」を1回測って覚えておく。桁で分かる
  • ランタイム2.37.0はROCmで+5%。12BのVulkan崩壊はランタイム以前からで、ドライバが原因

「Radeonは遅い」と結論を出す前に、どのGPUで動いているかを1回見てほしい。筆者は2回それで時間を溶かした。

参考文献

コメント

タイトルとURLをコピーしました