VRAM

概要

VRAM(Video Random Access Memory)は、GPU(Graphics Processing Unit)に搭載された専用メモリのことです。ローカルLLM(大規模言語モデル)の運用において、最も重要なハードウェア要素の一つです。

VRAMの容量により、読み込み可能なAIモデルのサイズが決まり、処理速度や実行可能なバッチサイズにも直接影響します。CPUが使うメインメモリ(システムRAM)と異なり、VRAMはGPUチップの直近に配置され、桁違いに高いメモリ帯域幅(GDDR6Xで1TB/s前後)を持つのが特徴です。この帯域幅の広さこそが、LLM推論を「メインメモリ+CPUだけ」で行うより「VRAM+GPU」で行う方が大幅に高速になる理由です。

OllamaLM Studiollama.cppといったローカルLLM実行ツールが普及したことで、個人開発者や中小企業のエンジニアがGPU1枚で数十億〜数百億パラメータのモデルを手元で動かせるようになりました。その際に最初にぶつかる制約が「手持ちのGPUのVRAM容量で、目的のモデルが動くかどうか」であり、VRAMはローカルLLM運用における事実上のボトルネックリソースです。

仕組み・詳細解説

モデルの重みパラメータとVRAM専有の仕組み

LLMを実行する際、モデルファイル(重みパラメータ)はロード時にVRAM上に展開され、推論のたびにGPUのコアがそこへアクセスして行列演算を行います。パラメータ数とビット精度(量子化レベル)によって必要なVRAM量が決まり、大まかには次の式で見積もれます。

精度別VRAM使用量の目安(パラメータ数あたり)

  • FP32(32bit浮動小数点): パラメータ数 × 4 bytes
  • FP16 / BF16(16bit浮動小数点): パラメータ数 × 2 bytes
  • INT8(8bit整数): パラメータ数 × 1 byte
  • INT4(4bit整数、Q4_K_M等): パラメータ数 × 0.5 bytes程度

実際にはこれに加えて、後述するKVキャッシュ・アクティベーション・CUDAコンテキストのオーバーヘッドとして数百MB〜数GBが上乗せされるため、計算値より1〜2割多めにVRAMを見込んでおくのが実務上の定石です。

メモリ帯域幅と推論速度(トークン/秒)の関係

LLMの自己回帰的なトークン生成(1トークンずつ順番に生成する処理)は、GPUの計算力そのものよりも「VRAMからモデルの重みを読み出す速度=メモリ帯域幅」に律速される「メモリバウンド」な処理であることが知られています。ごく単純化すると、理論上の生成速度は次のように見積もれます。

理論上のトークン/秒 ≈ メモリ帯域幅 ÷ モデルサイズ(バイト)

  • RTX 4090(帯域幅 約1,008GB/s)で7B・Q4_K_M(約4.1GB)を動かす場合、理論値は240トークン/秒前後だが、実際にはオーバーヘッドで80〜120トークン/秒程度に落ち着くことが多い
  • RTX 3060(帯域幅 約360GB/s)で同じモデルを動かす場合、理論値は約88トークン/秒、実測は30〜50トークン/秒程度が目安
  • 70B・Q4_K_M(約40GB)をVRAM内に収めて動かせるGPUであれば、帯域幅次第で数トークン/秒〜十数トークン/秒程度

つまり「VRAM容量が足りているか」だけでなく「VRAMの帯域幅が十分に速いか」も体感速度を大きく左右します。同じ24GBのVRAMでも、GDDR6Xを積むRTX 4090とGDDR6のRTX 4080無印では帯域幅が異なり、生成速度に差が出ます。

量子化フォーマット(GGUF・GPTQ・AWQ・EXL2)とVRAM使用量

量子化はVRAM使用量を左右する最大の要因であり、フォーマットによって得意な実行環境が異なります。

フォーマット 主な対応ツール 特徴
GGUF llama.cpp、Ollama、LM Studio CPU(RAM)とGPU(VRAM)へ層単位で分割配置できる。VRAMが足りない環境でも一部をCPU側にオフロードして動かせる
GPTQ text-generation-webui、ExLlamaV2 GPU上での実行を前提とした量子化。VRAMに全体を載せられる場合に高速
AWQ vLLM、text-generation-webui 重要な重みを保護しつつ量子化する手法で、同ビット数ならGPTQより精度劣化が少ない傾向
EXL2 ExLlamaV2 ビット数を小数点単位(例: 4.65bit)で細かく指定でき、VRAM容量ギリギリまで最適化しやすい

Ollama・LM Studioで手軽に試す場合はGGUF一択、VRAM容量に対してモデルサイズを極限までチューニングしたい上級者はEXL2やAWQを検討する、という住み分けが実務では一般的です。

KVキャッシュとコンテキスト長によるVRAM追加消費

会話履歴や長文プロンプトを扱う際、モデルは各トークンのAttention計算結果を「KVキャッシュ」としてVRAM上に保持し続けます。このキャッシュはコンテキスト長(扱えるトークン数)にほぼ比例して増加するため、同じモデルでもコンテキスト長を32Kや128Kまで伸ばすと、重み本体とは別に数百MB〜数GB単位でVRAM使用量が追加されます。長いコンテキストを扱いたい場合は、モデルの重みだけでなくKVキャッシュ分の余裕も見込んでVRAM容量を選ぶ必要があります。

具体例・ユースケース

実際にVRAM容量ごとにどのモデル・量子化・ツールの組み合わせが現実的かを整理すると、次のようになります(数値はいずれも目安)。

VRAM容量 代表GPU 現実的なモデル/量子化 生成速度目安
8GB RTX 3070、RTX 4060 Ti 7B〜8B・Q4_K_M(GGUF) 30〜50 トークン/秒程度
12GB RTX 3060、RTX 4070 7B〜8B・Q5〜Q8、13B・Q4_K_M 40〜70 トークン/秒程度
16GB RTX 4080、RTX 4070 Ti Super 13B・FP16、30B級・Q4_K_M 30〜60 トークン/秒程度
24GB RTX 4090、RTX 3090 30B級・FP16/INT8、70B・Q2〜Q3の一部オフロード 80〜120 トークン/秒程度(30B級)
48GB(2枚構成) RTX 3090 ×2 70B・Q4_K_Mをフル収容 数トークン/秒〜十数トークン/秒

パラメータ数・精度別のVRAM使用量早見表

  • 7Bモデル(Llama系): FP16で約14GB、INT8で約7GB、INT4(Q4_K_M)で約4〜5GB
  • 13Bモデル: FP16で約26GB、INT8で約13GB、INT4で約7〜8GB
  • 30B〜34Bモデル(Code Llama 34B等): FP16で約68GB(複数GPU必須)、INT8で約34GB、INT4で約17〜20GB
  • 70Bモデル: FP16は140GB超で個人利用は非現実的、INT8で約70GB、INT4(Q4_K_M)で約38〜42GB

代表的な運用シナリオ

  • ノートPC+RTX 4060(8GB)+LM Studio: Llama 3.1 8BのQ4_K_M量子化モデルをGPUオフロード全レイヤーで実行し、コーディング補助やチャットボットの検証用途に利用
  • デスクトップ+RTX 4090(24GB)+Ollama: 30B級モデルをVRAM内に収めて高速動作させつつ、必要に応じてollama runで複数モデルを切り替え
  • デスクトップ+RTX 4090+llama.cpp: 70Bモデルを--n-gpu-layersオプションで一部レイヤーのみVRAMに載せ、残りをCPU/RAM側で処理するハイブリッド構成(速度は低下するが70Bが動く)
  • Mac Studio(M2 Ultra、統合メモリ192GB)+Ollama: VRAMという専用メモリの区分がなく、統合メモリ全体をGPU/CPUで共有するため、70Bクラスのモデルも量子化次第でメモリに収まりやすい
  • RTX 3090 ×2枚構成+llama.cpp / text-generation-webui: tensor split設定で1つのモデルを2枚のGPUに分散し、単体では載らない70B級モデルをフルGPU実行

メリット・デメリット(注意点)

VRAMを活用したローカル推論のメリット

  • 推論速度が速い: システムRAM+CPUのみで推論する場合に比べ、帯域幅の広いVRAMを使うことで数倍〜数十倍のトークン生成速度が得られる
  • データが外部に出ない: クラウドAPIを使わずローカルで完結するため、機密情報や社内文書を扱う際のプライバシー・情報漏洩リスクを抑えられる
  • 継続コストがかからない: 初期投資後はAPI従量課金が発生せず、大量のリクエストを繰り返す用途ほどコストメリットが出やすい
  • オフライン・低レイテンシで動作: ネットワーク遅延がなく、インターネット接続が不安定な環境でも利用できる

