【メモリたいいきはば】
メモリ帯域幅 とは?
最終更新:
💡 プロセッサへデータを運ぶ「水道管」の太さ
メモリとプロセッサの間で1秒間に転送できるデータ量。AI学習やHPCではメモリ帯域幅がボトルネックになりやすく、性能を左右する重要な指標。
📌 このページのポイント
メモリ帯域幅ってなに?容量とは違うの?
なんでそんなに大事なの?
最近のGPUは計算能力がものすごく高いんだけど、計算に必要なデータをメモリから読み出す速度が追いつかないことがあるんだ。いくら速い調理器具があっても、食材が届かなければ料理できないよね。
AI学習で特に問題になるの?
帯域幅を増やすにはどうするの?
1秒当たりの転送回数を増やすか、同時に送れるデータ幅を広げるのが基本だよ。独立したメモリチャネルを並列に使う構成もある。ただし、メモリを増設すれば必ず帯域が増えるわけではなく、CPUや基板の対応構成、実際の動作速度を確認する必要があるよ。
具体的にどのくらいの数字なの?
もっと詳しく知りたい人へ
メモリ帯域幅が2倍なら、アプリも2倍速くなる?
一般にはなりません。メモリ転送が主な制約で、同じデータ量を処理する場合には改善が期待できますが、計算能力や遅延が制約なら効果は限られます。GPUでも演算の種類、データの再利用、並列に動かせる処理数で制約が変わるため、対象アプリを計測して判断します。
DDR5の32ビットサブチャネルは帯域計算でどう数える?
通常のDDR5モジュールは32ビットの独立したサブチャネル2つで、データ幅は合計64ビットです。DDR5-4800で両方を合計した理論帯域は38.4GB/sになります。ECC用ビットはアプリのデータ幅に含めません。これは1モジュール分の例で、PC全体の帯域はメモリコントローラーやチャネル構成にも依存します。GBは10億バイトとして計算しています。
📖 おまけ:英語の意味
「Memory Bandwidth」 = メモリ帯域幅
💬 Memoryは記憶、Bandwidthは帯域幅。ここでは単位時間に転送できるデータ量を表す言葉だよ