我已经完成Cuda programming guide但是仍然不清楚经线是否会有利于其他准备执行的扭曲?有什么解释或指针吗?如果是,在什么条件下产生翘曲?
答案 0 :(得分:6)
是的,片上调度程序会对warp的执行进行交错。故意未指定调度策略,因为可以改变调度策略。 NVIDIA不希望CUDA开发人员编写依赖于当前调度策略但在新GPU上失败的代码。
一般来说,具有多个warp的目的是当一个线程等待指令完成执行时,另一个线程可以准备执行而无需等待。因此,当执行诸如全局加载或慢浮点运算的长延迟指令时,warp很可能会产生。某些体系结构(如Fermi)会同时执行多个warp(http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf第10页)。