CUDA上的一个线程

kos*_*pap 3 cuda

我正在调用一个只有一个块的CUDA内核,并且在这个块中只有一个线程,例如

内核<<< 1,1 >>>

这个内核是否只能在指定的单个 CUDA核心上执行?那么,例如,如果GPU有128个内核,128个中只有1个会工作?

非常感谢!

tal*_*ies 7

不.CUDA是一种SIMD风格的体系结构,基本的执行单元是一个warp--由32个线程组成的组,在硬件上逐步执行锁定.如果启动包含单个线程的单个块,则硬件将执行32个线程的单个warp,其中31个被屏蔽掉并执行等效的noop流.任何给定的warp都在单个流式多处理器上执行,并且取决于您使用的硬件的生成,可能涉及运行它的SM的8个,16个或32个核心.