rm9*_*m95 7 cuda gpu nvidia nsight-compute
根据此链接https://docs.nvidia.com/nsight-compute/ProfilingGuide/index.html:
Warp 因等待 MIO(内存输入/输出)指令队列未满而停止。在 MIO 管道(包括特殊数学指令、动态分支以及共享内存指令)的极端利用率的情况下,这种停顿原因很严重。
根据此https://docs.nvidia.com/drive/drive_os_5.1.12.0L/nsight-graphics/activities/index.html:
可能由本地、全局、共享、属性、IPA、索引常量负载 (LDC) 和解耦数学触发。
我的理解是所有内存操作都是在LSU上执行的,所以我会想象它们一起存储在同一个指令队列中,然后由LSU单元执行。由于它们都一起排队,因此第二种解释(包括全局内存访问)对我来说更有意义。问题是,如果是这样的话,LG Throttle 就没有必要了。
MIO Throttle 实际上意味着什么?所有内存指令都存储在同一个队列中吗?
MIO 是 NVIDIA SM 中的一个分区(从 Maxwell 开始),包含在 4 个 warp 调度程序或较慢的数学执行单元(例如 XU 管道)之间共享的执行单元。
发布到这些执行单元的指令首先被发布到指令队列中,允许warp调度器继续从warp发布独立的指令。如果 warp 的下一条指令指向已满的指令队列,则 warp 将停止,直到队列未满且指令可以入队。当发生这种停顿时,warp 将根据指令队列类型报告限制原因。指令队列到管道的映射因芯片而异。这是一般映射。
如果 warp 发出的下一条指令是针对子分区特定执行单元(FMA、ALU、Tensor、FP64(*100 GPU)),则停顿原因是 math_throttle。
归档时间: |
|
查看次数: |
1497 次 |
最近记录: |