ただLLMが面白いからという理由だけで推論用環境を増築しました。
この記事はOMEN 40Lの原形が残ってない話の続きです。
システム構成
MB: ASUS TUF Gaming H670 Plus WiFi D4
RAM: DDR4-3200 16GB x2 + 32GB x2
SSD: 2TB x2, 1TB, 4TB
GPU: Gainward Phantom GeForce RTX4090 24GB
Extension: ASUS ThunderboltEX4
eGPU: Razer Core X
デスクトップマシンなのにeGPUの構成がユニーク?だと思います。
A6000をeGPUにしてるのは自分でもおかしいと思ってます。
パーツ選定
MB ASUS TUF Gaming H670 Plus WiFi D4
購入時の2023年前半の時点で、2万円台かつM.2スロットが4つを達成できるのはこれくらいしかありませんでした。LLMの容量えげつないので。
CPU i7-12700K
流用。元々OMEN 40Lだった名残り。
LLMにCPUはあまり必要ないため、i7-12700Kで足りている、と思ってます。
RAM DDR4-3200 96GB
コスト的にも安定性的にもJEDEC準拠のDDR4。足りていないので本当は128GBにしたい。
OMEN時代の名残り16GBx2にcrucial 32GBx2です。
SSD HIKSEMI Future 2TB, Samsung 980 Pro 2TB, WD SN810 1TB, Samsung 870 4TB
LLMはとにかく膨大なSSD容量を食う上に、ロード時やモデル変換時などは読み込み速度、書き込み速度も必要なので高性能なSSDが必要です。SATAの870は倉庫です。
GPU Gainward Phantom GeForce RTX 4090
2023/01の時点で最安だったモデル。3.5スロットで大きすぎるので少し後悔がある。
RTX4090は非常に省電力で高性能なので、使い道があるのであれば非常に良い。
拡張カード ASUS Thunderboltex4, eGPU Razer Core X
元々面白いからRazer Core Xは持っていました。
ASUSのIntel用マザーは多くがThunderboltヘッダーを備えているのでThunderboltex4カードを搭載できます。
TUFのマザーには2枚目に2スロット占有グラフィックカードを挿せるようなスロットは元からない上、仮にあったとしても、3.5スロット占有のRTX4090があると2枚目は入るところがケース内に物理的にないため外に出しました。RTX4090でかすぎ。
eGPUは相性問題や原因不明の挙動との戦いなので頑張りましょう。
GPU NVIDIA RTX A6000
Ampare世代のプロフェッショナル用グラフィックカード。VRAM 48GB。性能的にはRTX3090相当。GPU 2つでVRAM 72GBを実現するには必要なパーツでした。
Xを見ている限り、RTX3090x2のほうがRTX A6000x1よりも遥かにパフォーマンスが良いため(1枚と2枚の比較なので当たり前といえばそう)、システムに繋げられてスペースに収まるならば、コスパはRTX3090を並べるほうが遥かに良いと思います。
困ったこと
ブートのバグ
何故かわからないのですが、RTX4090とRTX A6000が両方とも接続されているとシステムがブートに失敗します(マザーボードのVGAエラーで止まるためOSが起動しない)。これはeGPUは関係なくて、PCIeに直接繋いでも起こります。
幸い?eGPUだとオンオフが容易な上、電源がついている状態でも抜き差しできるのがTBの仕様なので、起動してから接続すれば問題は起きません。
この2つ以外の組み合わせ(たとえば、RTX3060とRTX A6000)であれば繋ぎっぱなしでも起動できるので本当に謎です。
RTX4090のデカさと電力
RTX4090は外付けできません。Razer Core Xに3スロット以上のボードは入らず、電源も足りないためです。
かと言ってケース内にあるともう他のスペースが全くありません。
結果RTX A6000が外に追い出されました。
ドライバ
GdForceのドライバとRTX/Quadroのドライバは別物として提供されており、共存の場合どうすればよいのかよくわかりませんでした。
なんとかなるやろとGeForce GameReadyドライバのまま繋ぎましたが、普通に両方認識します。問題は起きていないのでこれでよいのだと思います。
その他
PCIeの帯域について
「eGPUは性能が下がるのでもったいない」とよく言われますが、あまりそうは思っていません。
まず第一として、コンシューマー向けのマザーボードでPCIe x16が2つ以上あるマザーボードはおそらくありません。(x16とx8があるものはZ790/B670にあります。)そのため、端からマルチGPUを前提としている時点で帯域は確実に足りません。XeonとかThreadripperであれば大量のPCIeレーンを確保できますが、非常に高価であるため、その予算でRTX3090を増やす方が効率が良いです。
2つめに、性能低下は主にレイテンシの増加によるゲームのフレームレート低下です。一度計算し始めたらGPUのみで処理が進む機械学習では影響は少ないです。実際A6000を両方に繋いで実験しましたが、直に繋いでもeGPUでもLLMの推論速度に差はありません。当然ですが、RTX4090があるのにRTX A6000でゲームはしません。
コスパ
考えたら負け。そもそも一番コスパが良いのはchatGPT Plusでは?