SM、block、warp

  • 1 replies
  • 754 views
SM、block、warp
« 于: 四月 01, 2022, 03:56:39 pm »
一个Multi-Processor上面可以同时驻留多个warps,例如一个计算能力8.6的卡,它的1个SM里面,最多可能驻留1536个线程,也就是大约48个warps,在同时等待被调度执行。并且同时最多能上16个block。
请问一个SM是同时在执行16个block吗?
若是的话,SM一个时刻只能执行每个block里边的一个warp吗?即并行线程数为 82*16*32吗?【目前我的理解是这样,可3090卡的SP个数只有10496是82*16*32的四分之一,这又是怎么做到的呢】

Re: SM、block、warp
« 回复 #1 于: 五月 19, 2022, 07:11:48 pm »
一个Multi-Processor上面可以同时驻留多个warps,例如一个计算能力8.6的卡,它的1个SM里面,最多可能驻留1536个线程,也就是大约48个warps,在同时等待被调度执行。并且同时最多能上16个block。
请问一个SM是同时在执行16个block吗?
若是的话,SM一个时刻只能执行每个block里边的一个warp吗?即并行线程数为 82*16*32吗?【目前我的理解是这样,可3090卡的SP个数只有10496是82*16*32的四分之一,这又是怎么做到的呢】

请问一个SM是同时在执行16个block吗
--这个得看你的”同时“的定义,如果是常见的类似CPU风格的”超线程“方式的理解的话,那么这多个blocks同时驻留在1个SM上(手册有关于”驻留“的概念的解释),随时可能它们中间的warps被执行,则可以认为是这么多的blocks/warps同时在执行。
--如果从SM内部结构的角度看,例如从手册的计算能力章节的scheduler的情况来说,那么最多可能同时只有0-4个warps在真正同时被执行(任意周期,和warps的就绪情况,以及计算能力有关)。详情可以看手册。