Cuda 什么是GPU上的静态和动态调度?
GTX 4xx、5xx(费米)采用动态调度,GTX 6xx(开普勒)采用静态调度Cuda 什么是GPU上的静态和动态调度?,cuda,gpu,nvidia,Cuda,Gpu,Nvidia,GTX 4xx、5xx(费米)采用动态调度,GTX 6xx(开普勒)采用静态调度 什么是GPU上下文中的静态和动态调度 静态与动态的设计选择如何影响真实世界计算工作负载的性能 在代码中有什么可以用来优化静态或动态调度算法的吗 我假设您指的是硬件中的静态/动态 动态指令调度意味着处理器可以在运行时对单个指令重新排序。这通常涉及一些硬件,这些硬件将尝试预测指令管道中任何内容的最佳顺序。在您提到的GPU上,这是指为每个单独的扭曲重新排序指令 从动态计划程序切换回静态计划程序的原因如下所述: 我们还寻
- 什么是GPU上下文中的静态和动态调度
- 静态与动态的设计选择如何影响真实世界计算工作负载的性能
- 在代码中有什么可以用来优化静态或动态调度算法的吗
- 为长延迟操作注册记分板(纹理和 负载)
- 经纱间调度决策(例如,选择最佳经纱 合格候选人中的下一位)
- 线程块级调度(例如GigaThread引擎)
至于您的最后一个问题,即如何在代码中优化静态或动态调度算法,我个人的建议是不要使用任何内联汇编程序,只让编译器/调度程序完成它的工作 谢谢你,佩德罗,这正是我要找的。白皮书现在在我的阅读清单上。我查看了开普勒的一些SASS反汇编,没有看到额外的延迟信息。不过,它可能只是没有被展示。听起来,动态指令调度与CPU上的无序执行是一样的。白皮书中的措辞有点奇怪。听起来他们好像在说他们在费米已经有了固定长度的管道,他们刚刚意识到他们可以利用这个事实来实现静态指令调度,而不会损失任何性能。然而,我从网络上得到的印象是,在现实世界的计算负载下,现在更难达到理论上的最大值。所以他们似乎做了两个改变,使用固定长度的管道,然后以此作为切换到静态调度的基础。开普勒发生了很大的变化。特别是,ALU增加了四倍,而寄存器只增加了一倍,共享内存保持不变。那真的很痛苦。动态调度不是真正的无序执行,我认为提前计算这一点是非常合理的决定。我只是想知道,当常规ALU暂停被静态处理时,它们是如何使内存获取暂停成为动态的。