我正在调用一个只有一个块的CUDA内核,并且在这个块中只有一个线程,例如
内核<<< 1,1 >>>
这个内核是否只能在指定的单个 CUDA核心上执行?那么,例如,如果GPU有128个内核,128个中只有1个会工作?
非常感谢!
不.CUDA是一种SIMD风格的体系结构,基本的执行单元是一个warp--由32个线程组成的组,在硬件上逐步执行锁定.如果启动包含单个线程的单个块,则硬件将执行32个线程的单个warp,其中31个被屏蔽掉并执行等效的noop流.任何给定的warp都在单个流式多处理器上执行,并且取决于您使用的硬件的生成,可能涉及运行它的SM的8个,16个或32个核心.
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |