最終更新:2012-03-16 (金) 08:47:13 (2681d)  

CUDA/メモリ はてなブックマークを見る
Top / CUDA / メモリ

GPU上のメモリ

スレッド単位

  • レジスタ
    • カーネルのローカル変数を保持
    • G80ではブロックあたり8192本
      • 32レジスタを各スレッドに割り当てると、立ち上げることができるWarp数はたった8個、スレッド数は256スレッド
    • GT200ではブロックあたり16384本
    • Fermiではブロックあたり32768本
  • スレッドでレジスタ領域を等分割
  • ローカルメモリ
    • デバイスメモリに配置
    • レジスタの退避領域
    • 非常に低速(400-600サイクル)

ブロック単位

  • 共有メモリ
    • レジスタと同様に高速
    • G80/GT200ではブロックあたり16KB

アプリケーション共通

  • グローバルメモリ - カーネルから読み書き可能、キャッシュなし
    • 非常に低速(400-600サイクル)
  • コンスタントメモリ
    • カーネルからは読み込みのみ、キャッシュあり
    • ホストからは読み書き可能
  • テクスチャメモリ - カーネルからは読み込みのみ、キャッシュあり

GPU上で使用可能なメモリの種類

メモリの種類GPU側からのアクセスホスト側からのアクセススコープ
デバイスメモリグローバルメモリR/WR/Wグリッド
コンスタントメモリRWグリッド
テクスチャメモリRWグリッド
ローカルメモリR/WN/Aスレッド
オンチップメモリ共有メモリR/WN/Aブロック
レジスタR/WN/Aスレッド
テクスチャキャッシュRN/Aブロック
コンスタントキャッシュRN/Aブロック

注;R/Wは読み書き可能,Rは読み出しのみ,Wは書き込みのみ,N/Aはアクセス不可.


このPDFへのリンク