CUDA经线发散和时钟周期

时间:2010-11-26 09:50:23

标签: cuda

我在具有8个SP的SM上读到,在执行一条指令期间,warp中的每个线程都映射到8个SP中的每个。因此,在32/8 = 4个时钟周期中执行扭曲。

如果是这样,那么假设我在代码中有一个if-else语句。假设“then”和“else”分支指令各需要一个时钟周期来完成。

如果出现分歧,完成if-else语句需要多少个时钟周期?它是2,还是应该是2 x 4 = 8? (即在后者中,每个季度经线2个周期)

感谢任何澄清!

1 个答案:

答案 0 :(得分:6)

粒度为4个时钟周期 - 有4个指令阶段,4个阶段中的每个阶段处理8个线程的相同指令(如果你有条件/分支,可选择屏蔽),这就是你如何获得32个线程每个执行一个指令4个时钟周期。因此,对于示例中的分支分支,一个分支至少有4个时钟,另一个分支至少有4个时钟。