0

有什么方法可以在 CUDA 中找到线程的 WARP id?我想根据 WARP id 执行一个分支。

4

1 回答 1

3

%warpid寄存器,编写一个通过内联汇编访问它的函数并不难。

但是,您想要使用它是非常不寻常的。例如

  • 线程不会“留在原地”,并且会随着时间的推移改变它们正在运行的扭曲
  • 它不是全球唯一标识符

这使得其可能的用例极为有限。引用文档:

... 经线标识符在 CTA 内提供唯一经线编号,但在网格内的 CTA 之间不提供唯一的经线编号。...

请注意,它%warpid是 volatile 并在读取时返回线程的位置,但其值可能会在执行过程中发生变化,...%warpid主要用于启用分析和诊断代码来采样和记录工作场所映射和负载分布等信息.

于 2015-07-23T18:33:45.017 回答