巴特的评论基本上是正确的.更详细地说,如PTX ISA 3.1手册中所述,
对于某些指令,目标操作数是可选的.
_可以使用用下划线()表示的"比特桶"操作数来代替目的地寄存器.
3.1 PTX规范中实际上只有一类指令_是有效的目的地:atom.以下是语义atom:
原子在加载位置的原始值到目的地寄存器d,执行与操作数B和在位置a的值归约运算,并存储在一个位置指定操作的结果,覆盖原始值.
还有一个说明atom:
可以使用"位桶"目标操作数'
_' 指定简单的减少.
所以,我们可以构建一个例子:
atom.global.add.s32 _, [a], 4
Run Code Online (Sandbox Code Playgroud)
这将在内存位置将有符号整数加4 a,而不a在寄存器中返回先前的位置值.因此,如果您不需要以前的值,则可以使用此值.我假设编译器会为此代码生成此代码
atomicAdd(&a, 4);
Run Code Online (Sandbox Code Playgroud)
因为atomicAdd的返回值没有存储到变量中.
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |