【问题标题】:CUDA warp / block finalizationCUDA 扭曲 / 块完成
【发布时间】:2013-02-16 12:52:02
【问题描述】:

当一个 warp 完成一个内核,但同一块的另一个 warp 仍在运行时,完成的 warp 是否会被阻塞,直到同一块的其他 warp 完成,或者完成的 warp 是否可供另一个块立即重用而当前区块的其他经线仍在运行?

【问题讨论】:

    标签: cuda gpu-warp


    【解决方案1】:

    一个已完成的 warp 被淘汰,释放调度程序队列中的 warp 槽以用于另一个 warp,无论是来自同一个块还是另一个块。根据特定的硬件类型(计算能力),可以随时打开并准备好由 warp 调度程序执行的 warp 数量是有限的。在任何给定时间可以在 SM 上打开(计划)的线程块的数量也受到计算能力的限制。因此,如果除一个特定块之外的所有经线都已完成并退役,但一个经线仍处于活动状态,则该经线用完一个经线槽,并且它所属的块也用完一个块槽。只有当一个块的所有扭曲都完成并退役时,该块才会退役,释放它的块槽以供另一个块使用。

    【讨论】:

    • 谢谢,这解释了为什么持久线程技术对于光线追踪应用程序很有用,在这些应用程序中,线程分歧可能很大,并且某些线程可能比其他线程完成得晚得多。如果没有线程持久性,某些块可能在总时间的大部分时间里几乎处于空闲状态。
    猜你喜欢
    • 2011-08-08
    • 2015-12-27
    • 2014-12-09
    • 1970-01-01
    • 2012-12-15
    • 2014-07-09
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多