0

“占用图”中显示的 SM 是否对应blockIdx.x或注册%smid

这是此类图表的示例

在此处输入图像描述

这是我将 打印blockIdx.x为“逻辑”块并将寄存器%smid(通过程序集访问)打印为物理块时的一些示例输出。

running on logical Block 77 and Physical SM 75
running on logical Block 31 and Physical SM 62
running on logical Block 37 and Physical SM 74
running on logical Block 74 and Physical SM 69
running on logical Block 66 and Physical SM 53
running on logical Block 45 and Physical SM 11
running on logical Block 43 and Physical SM 7
<snip>

此外,我可以预测每个块需要多长时间才能执行,并且不预测 ~30 和 ~31 块需要很长时间——即使它们在图表上显示为需要很长时间。并且我“预测”需要“短时间”的一些块比“短时间”需要更长的时间,如图所示。因此,逻辑块和所采用的持续时间之间似乎存在不匹配,如图所示。

最后,鉴于图中使用了术语“SM”,我希望该图表示物理 SMID,而不是逻辑块号。

鉴于这三个证据,我怀疑图中显示的数字对应于寄存器%smid

我正在寻找的只是确认。一旦我完全理解了这个问题,我将有理由更好地在现有的 80 个块中分配工作,或者只是使用更多块开始。谢谢!

4

1 回答 1

1

引用罗伯特·克罗维拉的话:

图表的水平轴对应于寄存器 %smid。SM = 流式多处理器。您可以通过运行 80 多个块并观察显示的图表在水平轴上没有超过 0..79 来快速确认这一点。

于 2019-08-16T19:32:04.560 回答