普通の PC に GPU 5枚繋いで Llama 70b を動かしてみる

最近は一般の PC でも LLM (Large Language Model) を走らせることができるようになっています。いわゆる ChatGPU のローカル版で、自分の PC 上で動くため API 利用料金などを気にせずに使うことが可能です。ただし動作可能な LLM の規模はビデオカードの VRAM 容量に依存します。

Ollama は複数の GPU に対応しており、前回 VRAM 8GB の GeForce GTX でも十分戦力になることがわかったので更にいろいろと台数をやしてみました。

結果、llama 70b のモデルを GPU 上で走らせるために必要だったビデオカードは 5台で合計 VRAM は 56GB、最終的な速度は 4 tps。CPU よりは数倍速いですが、少々実用には厳しいようです。

使用したビデオカードは以下の通りです。

70b の生成速度のまとめ

ビデオカードの種類や枚数毎の llama 70b の生成速度の違いを表にまとめました。下に行くほどビデオカードの台数が増えています。

VRAM合計GPU / CPU必要RAMCPUの割合GPUの割合token/s
なしRyzen 7 9700X46GB100%1.02
8GBRyzen 7 9700X
GTX 1080
47GB83%17%1.32
8GBRyzen 7 9700X
RX Vega 64
47GB83%17%1.34
16GB (2台)Ryzen 7 9700X
GTX 1080
GTX 1070
48GB67%33%1.45
16GB (2台)Ryzen 7 9700X
RX Vega 64
RX Vega 56
48GB65%35%1.55
32GB (2台)Ryzen 9 3950X
RTX 4060Ti
RTX 4060Ti
47GB32%68%2.22
40GB (3台)Ryzen 9 3950X
RTX 4060Ti
RTX 4060Ti
RTX 2070S
49GB17%83%3.08
48GB (4台)Ryzen 9 3950X
RTX 4060Ti
RTX 4060Ti
RTX 2070S
GTX 1080
51GB5%95%3.94
56GB (5台)RTX 4060Ti
RTX 4060Ti
RTX 2070S
GTX 1080
GTX 1070
55GB100%4.09
llama 70b の推論速度

表にある必要 RAM 及び CPU/GPU の割合はそれぞれ実行時に ollama ps コマンドで表示される数値です。複数のビデオカードに分割できるとはいえ、台数が増えれば増えるほど必要 RAM が増えており、メモリ効率も悪くなっていることがわかります。

枚数を増やすほど消費メモリが増え、ますますビデオカードを増やす必要が生じてしまいます。5台使用時の必要メモリは CPU 単体のみの場合と比べて 10GB ほど増えおりあまり効率はよくありません。やはり VRAM は多ければ多い方が良いです。

動作環境など

マザー上には PCIe x16 スロットが 2つしか無いのでそれ以外の GPU は外付けです。SSD 用の M.2 (PCIe x4) とマザーボード上の PCIe x1 スロットを利用して外部に 3台のビデオカードを繋いでいます。

↓動作時の様子。一番上が MINISFORUM DEG1 (OCulink 接続) に載った GeForce RTX 2070 Super、床に立ててあるのが PCIe x1 接続の GeForce GTX 1080 と GTX 1070。

前回Proxmox 上の VM にパススルーしていましたが、少しでも性能を上げるために今回は SSD に直接 Ubuntu をインストールしています。M.2 スロットはすべて GPU の接続に使用したため SATA SSD を使用しています。

前回は VM だったので RADEON RX Vega 64/56 をパススルーできなかったのですが、OS を直接インストールしたことで Vega でも動くようになりました。Ollama が対応しているのは Vega 56/64 以降なので残念ながら RADEON RX 480 (Polalis) は使用できませんでした。とりあえず手持ちの RADEON でも複数台使用した動作を確認することができました。

GPU 台数とモデルサイズの関係

複数台 GPU を使用した場合に VRAM に 100% 載るモデルサイズの目安は以下のとおりです。

VRAM の組み合わせ合計 VRAM 容量モデルサイズ(Q4)モデルの例
8GB + 8GB16GB14bphi4:14b など
8GB + 8GB + 8GB24GB27bgemma2:27b など
16GB + 8GB24GB32bqwen2.5:32b など

組み合わせの例。

VRAM の組み合わせ合計 VRAM 容量モデルtoken/s
GeForce GTX 1080
GeForce GTX 1070
16GBphi4:14b16.19
RADEON RX Vega 64
RADEON RX Vega 56
16GBphi4:14b22.71
GeForce RTX 2070 Super
GeForce GTX 1080
GeForce GTX 1070
24GBgemma2:27b12.89
GeForce RTX 2070 Super
GeForce RTX 4060Ti
24GBqwen2.5:32b13.56

より詳しい数値は以下のページにまとめています。

関連ページ