CUDA warp中的线程是否在多处理器上并行执行?

时间:2011-03-11 04:35:23

标签: cuda gpgpu gpu-warp

warp是32个线程。 32个线程是否在多处理器中并行执行?   如果32个线程没有并行执行,则warp中没有竞争条件。   经过一些例子后,我对此产生了怀疑。

2 个答案:

答案 0 :(得分:4)

在CUDA编程模型中,warp中的所有线程并行运行。但是硬件中的实际执行可能不是并行的,因为SM(流多处理器)中的内核数量可能小于32.例如,GT200架构每个SM有8个内核,并且warp中的线程需要4个时钟周期完成执行。

如果多个线程写入同一位置(共享内存或全局内存),并且您不想要竞争,则必须使用原子操作或锁定,因为CUDA编程模型不保证哪个线程正在运行写。

答案 1 :(得分:-1)

是。 WARP中的32个线程将并行执行。 GPU是SIMT(单指令多线程)机器,单指令由多个线程并行执行。

顺便说一句,SIMT在某种程度上是一个营销术语,它与SIMD基本相同。