对于不同的nvidia显卡,在不同的流多处理器数量和不同的处理器核数的情况下,每个流处理器具有不同的特性。
所述线程块根据设备的容量分配给单个处理器,如1块32翘曲或2块16翘曲。
但我无法理解每个流处理器的核心数目。在每个流处理器中具有较大数目的核的设备有什么意义?。
我认为我们需要更好地利用设备属性来进行更好的优化。
在设备中如何处理每个流处理器的流处理器和核心??/
发布于 2014-04-22 06:28:43
在每个流处理器中有较大数量的核的设备的意义是什么?
每个SM的核数大致转化为在任何给定的时钟周期中可以处理多少翘曲指令。单个翘曲指令可以在任何给定的时钟周期中处理,但需要32个核才能完成(并且可能需要多个时钟周期来完成,这取决于指令)。一个具有32个“核心”的CC2.0FermiSM,平均每个时钟最多可以退出一条指令(实际上是每两个时钟就有两个指令)。开普勒SMX有192个核心,每个时钟可以退出4个或更多指令。要获得更精确的答案,请参考编程指南中的计算功能体系结构部分,并注意每个计算能力1.0 2.0 3.0都有一个部分。
实际上,cuda程序在设备中如何处理流处理器和每个流处理器的核心?/
这一问题在CUDA标签上已被多次回答。与内核启动相关的网格中的每个线程块都分配给一个SM (当SM有一个空闲槽时)。然后,SM将线程块“解压缩”为翘曲,并在SM内部资源(例如,“核心”和特殊功能单元)上调度翘曲指令,因为这些资源可用。
https://stackoverflow.com/questions/23211781
复制相似问题