VRAM

グラフィックカードが計算する数字を広げておく場所

ポイント
  • VRAM(Video RAM、ビデオメモリ)は、グラフィックカードが計算する数字を広げておく作業台です。
  • 作業台に載せきれないと、遅くなるのではなくそもそも始まりません。エラーを出して止まります。
  • 載せる必要があるのは三つです。モデルの数字、今扱っている入力とやり取りの記録、計算の途中の値。
  • 数字をより荒い単位に丸めると、同じ作業台により大きなモデルが載ります
  • 計算量とは別の壁です。片方は場所の問題、もう片方は仕事量の問題です。
目次

1たとえで理解する

屋台の焼きそば台を思い浮かべてください。焼きそば一皿を作るにも、麺とキャベツ、豚肉、ソースを手の届く場所に全部出しておかないと始められません。台が狭ければ、手さばきがどれだけ速くても意味がありません。材料を全部広げられなければ、調理をそもそも始められないからです。

グラフィックカードに付いているVRAMがこの調理台です。広さは決まっていて、その上に載ったものだけが計算に使えます。お客さんが立て込んで鍋を二つ載せなければならなくなると、その分だけ場所が余分に要り、場所がなければ注文を受けた瞬間そのまま止まります。

台のそばの倉庫に材料がどれだけあっても意味がありません。台の上に載せたものにしか手が届かないからです。倉庫から台へ運ぶこと自体にも手間と時間がかかります。

2くわしく

作業台の上に何が載るか

一番大きなかたまりは、モデルが持つ数字そのものです。学習で決まったこの数字たちは計算の間ずっと必要なので、最初から最後まで場所を占めます。モデルを選んだ瞬間、作業台の半分以上はすでに埋まっているようなものです。

その次は、今扱っている入力とこれまでのやり取りの記録です。モデルは前に読んだ内容を再計算しないよう、途中の結果をメモのように書き留めておきますが、やり取りが長くなるほどこのメモがどんどん積み上がります。最後に、層を通るときに生まれる計算の途中の値が一時的に場所を借りては空けます。

足りないと遅くなるのではなく止まる

ここが他の部品と最も大きく違う点です。処理が遅いカードは答えが遅く出るだけで、とにかく出ます。ところが場所が足りないと計算を始められないので、その場でエラーを出して終わります。

だからモデルを自分のパソコンで動かそうとするとき、最初にぶつかる壁がここです。計算が速いか遅いかはその次の問題で、まずは載るか載らないかが分かれます。場所がぎりぎりだと、短い質問はできても長い文書を入れた瞬間止まることもあります。やり取りの記録が積み上がって作業台を埋め尽くしてしまうのです。

場所を節約する方法

一番広く使われる方法は、数字をより荒い単位に変えることです。小数点以下を長く書いていた数字を短く丸めると、同じ個数でも占める場所が半分、四分の一に減ります。材料を細かく刻んでかさを減らすのに似ています。ただしとても細かい違いがつぶれてしまい、答えの質感が少し粗くなることがあります。

一度に処理するまとまりを減らす方法もあります。鍋を二つの代わりに一つだけ載せるやり方です。場所は節約できますが、全体を終えるのにより長くかかります。そのほか最初から小さいモデルを選んだり、モデルをいくつかの断片に分けて複数のカードに分けて載せたり、今使っていない部分を本体のメモリに一時的に降ろしておく方法も使われます。

学習にはずっと広い場所が要る

答えだけを受け取るときは、モデルの数字とやり取りの記録くらいがあれば足ります。ところが学習するときは、各数字をどちらへどれだけ直すべきかを記した信号と、それまでの流れを覚えておく値まで一緒に載せなければなりません。さかのぼって下るには、来る途中で出た中間の値も消さずに持ち続ける必要があります。

だから同じモデルでも、学習には答えだけを受け取るときの三、四倍を超える場所が要ります。自分のパソコンで大きなモデルを動かすことはできても、そのモデルを直接学習させるのは難しい理由がここにあります。モデル全体の代わりに小さな部品だけを付けて学習させるやり方が広く使われているのも、その方法のほうが調理台をずっと少なく占めるからです。

3もう少し正確に

必要な場所は、パラメータ数と数字一つが占める大きさを掛けておおよそ見積もります。数字一つを16ビットで書けばパラメータ一個あたり2バイト、4ビットに減らせば0.5バイトです。ここにやり取りの長さに比例して増える中間結果の保存分と余裕分を足します。この保存分は層の数とやり取りの長さの両方に比例するので、長いやり取りでは無視できないかたまりになります。

比喩がずれる点があります。調理台の上の材料はいったんどけてまた必要なときに出せばいいですが、VRAMから降ろした数字を本体のメモリから再び持ってくる作業は計算よりずっと遅いです。だから場所を節約しようとしきりに降ろしたり載せたりすると、速度が何倍も落ちます。

また、残っている場所が数字の上では十分に見えても、断片に散らばっていると大きなかたまりを載せられないことがあります。表示されている余裕と実際に使える余裕が違うことがあるという意味です。だから同じ空き容量でも、モデルを読み込む順番や区切り方によって載せられたり載せられなかったりすることがあります。

4やってみる

5よくある誤解

  • パソコン本体のメモリが十分あれば大丈夫だと思われがちですが、実際にはグラフィックカードに付いたメモリは別物で、本体のメモリがどれだけ大きくても代わりには使えません。

  • モデルのファイルサイズ分だけあればいいと思われがちですが、実際にはやり取りの記録と計算の途中の値がさらに必要なので、余裕を十分に見ておく必要があります。

  • 場所が足りなければ少し遅くなるだけだと思われがちですが、実際にはほとんどの場合エラーを出してその場で止まってしまいます。

7ひとこと要約

つまりVRAMは計算する数字を広げておく作業台で、ここに載せきれないとモデルは遅くなるのではなく、そもそも動きません。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02