'选票'非活动车道上的行为

时间:2014-05-11 06:37:42

标签: cuda

可以在分支分支中调用Warp投票函数,并且仅在活动线程中考虑其影响。但是,我不确定ballot在这种情况下是如何运作的?非活动线程总是贡献0吗?或者结果可能是未定义的?


类似的问题:Do warp vote functions synchronize threads in the warp?

一个答案引用了PTX ISA,其中包含一个句子

  

在投票表格中,vote.ballot.b32只是复制谓词   每个线程在一个warp中进入相应的位位置   目标寄存器d,其中位位置对应于   线程的车道ID。

但它没有解释如何处理非活动线程。

1 个答案:

答案 0 :(得分:3)

来自documentation

  

对于这些warp投票操作中的每一个,结果排除不活动的线程(例如,由于扭曲发散)。非活动线程由__ballot()返回的值中的0位表示,并且在__all()和__any()执行的缩减中不予考虑。