今更?X99プラットフォームを使ってLLM/MiniMax H3サーバーを構築する

アプリケーション

PCケースがもったいなくて捨てられず、中にとりあえず入れっぱなしだったX99環境ですが、Intel Arc A770 16GBを組み合わせて、ローカルLLM用のサーバーとして復活させることにしました。ついでに、動画生成AI「MiniMax H3」が動くかも確かめてみました。

放置されていたX99プラットフォームについては、以下のレビューで触れていますので、ご参照くださいませ。

ASUS X99-SでBIOSを改造してResizable BARを有効にする方法
そうだ、AIサーバーを作ろう我が家でモニターアームを取り付けるためだけの存在となっていた、ThermaltakeのLEVEL 10。LEVEL 10は、Thermaltakeの創立10周年記念モデルとして2009年に発売されたPCケースです。デザインを担当したのはBMW Group Designwo…

いまからパーツを購入してAIサーバーを組むのであれば、X99を選ぶ理由はありません。CPUは2016年世代、PCI ExpressはGen3までの対応、消費電力も最近のPCと比べれば高めとデメリットが多すぎです。
ただ、既に手元に使える機材が余っているなら話は別です。元はサーバーでも使われているLGA2011-3なだけにメモリスロットは8本と多く、PCI Expressレーンも豊富、中古で潤沢に出回っているサーバー向けXEONも驚くほど安価。
そして、LLMの処理をGPUへオフロードしてしまえば、CPUの古さは致命的な問題にはならず、逆にPCIeスロットやメモリスロットの多さが、手持ち機材を生かすメリットにもなり得ます。

今回構築した環境では、Qwen3 8Bで44.6トークン/秒を記録。さらに、メインメモリ32GB、VRAM 16GBというギリギリの環境で、MiniMax H3による動画生成にも成功しました。
X99もまだまだ使おうと思えば現役…はさすがに厳しいですが、まだまだ粘れます。

今回構築したAIサーバーの構成

CPUとGPU以外はすべての余り物を再利用しています。

パーツモデル
マザーボードASUS X99-S
CPUIntel Xeon E5-2698 v4(20コア40スレッド)
GPUIntel Arc A770 16GB
メモリDDR4-2400 32GB
OSUbuntu Server 26.04 LTS

CPUですが、Xeon E5-2698 v4は20コア40スレッド、ベースクロック2.2GHz、最大3.6GHz、TDP 135WのBroadwell-EP世代の、LGA2011-3で使える最強のCPUです。CPUから40本のPCI Express 3.0レーンが出ており、GPUやNVMe SSD、ネットワークカードなどを複数搭載しやすいのがX99/Xeon E5環境の強みです。

発売当時の希望価格は3,226ドル(10年前の円相場で35万円ほど)という超高級CPUでしたが、いまではAliExpressなら5,000円台、国内中古でも10,000円台で買えてしまいます。10年前の憧れの20コアCPUが、今では中堅クラスのCPUクーラーより安価です。中古PCパーツ界の諸行無常ですね…。
元々このシステムにはCore i7-5930Kが載っていましたが、今回の復帰を機にXeon E5-2698 v4に入れ替えました。

GPUはintelのARC A770をチョイス。LLMの人気を受けVRAM搭載量が多いビデオカードの価格は暴騰しており、VRAM 16GBを搭載したビデオカードで中古で4万円台で購入可能なものとしては、AMDのRX 6800か、IntelのArc A770のどちらか、といった状況です。
普通はRX 6800を選ぶと思いますが、あえてIntel Arc A770をチョイスしてみました。だって、見た目格好いいんだもん。

いまさらX99を使う理由

単に、使わずに余っていたから

今回の理由の大半はこれ。身も蓋もないですね。

ケースだけを置いておくのもあれなので、中にX99プラットフォームで組んだ一式を入れたまま放置しておりました。

新しくマザーボード、CPU、メモリを買い揃えるなら、より新しいプラットフォームを選んだ方が性能も消費電力も有利です。しかし、ケース、電源、マザーボード、メモリ、SSDまで手元にあるなら、追加費用はGPUで済みます。
古いPCパーツを処分せず、用途を変えて第二の人生を与える。よく言えばリユースですが、実態はPCを自作している人によくある「PCが生えてくる」ってやつです。

枯れた環境なのでLinuxを構築しやすい

X99は登場から長い年月が経っており、Linux側の対応も十分に進んでいます。特殊な最新デバイスを除けば、マザーボード上のLAN、USB、SATAなどで大きく苦労する可能性は低めです。
Windows 11のような対応CPUの世代やTPM 2.0によるインストール要件もないため、Ubuntu Serverなら古いXeonでも普通に導入できますし、なによりもOSが無料なのでコストパフォーマンスは抜群です。

