CUDA线程是否以锁步方式执行O(n)操作?

时间:2016-12-05 02:04:48

标签: cuda

CUDA编程指南有如下说法:

  

warp一次执行一条通用指令,因此当warp的所有32个线程在其执行路径上达成一致时,可以实现全部效率。如果warp的线程通过依赖于数据的条件分支发散,则warp串行执行所采用的每个分支路径,禁用不在该路径上的线程,并且当所有路径完成时,线程会聚回到相同的执行路径。

由于一次只有一条通用指令,我正在考虑锁步。

  1. 那么在没有分支并且每个线程需要计算O(n)操作的情况下会发生什么?
  2. 如果他们操作的数据值较小,那么在warp中的某些线程是否先完成其他线程?
  3. 如果某些线程在其他线程之前完成,它们会保持空闲状态直到其他线程完成?

0 个答案:

没有答案