一个经线是 32 个线程。32 个线程是否在多处理器中并行执行?如果 32 个线程没有并行执行,那么 warp 中就没有竞争条件。在经历了一些例子后,我有了这个疑问。
问问题
4340 次
2 回答
4
在 CUDA 编程模型中,warp 中的所有线程并行运行。但是硬件中的实际执行可能不是并行的,因为一个 SM(流多处理器)内的内核数量可能少于 32 个。例如,GT200 架构每个 SM 有 8 个内核,一个 warp 内的线程需要 4 个时钟周期完成执行。
如果多个线程写入同一位置(共享内存或全局内存),并且您不希望竞争,那么您必须使用原子操作或锁,因为 CUDA 编程模型不保证哪个线程将写入。
于 2011-03-11T04:09:50.673 回答
-1
是的。WARP 中的 32 个线程将并行执行。GPU是一个SIMT(单指令多线程)机器,单指令由多个线程并行执行。
于 2011-03-11T04:36:28.317 回答