今回はLLMサーバーとして使いますので、GUIは不要(無駄にVRAMを消費するだけ)ということで、DesktopではなくServerを選んでいます。

CPUは爆安、メモリも安く入手可能

X99マザーボードは中古市場でも豊富に選べ、製品によっては1万円以下で見つかります。Xeon E5 v4も、当時の価格からは考えられないほど安くなりました。さすがにハイエンドの22コア/44スレッドのE5-2699 V4は2万円弱くらいしますが、1つ下の20コア/40スレッドのE5-2698 V4であれば先ほど書いたように最安で5000円台です。

高騰しまくっているメモリも、X99プラットフォームを使うのであれば安価に入手可能です。X99プラットフォームは8本のDIMMスロットを備えるマザーボードがほとんどで、安価に売られているDDR4 4GBモジュールでも8枚挿せば32GBになります。
遅めのDDR4-2133などのメモリであっても4枚装着すればクアッドチャンネルで動作しますし、そもそもXeonはDDR4-2400までしか対応していませんので高速なメモリは不要です。

ただし、AliExpressなどで売られている中国製X99マザーボードにはメモリスロットが4本の製品もあるため、購入前の確認は必要です。個人的には、AsusやGigabyteなどの大手メーカーの、程度の良い中古品を選ぶのが良いと思います。

PCI Expressレーンが豊富

E5-2698 v4はPCI Express 3.0を40レーン備えています。最近の一般向けCPUと比べてもレーン数に余裕があり、複数のGPUやPCI Express接続のNVMe SSD、10GbEカードなどを増設しやすい構成です。今回のようなAIサーバーではGPUが主役なので、物理スロットの本数とPCI Expressレーンの多さは大きな利点になります。

GPUへオフロードすればCPU性能の影響は比較的小さい

LLMのトークン生成速度はCPUよりもGPUとVRAMの影響を強く受けるので、モデル本体と演算処理をGPUへ十分にオフロードできるなら、10年前のCPUでも実用的な速度を狙えます。

もちろん、モデルの読み込み、プロンプト処理、GPUに載り切らないレイヤーの処理などではCPU性能も影響します。「CPUは何でもよい」という意味ではありませんが、LLMの利用においては、最新CPUへ交換する費用対効果は、GPUを強化する場合ほど大きくありません。

X99を使うデメリット・注意点

中古品のみ、ジャンクも多い

X99マザーボードやXeon E5 v4は基本的に中古品です。発売から10年前後が経過しているため、メモリスロットの接触不良、CPUソケットのピン曲がり、劣化した電解コンデンサなど、不具合を抱えているものも多いと思われます。

AliExpressなどで中国製の新品マザーボードも販売されていますが、X99チップセットは既に生産を終了していますので、中古製品から取り外したものを使っている場合もあるようで、あまりお勧めできません。
少し割高ですが、オークションであれば評価の高い出品者が出品している動作確認済のものを選ぶか、保証のある中古PCパーツショップから購入するなどの方法をお勧めします。

性能の割に消費電力が高い

E5-2698 v4のTDPは135Wです。CPUへ高い負荷をかければ、システム全体の消費電力はそれなりのものになります。
24時間稼働させるサーバーとして電気代まで含めて考えると、最新世代の省電力なCPUやGPUの方が有利です。余っている機材を活用して初期費用を抑える代わりに、ランニングコストは少々高くなるのがネック。

ちなみに、我が家のX99サーバーはArc A770アイドル時で94Wとなります。

Resizable BARは標準では使えない

Intel Arc AシリーズはResizable BARを有効にした環境で使うことが強く推奨されています。しかし、ASUS X99-Sの純正BIOSにはResizable BARの設定がありません。
そのため今回は、BIOSへReBarDxeを追加するなどの改造を行い、Resizable BARを有効化しました。手順は別記事の「ASUS X99-SでBIOSを改造してResizable BARを有効にする方法」で紹介しています。

BIOS改造に失敗するとマザーボードが起動しなくなる可能性があります。
X99とArc A770の組み合わせで最大のハードルは、Linuxではなく、むしろここかもしれません。

GPUはIntel Arc A770 16GBを選択

ローカルAI用途ではNVIDIA GeForceが定番です。CUDAの安定さ、豊富な対応アプリ、さらには情報も豊富で、動かすまでの苦労が少ないのは間違いありません。
しかし、その人気故GeForceは中古でも圧倒的に高いのがネック。VRAM 16GB以上を条件にすると、一気に価格が上がります。

