ローカルAIの速度は何で決まるのか(メモリ帯域の話)

ローカルでLLMを動かすと、同じくらいのスペックに見えるのに体感速度が全然違う、ということがよくあります。 その差の多くは、演算性能ではなくメモリ帯域から来ています。 ここでは「速さ」を決めているものを、なるべく噛み砕いて整理してみます。

速さを決めているのは演算性能だけではない

ローカルAIのハードを選ぶとき、つい演算性能(TFLOPSのような数字)に目が行きがちです。 もちろんそれも大事なのですが、LLMがテキストを1文字ずつ生成していく場面では、 実は「メモリからどれだけ速くデータを読めるか」のほうが効いてきます。 この読み出しの速さを表すのがメモリ帯域で、GB/s(1秒あたり何ギガバイト読めるか)という単位で語られます。 帯域が太いほどデータを速く読めて、結果としてトークン生成も速くなる、という関係です。

LLMの生成はメモリ帯域に強く左右される

LLMは、1トークン(だいたい1文字〜数文字)を生成するたびに、 モデルの重みを大量に読み込みます。 モデルが大きいほど読むデータも増えるので、生成のたびにメモリへのアクセスが繰り返されます。 つまりトークン生成は、計算でつまずくというより、 「重みを読み終わるのを待っている」時間が支配的になりやすい処理です。 だから帯域が太いほど待ち時間が短くなり、1秒あたりに出せるトークン数が増える、という感覚になります。 ローカルでチャットしていて「スラスラ出るか、ポツポツ出るか」の差は、ここに大きく関わっています。

同じ容量でも帯域が違えば体感が変わる

ここで見落としやすいのが、メモリの「容量」と「帯域」は別物だという点です。 同じVRAM容量でも、使われているメモリの種類によって帯域は大きく変わります。 ざっくりした傾向として、次のように整理できます。

  • HBM 系: 帯域が非常に太い。データセンター向けの上位GPUに多い。
  • GDDR6X / GDDR6 系: コンシューマ向けGPUのVRAMに多い。HBMほどではないが十分太い。
  • ユニファイドメモリ(Apple や DGX 系): GPUのVRAMより控えめだが、大容量を一体で扱えるのが強み。
  • システムRAM(DDR5): 容量は積みやすいが、帯域は上記より細いことが多い。 数値は世代や製品で変わるので断定はしませんが、 「容量が同じでも帯域が違えば速度が変わる」という感覚は持っておくと選びやすくなります。

CPU+システムRAMだと「載るけど遅い」になりやすい

大容量のシステムRAMを積めば、GPUに載りきらない大きなモデルでも動かすこと自体はできます。 ただ、システムRAMの帯域はGPUのVRAMより細いことが多いので、 生成速度はどうしても落ちやすくなります。 この「載るけど遅い」状態は、ローカルAIで一番もどかしいパターンのひとつです。 モデルは起動するのに、返事が遅くて実用にならない、ということが起こります。 速さを求めるなら、容量だけでなく帯域の太いメモリにモデルを載せられるかが鍵になります。

画像生成やプリフィルでは演算性能も効く

ここまで帯域の話をしてきましたが、何でも帯域で決まるわけではありません。 画像生成のように計算量が多い処理や、長いプロンプトを最初にまとめて読み込むプリフィルの段階では、 演算性能(TFLOPS)もしっかり効いてきます。 つまり、生成の「出だし」や重い計算処理は演算性能、 生成中のトークンを出し続ける速さは帯域、というように、 局面によって効く要素が変わるイメージです。 自分が何を主にやるかで、どちらをどれだけ重く見るかが変わってきます。

結論

ざっくり言うと、大きいモデルを載せたいなら容量、速く動かしたいなら帯域、という整理になります。 LLMのトークン生成は帯域に強く左右されるので、 容量の数字だけで選ぶと「載るけど遅い」に当たりやすい点には注意したいところです。 この容量と帯域の違いは、ハードの種類による差とも深く関わっています。 VRAMとユニファイドメモリで何が違うのかは、別記事「VRAMとユニファイドメモリは何が違うのか」で整理しているので、 ハード選びで迷っているならあわせて読んでみてください。