【发布时间】:2016-11-13 23:54:06
【问题描述】:
在 CUDA PTX 中,有一个特殊的寄存器保存线程的 warp 索引:%warpid。现在,规范说:
请注意,
%warpid是可变的,并返回线程的位置 在读取的那一刻,但它的值可能会在执行过程中发生变化, 例如,由于抢占后线程的重新调度。
嗯,那是什么地方?它不应该是块内的位置,例如对于一维网格%tid.x / warpSize?它是 SM 中的一些 slot-for-a-warp(例如 warp 调度程序或一些内部队列)吗?我很困惑。
动机:我想通过使用这个特殊的寄存器来省去计算%tid.x / warpSize的麻烦并释放一个寄存器。
【问题讨论】: