GPUプログラミング
CUDAの共有メモリ(シェアードメモリ)の特徴として正しいものはどれか。
- AすべてのGPUとCPUで共有する、大容量の主記憶
- BGPUのメモリをハードディスクと共有する領域
- C同じブロックのスレッドで共有できる、チップ上の小さく高速なメモリで、プログラムが明示的に使う
答えと解説を見る
正解:C. 同じブロックのスレッドで共有できる、チップ上の小さく高速なメモリで、プログラムが明示的に使う
共有メモリは、各SMの中にある1ブロックあたり数十KB程度の高速なメモリで、グローバルメモリ(GPUのDRAM)より何十倍も速く読み書きできます。同じブロックのスレッドがデータを置いて共有できるので、グローバルメモリから一度だけ読み込んで何度も使う、スレッドどうしで途中の結果を受け渡す、といった用途に使います。キャッシュと違い、何を置くかをプログラムが決めます。
- A. それはグローバルメモリやユニファイドメモリに近い説明です。
- B. ディスクとは関係ありません。
- C. 正しい。プログラムで管理するキャッシュのように使えます。