【问题标题】:Does Nvidia Cuda warp Scheduler yield?Nvidia Cuda warp Scheduler 是否会产生?
【发布时间】:2011-02-25 19:05:16
【问题描述】:

我已经通过Cuda programming guide,但仍然不清楚一个经线是否会屈服于其他准备执行的经线?请问有什么解释或指点吗?如果是,在什么条件下翘曲产生?

【问题讨论】:

    标签: cuda nvidia schedule


    【解决方案1】:

    是的,片上调度程序交错执行 warp。调度策略故意未指定,因为调度策略可能会更改。 NVIDIA 不希望 CUDA 开发人员编写依赖于当前调度策略但在较新的 GPU 上失败的代码。

    一般来说,拥有多个warp的目的是当一个线程等待一条指令完成执行时,另一个线程可能无需等待就可以执行。因此,当执行全局加载或慢速浮点操作等长延迟指令时,很可能会产生扭曲。某些架构,例如 Fermi,同时执行多个扭曲(http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf 第 10 页)。

    【讨论】:

    • 实际上,这不仅有可能,而且几乎可以肯定,在发出每条指令后,一个经线会屈服于另一个经线。即使是简单的指令也有非零延迟。在 Fermi 上,算术指令的延迟大约是 10 到 12 个问题槽,所以你至少需要那么多驻留扭曲。
    • 您能否指出有关 Fermi 算术指令延迟大约为 10-12 个问题槽的资源?或者这就是你自己发现的?谢谢
    • CUDA C Programming Guide 讨论入住率。大多数指令有 22 个周期的延迟,占用 SM 1 到 2 个周期。该手册有一些表格。这意味着每个 SM 需要 11 到 22 个并发扭曲才能使算术单元饱和。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2019-01-14
    • 2016-12-08
    • 2015-09-10
    • 2014-07-18
    • 2014-08-06
    • 2017-09-08
    相关资源
    最近更新 更多