Parallel Thread Execution
ロード (ld) とストア (st) 命令は、複数の明確な状態空間(メモリバンク)の一つを参照する。 例えば、ld.paramの場合、状態空間.paramを参照している。
8つの状態空間が存在する。
.reg : レジスタ
.sreg : 特別な読み取り専用のプラットフォーム固有のレジスタ
.const : 共有された読み取り専用のメモリ
.global : 全てのスレッドから共有されるグローバルメモリ
.local : それぞれのスレッドだけに属するローカルメモリ
.param : カーネルに渡すパラメーター
.shared : 1つのブロックの中の複数のスレッドの間で共有されるメモリ
.tex : グローバルテクスチャメモリ(廃止予定)
共有メモリは下記のようにしてPTXファイルの中で宣言される。
PTXでカーネル関数を書くことは、CUDA Driver APIを経由してPTXモジュールを明示的に登録することを要求する。このことは、CUDA Runtime APIとNVIDIAのCUDAコンパイラであるnvccを使うよりもやっかいなことになることが多い。GPU Ocelot プロジェクトは、CUDA Runtime APIのカーネル呼び出し機能と一緒にPTXモジュールを登録するAPIを提供したが、GPU Ocelot は、もはや積極的にメンテナンスされていない。