1

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

4

1 に答える 1

2

vaddPTXに含まれているビデオ固有の手順の1つです。完全なPTXISAの説明は、CUDAディストリビューションに含まれています。私のマシンでは、にありC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.1\doc\ptx_isa_3.0.pdfます。、、、などの指定子の説明はh0、セクションにあります。これらは、さまざまな暗黙のシフト/マスク操作を表します(関数を参照)。h1b08.7.11 Video InstructionsoptMerge

于 2012-07-18T16:58:14.280 に答える