ということで、比較的安く入手できる候補として残ったのが、AMD Radeon RX 6800とIntel Arc A770 16GBでした。
RX 6800は16GBのVRAMを搭載し、中古価格も安いため魅力的です。しかし、我が家のThermaltake Level 10は内部構造が特殊で、大型のRX 6800は収まりそうにありません。

そして何より、Intel Arcを一度使ってみたかった、という理由で今回はA770を選定しました。見た目格好いいですし。(ケースに入れれば見えなくなるけど)
使ったことのないGPUを古いX99へ載せ、さらにLinuxで動かす。安定だけを求めるなら避けるべき組み合わせですが、趣味のPCとしては実に楽しそう。というか自作の醍醐味ここにあり。
ということで、今回はArc A770 16GBを選びました。

Arc A770の主な仕様は以下です。

項目スペック
VRAMGDDR6 16GB
メモリバス幅256bit
メモリ帯域560GB/秒
TBP225W
PCI ExpressPCIe 4.0 x16

RX 6800のTBPは250W、メモリ帯域は512GB/秒ですので、A770は消費電力がわずかに低く、メモリ帯域は上回ります。発売日もRX 6800は2020年末、A770は2022年末と2年新しいです。
X99ではPCI Express 3.0接続になりますが、LLMのトークン生成中はVRAM内での処理が中心となるため、PCI Expressの世代差よりもVRAM容量とメモリ帯域の方が重要です。

環境構築

ハードウェアの準備ができたので、環境構築に移ります。

OSはUbuntu Server 26.04 LTSを使用

OSにはデスクトップ環境を持たないUbuntu Server 26.04 LTSを使用しました。
GUIがないため操作は基本的にSSHとコマンドラインとなりますので、CUIに慣れていないと少々身構える環境です。
そこで、今回はインストール直後にClaude Codeを導入し、それ以降の環境構築はほぼすべてをClaude Codeへ任せることにしました。

インストール時にSSHを有効にしておき、OSのインストールが終わったら、以下のコマンドを実行すればClaude Codeがインストール可能です。枯れたシステムだけあって、大抵のドライバは一発で入りますので、すぐにClaude Codeをインストールできるのはありがたいところ。

Bash
curl -fsSL https://claude.ai/install.sh | bash

インストール後にWindows環境からSSHで接続、claude codeを起動して認証すれば、ターミナル上から自然文で作業を依頼できます。Claudeの認証を行う際に超長いURLをブラウザで開いたりしますので、Windows環境などからSSHでログインしてセットアップを進めるのが便利です。
いやー、ここまでOSのセットアップが簡単だとは思いませんでした。素晴らしい…

DesktopエディションではなくServerエディションを使ったのは、画面描画に使われるVRAMを節約できるのがメリットです。
今回の環境では、16GBのうち約15.11GBをLLM用に利用できました。デスクトップ環境を導入してGPUから画面を出すと、構成や解像度によっては2GB前後減ることがあります。VRAMが16GBしかない環境では、この差は無視できません。

LLM環境もClaude Codeに構築してもらう

USBメモリからUbuntu Serverをインストールしたら、LLM環境の構築を行います。
Intel Arc A770でllama.cppを動かすには、ドライバ、Vulkan、ビルド環境、GPUオフロード、サーバー化など、いくつもの設定が必要です。
ひとつずつ検索しながら作業するのも面倒、どこかでバージョン違いや依存関係に引っ掛かるのがお約束で、なによりも時間がかかります。

そこで、ここでもAIに丸投げすることに。
Claude Codeに次のような内容で依頼しました。

Ubuntu Server 26.04上でIntel Arc A770 16GBを使い、llama.cppのVulkanバックエンドでGGUFモデルを実行できる環境を構築してください。GPUが正しく認識され、モデルがGPUへオフロードされていることを確認し、LAN内の別PCから利用できるサーバーとして起動してください。実行した内容と確認結果も最後にまとめてください。

上記を指示するだけでハードウェアの確認、必要なパッケージの確認、インストール、llama.cppのビルド、モデルの配置、起動テスト、Firewall設定まで一気に進めてくれます。
途中でエラーが出ても、そのログを読んで原因を調べ、別の方法を試してくれます。素晴らしいですね。

Linuxのコマンドをほとんど知らなくても、環境構築で詰まるたびに検索する必要がありません。
AIを動かすための環境をAIに作らせる。実に今どきらしい力技です。(cliが便利すぎるので、ClaudeまたはChatGPTの契約お勧め)
Windows環境に慣れているとLinuxのCUIでのセットアップはなかなか億劫なのですが、AIを使うと日本語で簡単に指示するだけであとはお任せで作業が完了するので、Linux環境構築のハードルが一気に下がります。

