【发布时间】:2021-06-11 23:37:27
【问题描述】:
在最近的 NVIDIA 微架构中,有一种新的 (?) warp 停止原因/warp 调度程序状态分类法。其中之一is:
Wait:Warp 因等待固定延迟执行依赖项而停止。
作为@GregSmith explains,固定延迟指令是:“数学,按位[和]寄存器移动”。但是什么是固定延迟的“执行依赖”?这些只是“等待别人的固定延迟指令结束,然后我们才能自己发出它”?
【问题讨论】:
-
@RobertCrovella:就指令的分类而言,是的。但是“FOO 执行依赖”只是“等待执行 FOO 类型的指令”吗?如果是这样,我会作为一个骗子关闭它。
-
@RobertCrovella:啊,好的。然后查看编辑。
-
执行依赖是下一条指令的输入,包括寄存器操作数和谓词。如果你有一个 IADD 操作链 IADD r0, r1, r2; IADD r4、r0、r3。第二条指令是 r4 = r0 + r3。 r0 是第一个 IADD 的输出。在这种情况下,扭曲会停止,直到第一条指令完成。由于 IADD 是固定延迟指令,编译器可以说明调度程序在发出第一个 IADD 和第二个 IADD 之间必须等待的最小周期。在这些周期中,扭曲因“等待”原因而停止。
-
@GregSmith:这听起来像是一个答案......
标签: cuda profiling latency nsight-compute