blueqat news
量子コンピュータ関連銘柄 更新: 10/12 12:45(日本時間)
%は前日比・グラフは直近10営業日の推移 — 株価とニュースの突き合わせ / 業界の関係図

Photo: Arseny Togulev / Unsplash

AI

96GBのGPUで320Bを丸ごと動かす―4層逃がすだけで速度は半分

要約

VRAM96GBのGPUなら、320B級のモデルを丸ごと載せて毎秒67トークンで動かせます。しかし、ほんの少しVRAMが足りずにエキスパート4層をCPUへ逃がすと、速度は半分以下になり、VRAMは1.3GiBしか減りません。「削って詰め込む」より「余裕を持って載る構成」を選ぶべきです。

RTX 3090でLLMを実測―毎秒何トークンあれば読む速さに足りるかでは24GBのGPUで176Bのモデルが毎秒5トークンでした。VRAMに載らずGPUとCPUで分担させるとき、速度を決めるのはCPUでは、計算をCPUへ逃がした瞬間にGPUの新しさが効かなくなることを確かめました。

どちらも「モデルがVRAMに収まらない」ことが前提の話です。今回は収まる場合を測りました。VRAM 96GBのGPUを使い、300B級のモデルをCPUに1層も逃がさずに動かしています。数字はすべて当サイトで測ったものです。

96GBのGPUで大きなモデルを動かしたときの生成速度。上はGLM-5.3-Flashで逃がす層数を変えた結果、下は同じモデルを3枚のカードで動かした結果。
96GBのGPUで大きなモデルを動かしたときの生成速度。上はGLM-5.3-Flashで逃がす層数を変えた結果、下は同じモデルを3枚のカードで動かした結果。

測った環境

項目内容
GPUNVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition
VRAM97,887 MiB(約96GB)
ホストRAM1,512GB
実行系llama.cpp(CUDA 12.8、sm_120向けに自前でビルド)
測り方llama-bench(プロンプト512、生成128、3回)

300B級が丸ごと載る

単位は毎秒トークン数(1秒間に作れるトークンの数)。多いほど速い。

モデル総パラメータファイル生成プロンプト処理VRAM最大
Qwen3.8-Flash-Next(3ビット)176.94 B83.80 GiB79.592416.9957.6 GiB
DeepSeek-V4-Flash-0731(1.75ビット)284.33 B80.93 GiB68.401217.8281.7 GiB
GLM-5.3-Flash(1.75ビット)320.76 B90.87 GiB66.97921.6489.2 GiB

320Bのモデルが毎秒67トークンです。24GBのGPUでは176Bですら4.92でした。

ひとつ、当サイトの見立てが外れた点を書いておきます。GLM-5.3-Flashの配布ファイルは97.6GBで、96GBのGPUには入らないと予想していました。実際には入りました。VRAM使用量の最大は89.2 GiBです。配布ファイルの容量が、そのままVRAM使用量になるわけではありません。

4層逃がすだけで、半分以下になる

ここが今回いちばん実用に効く結果です。GLM-5.3-Flashで、CPUへ逃がすエキスパートの層数を変えました。

構成生成プロンプト処理VRAM最大
全部GPU66.97921.6489.2 GiB
エキスパート4層をCPUへ31.28782.1687.9 GiB
エキスパート8層をCPUへ23.27528.9280.5 GiB
エキスパート16層をCPUへ15.01324.3764.7 GiB

4層逃がしただけで、66.97が31.28になります。半分以下です。そしてそのときVRAMは89.2から87.9 GiBへ、1.3 GiBしか減っていません。

つまり、ほんのわずかVRAMが足りないだけで、速度は半分になります。「あと2GBあれば全部載るのに」という状態が、いちばん割に合いません。機材を選ぶときは、ぎりぎり載る構成ではなく、余裕を持って載る構成を選ぶべきだ、ということになります。

DeepSeek-V4-Flashではもっと急でした。16層逃がすと68.40から3.93へ、17分の1です。モデルが大きいほど1層あたりの重みが重くなるためと考えられます。

同じモデルを3枚のカードで追う

Qwen3.8-Flash-Nextを、3回の測定を通して同じ条件で比べられます。

カードVRAM量子化生成
RTX 309024GB1.75ビット4.92
RTX 509032GB1.75ビット8.50
RTX PRO 600096GB3ビット79.59

粗く削って24GBに詰め込むより、精度を上げたまま96GBに載せるほうが16倍速く、しかも品質は上です。

VRAMに載らずGPUとCPUで分担させるとき、速度を決めるのはCPUで「1.75ビットと4ビットで速度はほとんど変わらなかった」と書きました。容量を減らす意味はメモリに載せるためであって、速度のためではない、という話です。今回はその裏返しで、載せられるなら削らないほうがよいことがはっきりしました。

資料に書かれていた挙動を、実物で確認した

Qwen3.8-Flash-Nextだけ、少し変わった結果が出ています。ファイルは83.80 GiBあるのに、VRAM使用量は57.6 GiBでした。すべてGPUに載せる指定をしているにもかかわらず、26 GiB分が載っていません。

これはMoEと量子化でLLMの必要メモリが変化、VRAMとホストRAMを分けて見る必要にで触れた、51BのN-gram埋め込みだと考えられます。あの記事ではvLLMの公式レシピが「この部分をホストRAMへ非同期でオフロードする前提になっている」と資料から書きました。llama.cppでも同じことが起きているように見えます。資料で読んだ挙動を、実物で裏づけられたことになります。

そしてこの構成が3モデルの中でいちばん速く、VRAMの余裕も最大でした。逃がすべき部分を選んで逃がせば、速度を落とさずに容量を空けられる、ということです。今回測った「エキスパートを層ごとに逃がす」やり方とは、質が違います。

動かすまでに越える壁

3つのモデルは、実行系の対応状況がそれぞれ違いました。

モデルllama.cpp の対応
DeepSeek-V4-Flash-0731本流でそのまま動く
Qwen3.8-Flash-Next本流に無し。Unslothの未マージPR(#27742)が要る
GLM-5.3-Flash本流に無し。PRが3本競合して未マージ。Unslothは#27754を採用

当サイトでは本流のソースを直接引いて、この3つの名前が入っているかを確認しました。そのうえでllama.cppを3種類ビルドし分けています。GLM-5.3-Flashは公式重みの公開翌日にGGUF版が出ていますが、本流に取り込まれるまでは、誰かのフォークを信じて使うことになります。

なおRTX PRO 6000はBlackwellという世代で、ビルドにCUDA 12.8以上と、GPUの型番の指定が要ります。ここは前回と同じです。

まとめ

VRAMに全部載るなら、300B級でも毎秒67トークン出ます。読む速さのおよそ10倍以上で、待たされる感覚はありません。

一方で、ほんの少し足りないのがいちばん悪いという結果になりました。4層逃がすだけで速度は半分以下、そのときVRAMは1.3 GiBしか浮きません。「削って詰め込む」より「載る大きさを選ぶ」ほうが、速度でも品質でも有利です。

必要なメモリの考え方についてはMoEと量子化でLLMの必要メモリが変化、VRAMとホストRAMを分けて見る必要に、毎秒何トークンあれば読む速さに足りるかについてはRTX 3090でLLMを実測―毎秒何トークンあれば読む速さに足りるかもあわせてご覧ください。

続きはメールでも受け取れます

新着記事のまとめを、毎日・週1回・月1回から選んでお届けします。 対談と教えて先生の続きも読めるようになります。登録も閲覧も無料です。

ログインしてメール配信を設定