ただし、Claude Codeが提示・実行するコマンドは内容を確認してから許可した方が安全です。とくにディスク操作、ファイアウォール、外部公開、システムサービスの変更は、対象と影響を確認しておくことをおすすめします。

VRAM 16GBなら8GB前後のGGUFモデルが扱いやすい

VRAMが16GBあるからといって、16GBのモデルファイルをそのまま読み込めるわけではありません。

モデル本体のほかに、KVキャッシュ、計算用バッファ、コンテキスト処理などもVRAMを使用します。コンテキスト長を大きくするほどKVキャッシュも増えるため、モデルでVRAMを使い切るとRAMにあふれますので速度的にデメリットが生じます。

今回の環境では、ファイルサイズが8GB前後のGGUFモデルが扱いやすいと感じました。これならモデルをGPUへ載せたうえで、KVキャッシュなどに十分な余裕を残せます。
短いコンテキストだけを使うなら、もう少し大きなモデルも動かせます。しかし、安定してサーバー運用するのであれば「入るかどうか」ではなく「余裕を残して入るか」で選んだ方が安全です。

AIサーバーとしての性能はいかに?

Qwen3 8Bで44.6トークン/秒を達成

実際にllama.cpp+Vulcanで動かしたところ、Qwen3 8Bのトークン生成速度は44.6トークン/秒、Gemma 4のQ8量子化モデルでは34.83トークン/秒となりました。

モデル生成速度
Qwen3 8B44.6トークン/秒
Gemma 4 Q834.83トークン/秒

Ollamaを利用した場合は、それぞれ42.83トークン/秒、33.19トークン/秒でしたので、おおよそ4~5%ほどllama.cpp+Vulcanの方が高速です。

生成速度だけを見れば、今回のA770はRTX 3060 12GBとおおむね同等か少し上、RTX 4060 Ti 16GBよりも下という位置です。ただし、LLMの速度はモデル、量子化方式、コンテキスト長、バックエンド、ソフトウェアのバージョンで大きく変わります。厳密なGPU比較ではなく目安として見てください。

メモリ帯域が広いA770のメリット

Arc A770は256bitのメモリインターフェースを持ち、メモリ帯域は560GB/秒です。これはRTX 4070の504GB/秒、RX 6800の512GB/秒を上回ります。
LLMのトークン生成は、モデルの重みをVRAMから何度も読み出す処理の影響が大きいため、GPUの演算性能だけではなくメモリ帯域が重要です。
この点では、A770はかなりメリットがあると言えます。ただ、後述しますが成熟度がイマイチなのでメモリ帯域を生かし切れていない感があります。

たとえば、約5.6GBのモデルを1トークンごとに一度読み出すだけ、と極端に単純化すると、

560GB/s ÷ 5.6GB ≒ 100トークン/秒

が帯域から見た理論上限になります。

実測は44.6トークン/秒だったため、この単純計算に対する効率は約44.6%です。実際には各種バッファ、演算、同期、カーネル起動などが加わるので、この計算どおりの速度が出るわけではありません。

NVIDIA GPUと比べると10~20%ほど効率が低めなのは、今回使用したllama.cppのVulkanバックエンドにおけるIntel Arc向け最適化が、CUDAほど成熟していないことも大きく影響していると思われます。これは弱点である一方、ソフトウェアの改善によって今後さらに速くなる余地がある、とも考えられます。
成熟度という意味でも、やはりCUDAは強いです。

MiniMax H3も16GB VRAMで動作OK

LLMが動いたので、次は動画生成AIのMiniMax H3にも挑戦しました。

MiniMax H3は、テキスト、画像、動画、音声を入力として扱い、映像とステレオ音声をまとめて生成できるオープンウェイトの動画生成モデルです。ComfyUIはMiniMax H3を標準でサポートしており、Text to Video、Image to Video、Reference to Videoのワークフローが用意されています。

ただし、標準ワークフローをそのまま使うにはVRAMが足りません。そこで、Civitaiで公開されている次の低VRAM・低メモリ向けワークフローを利用しました。

A very generic workflow:Low VRAM 12GB/Low RAM 16GB

ワークフローのJSONをあらかじめダウンロードし、Claude Codeへ次のように依頼します。

