... PTX マニュアルに記載されています。それらが何に適しているか、またはどのように使用するかについてのヒントはありません。
誰かもっと知っていますか?共通の概念が欠けているだけですか?
バートのコメントは基本的に正しい。詳細については、PTX ISA 3.1 マニュアルに記載されているように、
一部の命令では、宛先オペランドはオプションです。アンダースコア ( ) で示される「ビット バケット」オペランド
_は、デスティネーション レジスタの代わりに使用できます。
実際には、3.1 PTX 仕様にリストされて_いる、有効な宛先である命令のクラスは 1 つだけですatom。のセマンティクスは次のatomとおりです。
位置 a の元の値をデスティネーション レジスタ d にアトミックに読み込み、オペランド b と位置 a の値を使用してリダクション演算を実行し、指定された演算の結果を位置 a に格納して、元の値を上書きします。
そして、メモがありatomます:
「ビット バケット」デスティネーション オペランド '<code>_' を使用して、単純なリダクションを指定できます。
したがって、例を作成できます。
atom.global.add.s32 _, [a], 4
これは、メモリ location の符号付き整数に 4 を加算し、レジスタ内aの location の以前の値を返しません。aしたがって、以前の値が必要ない場合は、これを使用できます。コンパイラがこのコードに対してこれを生成すると仮定します
atomicAdd(&a, 4);
これは、atomicAdd の戻り値が変数に格納されていないためです。