CUDA内联PTX代码的语法

CUDA内联PTX代码的语法,cuda,ptx,Cuda,Ptx,如Nvidia的内联PTX汇编文档所述,使用内联汇编的语法为: asm(“临时字符串”:“约束”(输出):“约束”(输入)) 这里有两个例子: 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。我查阅了中大的官方文件,没有发现任何关于h0或b

如Nvidia的内联PTX汇编文档所述,使用内联汇编的语法为:
asm(“临时字符串”:“约束”(输出):“约束”(输入))
这里有两个例子:
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
。我查阅了中大的官方文件,没有发现任何关于
h0
b0
含义的问题。我看过
h0
h1
b0
b1
b2
b3
。我猜
h0
h1
表示一个16位的值,而
bn
表示一个字节值。有人知道这些的确切含义吗

谢谢罗杰·达尔的帮助。我阅读了PTX ISA 3.0并找到了答案。

“h”是半个字的意思
h0
表示32位字的低半字
h1
表示32位字的高半字。“b”表示整数字节
b0
b1
b2
b3
表示32位字的第一个8位、第二个8位、第三个8位和最高8位。

vadd
是PTX附带的视频特定指令之一。CUDA发行版中包含完整的PTX ISA说明。在我的机器上,它位于
C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v4.1\doc\ptx_isa_3.0.pdf
中。
h0
h1
b0
等指示器的说明见
8.7.11视频说明
部分。它们表示不同的隐式移位/掩码操作(请参见
optMerge
函数)

嗯,我也看到了。原来我指的是网上的旧版本。