NvidiaのインラインPTXアセンブリドキュメントに書かれているように、インラインアセンブリを使用するための文法は次のとおり
asm("temp_string" : "constraint"(output) : "constraint"(input));
です。2つの例を次に示します。どちらの例にも、次の
asm("vadd.s32.s32.s32 %0, %1.h0, %2.h0;" : "=r"(v) : "r"(a), "r"(b));
asm("vadd.u32.u32.u32 %0.b0, %1, %2, %3;" : "=r"(v) : "r"(a), "r"(b), "r"(z));
ようなパラメータがあります。CUDAの公式文書を調べたところ、またはの意味について何の懸念も見つかりませんでした。私は、、、、、、を見てきました。私は推測するか、16ビット値を表しますが、バイト値を表します。誰かがこれらの正確な意味を知っていますか?h0
b0
%n
h0
b0
h0
h1
b0
b1
b2
b3
h0
h1
bn
ロジャーダールからの助けをありがとう。PTX ISA 3.0を読んで、答えを見つけました。
「h」はハーフワードを意味します。h0
32ビットワードの下位ハーフワードを意味します。h1
32ビットワードの上位ハーフワードを意味します。「b」は整数バイトを意味します。b0
、、はb1
、32ビットワードの最初の8ビット、2番目の8ビット、3番目の8ビット、および最上位の8ビットb2
を表します。b3