一个经纱是 32 个线程。 32 个线程在多处理器中并行执行吗?
如果 32 个线程没有并行执行,则 warp 中不存在竞争条件。
在看了一些例子后我产生了这个疑问。
在 CUDA 编程模型中,warp 内的所有线程并行运行。但硬件中的实际执行可能不是并行的,因为 SM(流多处理器)内的核心数量可能少于 32 个。例如,GT200 架构每个 SM 有 8 个核心,而一个 warp 内的线程将需要 4 个时钟周期来完成执行。
如果多个线程写入同一位置(共享内存或全局内存),并且如果您不想竞争,那么您必须使用原子操作或锁,因为 CUDA 编程模型不保证哪个线程将写入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)