GPUプログラミング
GPUのメモリ合体アクセス(コアレッシング)の説明として正しいものはどれか。
- A2つのGPUのメモリを1つにまとめて容量を2倍にする
- Bメモリのデータを圧縮して容量を増やす
- Cワープの中の隣り合うスレッドが隣り合う番地を読むと、まとめて少ない回数のメモリアクセスで済む
答えと解説を見る
正解:C. ワープの中の隣り合うスレッドが隣り合う番地を読むと、まとめて少ない回数のメモリアクセスで済む
GPUのメモリは、32バイトや128バイトなどのまとまった単位で読み書きします。ワープの32本のスレッドがそれぞれ4バイトの続いた番地を読むと、合わせて128バイトのまとまりを1〜数回のアクセスで読めます。番地がばらばらだと、スレッドごとに別のまとまりを読むことになり、使わないデータまで運ぶので、実効的な帯域が何分の一にも落ちます。
- A. 容量をまとめる話ではありません。
- B. 圧縮とは関係ありません。
- C. 正しい。帯域を有効に使うための基本です。