gpgpuその2 メモリ
メモリの種類
- レジスタ
- シェアードメモリ
- ローカルメモリ
- グローバルメモリ
- テクスチャメモリ
- コンスタントメモリ
アクセススピード
レジスタ > シェアードメモリ >>> ローカルメモリ > グローバルメモリ
容量
グローバルメモリ > ローカルメモリ >>> シェアードメモリ > レジスタ
スコープ
(広い)グローバルメモリ >>> シェアードメモリ >>> ローカルメモリ、レジスタ(狭い)
各メモリ特徴
レジスタ(Read/Write)
- プロセッサが演算するためのデータをおいたり演算データがおかれる領域
- 32(もしくは64bit)の記憶容量
- プロセッサから一番近い場所にある
- 1クロックでアクセス可能
- レジスタの個数はデバイスによって異なる
シェアードメモリ(Read/Write/キャッシュされる)
- SMの中に存在する16KBのメモリ領域
- 数クロックでアクセス可能
- 同一ブロック内からのみ参照可能
ローカルメモリ(Read/Write/キャッシュされない)
- スレッド内部からしかアクセスできない
グローバルメモリ(Read/Write/キャッシュされない)
- アクセスに数百クロックかかる
- 大容量
- まとまった領域を一回の命令で転送する
テクスチャメモリ(Read Only)
- テクスチャ機能で利用するメモリ
コンスタントメモリ(Read Only)
- デバイス上のメモリからの読み込みにおけるキャッシュを子ナウ
- ハーフワープからアクセス可能
- 同じメモリ領域へのキャッシュ
- アクセス速度はレジスタと同速