24GBのVRAMで70Bモデルを動かすにはQ4量子化が必須。でも、量子化すると明らかに賢さが落ちる。じゃあGPUを2枚刺せばいいじゃないか——その発想で、僕はRTX 3090を2枚挿しにした。
結果から言うと、物理的にもソフト的にも地獄だった。でも動いたときの感動は格別。Q8量子化でLlama 3 70Bがヌルヌル動く。ChatGPTに匹敵する回答がローカルマシンから返ってくる。
マルチGPUに必要なもの:
- 物理スペース — GPU2枚が入るPCケース。普通のミドルタワーには入らない。フルタワー推奨。
- 電源 — 3090 1枚で350W。2枚で700W。CPU等も考えると最低1200W。僕は1600Wにした。
- 冷却 — GPU2枚がくっついてると上のカードが窒息する。ブロワーファン型GPUか水冷が現実的。
- マザーボード — PCIe x16が2本以上あること。x8でも速度はあまり変わらない。
- NVLinkブリッジ(オプション)— 3090はNVLink対応。2枚のメモリをプールして48GBとして扱える。VRAMの壁が消える。中古で$100くらい。
ソフトウェア面:
- llama.cpp — マルチGPU対応済み。`-ngl 999` ですべてのレイヤーをGPUにオフロード。自動で分割してくれる。
- vLLM — tensor_parallel_size=2で2枚使える。
- Ollama — 現時点ではマルチGPU非対応。今後に期待。
実際の体感。RTX 3090×2でLlama 3 70B Q8_K_Mを動かすと:
- 推論速度:20 tok/s(快適!)
- VRAM使用:約44GB(各GPU 22GBずつ)
- 消費電力:合計約650W(電気代が地味に痛い)
正直、個人でマルチGPUは「沼」だ。でも70B Q8が自宅で動く快感は何物にも代えがたい。やるなら覚悟して。