デメリット・注意点

  • 初期投資コストが高い: VRAM容量の大きいGPU(24GB級のRTX 4090等)は価格が高く、業務用途では複数枚構成にするとさらにコストがかさむ
  • 容量の後付け増設ができない: システムRAMと違いVRAMはGPUに直付けされているため、後から容量を追加することはできず、必要容量が見えているなら最初から余裕を持ったGPUを選ぶ必要がある
  • 消費電力・発熱が大きい: VRAM搭載量の多いハイエンドGPUほど消費電力が高く(RTX 4090で450W級)、常時稼働させる用途では電気代や排熱対策も考慮が必要
  • 対応モデルの選択肢がVRAM容量に縛られる: 最新の高精度モデルほどパラメータ数が大きく、VRAM不足だと量子化を強めるか、より小さいモデルで妥協する必要がある
  • 量子化による精度低下: VRAM節約のため量子化ビット数を下げるほど、応答品質(特に複雑な推論や数値計算)がわずかに劣化する傾向がある

混同されやすい用語・類似技術との違い

VRAM とシステムRAM(メインメモリ)の違い

どちらも「一時的にデータを保持するメモリ」である点は共通ですが、VRAMはGPUに直結された専用メモリで帯域幅が広く(GDDR6Xで1TB/s前後)、システムRAM(DDR5等)はCPUに接続され帯域幅は数十GB/s程度にとどまります。GPUとシステムRAM間のデータ転送はPCIeバス経由になるため、VRAMに収まらずCPU/RAM側へオフロードした部分は転送のたびに待ち時間(レイテンシ)が発生し、生成速度が大きく低下します。

VRAM と統合メモリ(Apple Silicon Unified Memory)の違い

Apple M2M2 UltraM4 Pro/MaxなどのApple Siliconでは、CPUとGPUが物理的に同一のメモリプール(Unified Memory)を共有します。専用VRAMのような容量上限(GPU単体で24GBなど)がなく、Mac Studio M2 Ultraなら最大192GBまで搭載機種があるため、大容量モデルをVRAM不足を気にせず読み込める点が利点です。一方で、単体GPUの専用VRAM(GDDR6X等)に比べると帯域幅面では見劣りする場合があり、GPU性能そのものはディスクリートGPUに劣る場合が多いという特性もあります。「容量に強いUnified Memory」と「帯域幅・演算性能に強い専用VRAM」という住み分けで理解すると分かりやすいでしょう。

VRAM「容量」と「メモリ帯域幅」の違い

GPU選定時にVRAM容量(GB数)だけを見て「載るか載らないか」を判断しがちですが、同じ容量でも帯域幅(GB/s)が異なれば生成速度は変わります。例えば同じ16GBクラスでも、帯域幅の広いモデルの方が体感速度は速くなります。カタログでVRAM容量とあわせてメモリ帯域幅(GB/s)も確認することが、購入前のチェックポイントです。

VRAM使用量とモデルのディスクサイズ(ファイルサイズ)の違い

Hugging FaceやOllamaのライブラリで配布されているモデルファイルの容量(ダウンロードサイズ)と、実行時に消費するVRAM量は必ずしも一致しません。ロード時のオーバーヘッドやKVキャッシュ分が加算されるため、実際にVRAMを消費する量はモデルファイルサイズよりわずかに大きくなるのが一般的です。ダウンロード容量だけで「VRAMに載る」と判断せず、実行時の実測値(後述のモニタリング方法)で確認することが重要です。

実務ポイント

VRAMのメモリタイプ(GDDR6X・GDDR6・統合メモリ)

GDDR6Xは最新のハイエンドGPU(RTX 4090RTX 3090)に搭載され、メモリ帯域幅は1,000GB/s以上を実現しAI推論処理に有利です。GDDR6は中級〜上級グラフィックカード(RTX 4080RTX 4070シリーズ)で採用され、十分な性能とコストパフォーマンスを両立します。次世代のGDDR7はRTX 50シリーズ(Blackwell世代)で採用が進み、さらなる帯域幅向上が見込まれます。

VRAM最適化テクニック

モデル量子化: Quantization技術により、モデルの精度を下げてVRAM使用量を削減します。INT8やINT4(GGUFのQ4_K_M等)量子化により、VRAM使用量を1/2〜1/4に削減可能です。

オフロード機能: モデルの一部をシステムRAMに保存し、必要に応じてVRAMに読み込む手法。llama.cppでは--n-gpu-layers(Ollamaでは自動、LM Studioでは「GPU Offload」スライダー)でVRAMに載せる層数を調整できます。処理速度は低下しますが、VRAM容量を超える大規模モデルの実行が可能になります。

