1

我已经阅读了Cuda 编程指南,但仍然不清楚一个 warp 是否会屈服于其他准备执行的 warp?请问有什么解释或指点吗?如果是,经线在什么条件下产生?

4

1 回答 1

6

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

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

于 2011-02-25T22:26:13.290 回答