Parallel Thread Execution
PTXは、任意の大きさのレジスタセットを使用する。コンパイラからの出力は、ほぼ純粋な単一代入形式である。通常、連続したレジスタを参照する連続した命令列を伴っている。プログラムは以下の形式の宣言で始まる。
PTXは、最大で3つの引数を持つアセンブリ言語である。そして、ほとんど全ての命令は、命令が操作するデータのデータ型を(符号とデータ幅によって)明示するために命令の右にデータ型を並べて書く。レジスタ名は、先頭に%文字を付ける。そして、定数はそのまま書く。以下に例を示す。
プレディケートレジスタもある(命令を実行するかどうかを決める条件を格納するレジスタ)。しかし、シェーダーモデル1.0でコンパイルされたコードは、分岐命令のときだけプレディケートレジスタを使用する。条件分岐は以下のようになる。
setp.cc.type命令は、適切な型の2つのレジスタを比較した結果をプレディケートレジスタに格納する。set命令も存在する。set.le.u32.u64 %r101, %rd12, %rd28というコードは、もしも64bitレジスタ %rd12 が64bitレジスタ %rd28 よりも小さい、あるいは等しいならば、32bitレジスタ %r101 へ 0xffffffff を格納する。さもなければ、%r101は、0x00000000 を格納される。
疑似レジスタを意味する少数の定義済み識別子がある。他にも %tid, %ntid, %ctaid そして %nctaid は、それぞれスレッドのインデックス、ブロックの次元、ブロックのインデックス、そして、グリッドの次元を格納している。