Ubuntu Server 26.04にComfyUIをインストールし、Intel Arc A770 16GBでMiniMax H3を動かせるようにしてください。標準ワークフローではVRAMが足りないため、指定した低VRAM向けワークフローJSONを読み込み、A770で動くように必要な修正を行ってください。不足しているモデルとカスタムノードも確認し、正しいフォルダへダウンロードしてください。

これだけで、ComfyUIの導入、Arc A770向けの設定、ワークフローの調整、不足モデルの確認とダウンロードまで一気に進めてくれました。

私はStableDiffusion派なので、ComfyUIはどうも難解でよく解らないことだらけです。そんな私でも「ComfyUIを使ってMiniMax H3が動くようにして」と伝えただけで環境ができあがるのは素晴らしすぎです。
Linuxのコマンドを知らなくても、エラーログを読めなくても、AI側が状況を確認しながら自動的に構築してくれます。便利というより、少々反則に近いものを感じます。AIすげぇ…

864×480の動画を7分52秒で生成

低VRAM向けワークフローを使い、864×480ピクセルの動画を生成したところ、7分52秒で完了しました。
最新のハイエンドGPUと比べれば高速とは言えません。また、VRAMとメインメモリの制約があるため、解像度も低めに設定する必要があります。

それでも、メインメモリ32GB、VRAM 16GBの中古パーツ中心の環境で、MiniMax H3がローカル動作したことには少々感動しました。数年前なら考えられなかった処理を、2016年世代のCPUを積んだPCで実行しています。

CPUは古くても、GPUとソフトウェア次第で最新の生成AIを動かせる。まさに今回の構成を象徴する結果です。

4~5万円で買えるVRAM 16GBカードとしてA770は面白い

Arc A770最大の魅力は、なんといっても価格です。LLMでの利用、MiniMax H3などでの動画生成などでGPUの需要は極めて旺盛で、数年前のビデオカードの中古相場も爆上がりしています。そのような中、4~5万円前後で購入できるVRAM 16GBのビデオカードは貴重です。Radeon RX 6800の方が安く見つかることもありますが、カードが大型になりやすく、ケースとの相性を選びます。

一方のA770は、CUDA前提のアプリをそのまま使えない、ソフトウェアによっては設定に手間がかかる、Vulkanバックエンドの効率に改善の余地があるなど、万人向けとは言えません。
しかし、16GBのVRAM、560GB/秒のメモリ帯域、225WのTBPを備え、この価格でローカルLLMと動画生成AIの両方を動かせるのは魅力的です。

簡単・確実に動かしたいなら間違いなくGeForce一択。安めでVRAM16GBを狙うならRadeon RX 6800がお勧めですが。安価にVRAM容量を確保して遊びたいならArc A770、という選択肢も面白いと思います。

Thermaltake LEVEL10に組み込んだ、Arc A770。2009年発売のPCケースに、2014年発売のマザー、2022年発売のビデオカードという組み合わせ。

古いX99でも、LLMとMiniMax H3は動かせる

X99、E5-2698 v4、DDR4-2400 32GB、Intel Arc A770 16GBという構成でも、ローカルLLMとMiniMax H3の両方を動かすことができました。

Qwen3 8Bを使えば44.6トークン/秒とチャットや文章生成に使うには十分に実用的な速度です。MiniMax H3も、低VRAM向けワークフローを使えば864×480の動画を7分52秒で生成できました。
低解像度でしか生成できず、生成に時間がかかること、消費電力が高めであることは妥協点です。また、Arc A770をX99で使うにはResizable BARの有効化という大きな壁があります。

それでも、余っていた10年前のPCへ4~5万円のGPUを追加し、ローカルLLMと最新の動画生成AIを動かせるのであれば、遊び用のAIサーバーとしては十分に成功といえるかと思います。

AIサーバーがあると意外と便利

AIサーバーですが、基本的にはAPIを通じて他のPCからLLMを呼び出す使い方となります。LM Studioにnm-z/openai-compat-endpointプラグインを導入することで、別のPCにあるLLMを呼び出して使用出来ます。
また、自作アプリケーションからLLMを利用することも可能です。

割と便利なのが、MiniMax H3やStable DiffusionでプロンプトをAIサーバーのLLMを使用して作成すること。生成AIをインストールしているPCのGPUを使わずにLLMが使えるので、全力で生成を実行しながらLLMを併用する、という使い方が出来ます。
LLMであればuncensoredなモデルも多数ありますので、あんなことやこんなことも可能です。

というわけで、PCパーツを余らせているあなた、「AIで使うぞ!」という大義名分の元、VRAM 16GBのビデオカードを買ってAIサーバーとして復活させるのお勧めです。

コメント

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