【ユニファイドメモリ】
ユニファイドメモリ とは?
公開:
💡 「みんなで1つの机を使う」メモリの設計
CPUとGPUなどの異なるプロセッサが、同じメモリ領域を共有して読み書きできるようにする仕組み。データを別々のメモリへコピーし直す手間を減らせる。
📌 このページのポイント
ユニファイドメモリって、普通のメモリとは別の部品なの?
分かれてると何が困るの?
Macで聞いたことがある気がする。
じゃあユニファイドメモリって、いつもチップが1つってこと?
名前は同じなのに中身が違うんだ…!
もっと詳しく知りたい人へ
ハードウェア方式とソフトウェア方式は何が違うの?
Apple siliconのように1つのチップにCPU・GPU・メモリをまとめた構成では、そもそも物理メモリが1つなので、共有そのものがハードウェアの作りです。一方、CUDAのUnified Memoryは、CPU側とGPU側に別々の物理メモリがある前提で、プログラムからは1つの領域に見えるようにし、必要に応じて中身を移動させる仕組みです。どちらも「1つに見える」点は同じですが、裏で移動が起きるかどうかが違います。
共有すれば必ず速くなるの?
必ずではありません。コピーが減る効果は大きいものの、CPUとGPUが同じメモリ帯域を取り合うため、両方が同時に大量のデータを読み書きすると帯域が不足することがあります。実際の性能は、メモリ帯域幅・容量・処理の内容によって変わります。
📖 おまけ:英語の意味
「Unified Memory」 = 統合されたメモリ
💬 Unify(統合する)から来た言葉で、バラバラだったメモリを1つにまとめる、というイメージなんだ