メモリ帯域幅

Memory Bandwidth

メモリ帯域幅(Memory Bandwidth)とは、プロセッサとメモリ間でデータを転送できる速度のことで、通常GB/s(ギガバイト毎秒)で表されます。AI・ディープラーニングにおいて、メモリ帯域幅は演算性能と並んで最も重要なハードウェア性能指標の一つであり、特に大規模モデルの推論性能を左右する重要な要素です。

なぜメモリ帯域幅が重要か

ニューラルネットワークの演算では、大量のパラメータ(重み)をメモリから読み出して演算ユニットに供給する必要があります。演算ユニットがどれほど高速でも、メモリからのデータ供給が追いつかなければ演算ユニットは待機状態(メモリバウンド)となり、性能が発揮できません。特に大規模言語モデルの推論はメモリ帯域幅がボトルネックになりやすいです。

表:メモリ帯域幅の要点まとめ
ひとことで言うと1秒間にメモリとプロセッサの間で運べるデータ量。
なぜ重要かLLMの推論では、演算力よりここが速度の上限を決めることが多い。
注意点演算性能(TFLOPS)だけを見て選ぶと、期待した速度が出ないことがある。

演算バウンドとメモリバウンド

AI処理のボトルネックが演算ユニットにある場合を「演算バウンド」、メモリにある場合を「メモリバウンド」と呼びます。学習時のバッチ行列演算は演算バウンドになりやすく、推論時の逐次トークン生成はメモリバウンドになりやすいです。ルーフラインモデルでこの分析を行うことができます。

図:メモリ帯域幅がボトルネックになる理由
1計算は一瞬で終わる演算ユニットは高速
▶
2データ待ちが発生メモリから届かない
▶
3演算器が遊ぶ性能を出しきれない
▶
4帯域幅を増やすHBMで詰まりを解消

メモリ帯域幅の向上技術

HBM(High Bandwidth Memory)の採用が帯域幅向上の主要な手段です。NVIDIA H100はHBM3で3.35TB/sの帯域幅を実現しています。また、チップ内のキャッシュ容量の増大やデータの再利用率の向上など、アーキテクチャレベルでの最適化も進んでいます。