コンテキスト長の調整: 前述の通りKVキャッシュはコンテキスト長に比例して増えるため、必要以上に長いコンテキスト設定を避けることもVRAM節約につながります。

グラディエントチェックポイント: 主にファインチューニング時に、アクティベーションを再計算することでVRAM使用量を削減する手法。推論のみの用途では通常不要です。

VRAMモニタリング

  • nvidia-smi: コマンドラインでのVRAM使用状況確認(NVIDIA GPU標準)
  • nvtop: Linux向けのリアルタイムGPU使用率・VRAM表示ツール
  • GPU-Z: Windowsでのリアルタイムなグラフィックスカード状況監視
  • ollama ps: Ollamaでロード中のモデルとVRAM使用量を確認するコマンド
  • LM Studio: アプリ内のモデルロード画面でVRAM使用量とGPUオフロード状況を確認可能
  • PyTorch: torch.cuda.memory_summary()でメモリ詳細確認(開発・検証用途)
# VRAM使用状況確認
nvidia-smi

# 継続的なモニタリング
watch -n 1 nvidia-smi

# Ollamaでロード中モデルとVRAM使用量を確認
ollama ps

# llama.cppでGPUオフロード層数を指定して起動
./main -m model.Q4_K_M.gguf --n-gpu-layers 32

# PyTorchでのメモリ確認
import torch
print(f"VRAM使用量: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")
print(f"VRAM上限: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB")

2025-2026年の最新動向

NVIDIA RTX 50シリーズ(Blackwell世代)が登場し、RTX 5090で32GB GDDR7のVRAMを搭載。GDDR7の広帯域により大規模モデルの推論速度が大幅に向上しています。

量子化技術の進化により、GPTQ、AWQ、EXL2等の高度な量子化手法が普及し、少ないVRAMでもより大きなモデルを高品質で実行できるようになっています。

Apple Silicon Unified Memoryの活用が拡大し、M4 Pro/Maxの48〜128GB級の統合メモリでVRAM容量の制約を意識せずLLMを実行できる環境が注目されています。

Ollama・LM Studioのエコシステム拡大により、GGUF形式の量子化モデルをGUIやCLIから数クリック・数コマンドで導入できるようになり、VRAM容量に応じた量子化レベルの自動提案機能なども整備されつつあります。

よくある質問(FAQ)

Q. VRAMとは?

GPUに搭載された専用メモリで、LLMモデルの重みパラメータやKVキャッシュが展開されます。容量と帯域幅が、実行可能なモデルサイズと推論速度の両方を決定します。

Q. ローカルLLMに必要なVRAM容量は?

目安として7Bモデル(Q4_K_M量子化)で約4〜6GB、13Bで約7〜10GB、70Bで約38〜42GBのVRAMが必要です。実用的には8GB(RTX 4060等)で7〜8Bモデル、24GB(RTX 4090)で13〜30Bクラスのモデルが快適に動作します。

Q. VRAMが不足する場合の対処法は?

モデルの量子化(Q4_K_M等)でVRAM使用量を削減する、llama.cppの--n-gpu-layers等でCPU/RAMへ一部オフロードする、より小さいモデルを選ぶ、Apple SiliconのUnified Memoryを活用する、複数GPUで分散推論するといった方法が主な対処法です。

Q. VRAMとシステムRAM(メインメモリ)は何が違いますか?

VRAMはGPUに直結された専用メモリで帯域幅が非常に広く(1TB/s前後)、システムRAMはCPUに接続され帯域幅は数十GB/s程度です。VRAMに収まらない分をシステムRAMにオフロードすると、PCIe経由の転送が発生し速度が低下します。

Q. GGUF・GPTQ・AWQなど量子化形式によってVRAM使用量は変わりますか?

はい。同じビット数でも形式による差はわずかですが、GGUFはCPU/GPUへの層単位オフロードが可能なため、VRAM不足時の柔軟性が高い形式です。GPTQ・AWQ・EXL2はGPUへのフル搭載を前提とした形式で、VRAMに全体を載せられる場合に高速に動作します。

Q. Ollama・LM StudioでVRAM使用量を確認する方法は?

OllamaはCLIでollama psを実行するとロード中モデルのVRAM使用量が表示されます。LM Studioはモデルロード画面でVRAM使用量とGPUオフロード状況を確認できます。加えてOS標準のnvidia-smiやnvtopでGPU全体のVRAM使用状況を監視するのが確実です。

関連用語

外部リンク