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ビット値を表しますが、バイト値を表します。誰かがこれらの正確な意味を知っていますか?h0b0%nh0b0h0h1b0b1b2b3h0h1bn
ロジャーダールからの助けをありがとう。PTX ISA 3.0を読んで、答えを見つけました。
「h」はハーフワードを意味します。h032ビットワードの下位ハーフワードを意味します。h132ビットワードの上位ハーフワードを意味します。「b」は整数バイトを意味します。b0、、はb1、32ビットワードの最初の8ビット、2番目の8ビット、3番目の8ビット、および最上位の8ビットb2を表します。b3