因此,如果流式多处理器可以允许最大 X 线程,而 SM 中的每个块允许 Y 线程,那么我们可以在一个块中拥有多少个 warp,我们可以在一个 SM 中拥有多少个 warp?
这是我对这个问题的看法:
(1) 经线由 32 根线组成。在一个块中我们可以有 Y/32,对吧?
(2) 就每个 SM 的扭曲数而言,我们不能超过 SM 中的最大线程数 X,所以我们可以有 X/32,对吧?我希望有人能证实这些计算。
因此,如果流式多处理器可以允许最大 X 线程,而 SM 中的每个块允许 Y 线程,那么我们可以在一个块中拥有多少个 warp,我们可以在一个 SM 中拥有多少个 warp?
这是我对这个问题的看法:
(1) 经线由 32 根线组成。在一个块中我们可以有 Y/32,对吧?
(2) 就每个 SM 的扭曲数而言,我们不能超过 SM 中的最大线程数 X,所以我们可以有 X/32,对吧?我希望有人能证实这些计算。
(1) 是,如果需要四舍五入(即,如果每个块的线程数 Y 不能被 32 整除)
(2) 是的,这是对可能处于活动状态的经线数量的一个限制。请记住,SM 调度程序首先调度块。将被调度的块数是可用资源(寄存器、共享内存、线程等)的函数。只有当有足够的可用资源来支持它的需求时,才会调度一个块。例如,如果我每个块有 1024 个线程,我最多可以在 SM 上调度 1 个块,因为每个 SM 1536 个线程的限制(此处以 CC 2.0 为例)阻止了 2 个块的调度。因此,在这种情况下,即使您的 X/32 数字预测最多 48 条经线,也只会安排 1024/32 = 32 条经线。(以CC 2.0为例,每块1024个线程的块结构)。