...刚刚在PTX manual中提到过。关于它们有什么用处或如何使用它们没有任何暗示。
有谁知道更多?我只是缺少一个共同的概念吗?
答案 0 :(得分:8)
对于某些指令,目标操作数是可选的。一个“位桶”操作数 用下划线(
_
)表示可以用来代替目的地寄存器。
实际上3.1 PTX规范中只列出了一类指令_
是有效目的地:atom
。以下是atom
:
以原子方式将位置a的原始值加载到目标寄存器d中,使用操作数b和位置a中的值执行缩减操作,并将指定操作的结果存储在位置a,覆盖原始值。
还有atom
的注释:
可以使用“位桶”目标操作数“
_
”指定简单缩减。
所以,我们可以构建一个例子:
atom.global.add.s32 _, [a], 4
这会在内存位置a
将有符号整数加4,而不会在寄存器中返回位置a
的先前值。因此,如果您不需要以前的值,则可以使用此值。我假设编译器会为此代码生成此代码
atomicAdd(&a, 4);
因为atomicAdd的返回值没有存储到变量中。