【发布时间】:2017-02-09 15:51:14
【问题描述】:
假设一个 SM 填充了 8 个块,每个块有 64 个线程。
这给了我们 2 个经线/块,总共 16 个经线。 SM 可以在 warp 之间交替以隐藏延迟。这些经线是否必须属于同一个方块,或者是否可以将来自第 5 块的经线替换为来自第 8 块的经线?
【问题讨论】:
假设一个 SM 填充了 8 个块,每个块有 64 个线程。
这给了我们 2 个经线/块,总共 16 个经线。 SM 可以在 warp 之间交替以隐藏延迟。这些经线是否必须属于同一个方块,或者是否可以将来自第 5 块的经线替换为来自第 8 块的经线?
【问题讨论】:
是的,SM 调度程序可以“交替”或从驻留在该 SM 上的任何人中选择 warp 进行调度。
事实上,SM 的最大可能扭曲负载(当前,对于某些 GPU 为 64)或线程负载(当前,对于某些 GPU 为 2048)超过了单个块的可能限制(对于所有 GPU,当前为 1024)最近的 CUDA 工具包支持的 GPU)使 SM 可以从不同的块中选择 warp 进行调度,以提高隐藏延迟的可能性。
【讨论】: