直列PTX代碼編寫Nvidia的內聯PTX大會文件中,使用內聯彙編的語法是: asm("temp_string" : "constraint"(output) : "constraint"(input));
這裏有兩個例子:
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));
在這兩個例子中,有參數如:h0
或b0
遵循%n
。我瀏覽了CUDA的官方文檔,並沒有發現任何關於h0
或b0
的含義的擔憂。我見過h0
,h1
和b0
,b1
,b2
,b3
。我猜h0
或h1
代表一個16位值,而bn
代表一個字節值。有人知道這些的確切含義嗎?語法對CUDA
感謝Roger Dahl的幫助。我讀了PTX ISA 3.0並找到了答案。
「h」表示半字。 h0
表示32位字的低半字。 h1
表示32位字的高半字。 「b」表示一個整數字節。 b0
,b1
,b2
和b3
代表32位字的第一個8位,第二個8位,第三個8位和最高8位。
Thiks,我也看到了。原來我指的是在線的舊版本。 – gpunerd 2012-07-18 17:15:23