GeForce だけでなく RADEON でもビデオカードを複数台使ってローカル LLM を走らせてみました。自分だけの Chat AI として使えますし、もちろんパラメータ数が同じなら蒸留版 DeepSeek R1 も動きます。
インストール手順
RADEON Vega 64/56 は VM への GPU パススルーができないこともあり、PC には Linux を直接インストールしています。
- RADEON を複数枚差した PC に Ubuntu 24.04 をネイティブインストール
- 通常の Desktop 版を最小インストール
- ログインして OS の更新
sudo apt update; sudo apt upgrade -y
- ollama の Linux 版インストーラーを公式の手順に従い実行
curl -fsSL https://ollama.com/install.sh | sh
- テストするためののモデルのダウンロード
ollama pull llama3.3:70b
ollama pull qwen2.5:32b
ollama pull gemma2:27b
ollama pull phi4:14b
ollama pull gemma2:9b
ollama pull gemma2:2b
- 実行
- 例:
ollama run gemma2:27b
- 例:
特にドライバなどのインストールは不要で、ollama のインストールだけで GPU が認識されます。ただし使用可能な GPU は GCN の場合 Vega 56/64 以降、RDNA2 の場合は RX6800 以上、RDNA3 は RX7600 以上となります。APU は含まれません。
RADEON の推論速度の比較 (27b)
以下は gemma2 27b の結果です。token/s の数値が大きいほど高速に出力できることを意味しています。VRAM 8GB でもビデオカード 3枚使うことで GPU が 100%、14.55 token/s と CPU の 5.7倍の速度で実行できるようになりました。
VRAM合計 | GPU / CPU | 必要RAM | GPUの割合 | token/s |
---|---|---|---|---|
なし | Ryzen 9 3950X | 18GB | 0% | 2.54 |
8GB | Ryzen 9 3950X RX 7600 | 18GB | 45% | 3.52 |
8GB | Ryzen 7 9700XX RX Vega 64 | 18GB | 45% | 4.36 |
16GB (2台) | Ryzen 9 3950X RX 7600 RX Vega 64 | 21GB | 78% | 6.00 |
16GB (2台) | Ryzen 7 9700X RX Vega 64 RX Vega 56 | 21GB | 79% | 7.45 |
24GB (3台) | Ryzen 9 3950X RX 7600 RX Vega 64 RX Vega 56 | 23GB | 100% | 14.55 |
RADEON RX7600 (RDNA3) と Vega 64/56 (GCN5) の組み合わせでもきちんと動作しています。GeForce と同じように、異なる世代の混在でも複数の GPU を認識し、マルチ GPU のローカル LLM 推論に使えることがわかりました。
マザーボード上には PCIe x16 スロットが 2つしか無いので、ビデオカードの 3枚目は外部接続です。SSD 用の M.2 スロットに OCulink 変換カードを差し込み、OCulink ケーブル経由で MINISFORUM の DEG1 に接続しています。
RADEON の推論速度の比較 (14b)
14b の結果です。こちらは 8GB のビデオカード 2枚で VRAM に載っています。
VRAM合計 | GPU / CPU | 必要RAM | GPUの割合 | token/s |
---|---|---|---|---|
なし | Ryzen 9 3950X | 18GB | 0% | 4.63 |
8GB | Ryzen 9 3950X RX 7600 | 10GB | 82% | 11.43 |
8GB | Ryzen 7 9700XX RX Vega 64 | 18GB | 82% | 13.97 |
16GB (2台) | Ryzen 9 3950X RX 7600 RX Vega 64 | 14GB | 100% | 18.00 |
16GB (2台) | Ryzen 7 9700X RX Vega 64 RX Vega 56 | 14GB | 100% | 22.71 |
テスト時の PC が異なるので公平な比較とは言えませんが、Vega 64/56 は古い GPU ながらメモリが高速なので RX7600 よりも LLM の推論速度が速いようです。以下は今回使用した GPU のスペックです。
GPU | Arch | sp | fp32 Gflops | VRAM | mem b/w |
---|---|---|---|---|---|
RX 7600 | RDNA3 | 2048 sp | 21750 | 8GB | 288 GB/s |
RX 6400 | RDNA2 | 768 sp | 3565 | 4GB | 128 GB/s |
RX Vega 64 | GCN5 | 4096 sp | 12665 | 8GB | 484 GB/s |
RX Vega 56 | GCN5 | 3584 sp | 10544 | 8GB | 410 GB/s |
より多くのモデルの結果及び GeForce 含めた結果は以下のページにまとめています。
RADEON RX 6400 (6500XT) でも LLM を使えるようにする
RADEON RX 6400 は RDNA2 世代の下位グレードの GPU です。VRAM 4GB に 12CU 768sp と性能もかなり控えめで、APU 内蔵の GPU に近いスペックです。そのかわり補助電源不要で Low Profile PCI 版のビデオカードも存在します。
公式でも ROCm には非対応ですが、ollama のドキュメントには対応方法が書いてあるので試してみました。なおドキュメント(以下のリンク)には 2025/02/15 現在 RX 5400 と書かれていますが、gfx1034 のことを差しているので RX 6400 (または 6500XT) の間違いだと思われます。
方法: ollama の環境変数 HSA_OVERRIDE_GFX_VERSION に “10.3.0” を設定します。
- sudo systemctl edit ollama.service
- 使用するエディタを指定したい場合は以下のようにする
- sudo EDITOR=vi systemctl edit ollama.service
- エディタが起動したら 3行目からの空行に以下の 2行を挿入する
- [Service]
- Environment=”HSA_OVERRIDE_GFX_VERSION=10.3.0″
- 保存して終了したら以下のコマンドを実行する
- sudo systemctl daemon-reload
- sudo systemctl restart ollama
この設定で RX 6400 でも GPU を使って走らせることができるようになりました。VRAM が 4GB しかないので限界はありますが、小さいモデル限定なら CPU よりは速度が出ています。ただし VRAM 容量や速度を考えると使用できるのは 7b くらいまでになるかと思います。
また同じ世代の GPU 同士に限りますが RX 6400 を複数台使用した場合でもきちんと動作しました。ドキュメントには “HSA_OVERRIDE_GFX_VERSION_番号=10.3.0” のように、環境変数名にデバイス番号を指定することで異なる世代の RADEON を組み合わせられるように記載されていますが、残念ながらうまく動きませんでした。
RX 6400 による推論時間は以下のとおりです。2枚使用した場合と CPU のみの結果も載せています。
model | RX6400 x2 (合計 8GB) token/s | RX6400 (4GB) Token/s | CPUのみ Token/s |
---|---|---|---|
llama3.3:70b | 1.05 (16%) | 1.03 (8%) | 1.01 |
qwen2.5:32b | 2.42 (34%) | 2.29 (17%) | 2.16 |
gemma2:27b | 2.87 (38%) | 2.70 (21%) | 2.54 |
phi4:14b | 6.94 (72%) | 5.60 (39%) | 4.63 |
gemma2:9b | 11.70 (85%) | 8.52 (51%) | 6.94 |
qwen2.5:7b | 18.52 (100%) | 13.05 (69%) | 9.27 |
gemma2:2b | 40.60 (100%) | 46.33 (100%) | 19.73 |