gpt4 book ai didi

cuda - NVIDIA GPU 上的指令级并行 (ILP) 和乱序执行

转载 作者:行者123 更新时间:2023-12-04 07:54:55 25 4
gpt4 key购买 nike

NVIDIA GPU 是否支持乱序执行?

我的第一个猜测是它们不包含如此昂贵的硬件。但是,在阅读 CUDA progamming guide 时,该指南建议使用指令级并行 (ILP) 来提高性能。

ILP 不是支持乱序执行的硬件可以利用的功能吗?或者 NVIDIA 的 ILP 只是意味着编译器级别的指令重新排序,因此它的顺序在运行时仍然是固定的。换句话说,只有编译器和/或程序员必须以这样一种方式来安排指令的顺序,即可以通过有序执行在运行时实现 ILP?

最佳答案

流水线是一种常见的 ILP 技术,肯定会在 NVidia 的 GPU 上实现。我想你同意流水线不依赖于乱序执行。
此外,NVidia GPU 有多个来自计算能力 2.0 及更高版本(2 或 4)的扭曲调度程序。如果您的代码在线程中有 2 个(或更多)连续且独立的指令(或编译器以某种方式重新排序),您也可以从调度程序中利用此 ILP。

这是关于 2-wide warp scheduler + pipelining 如何协同工作的一个很好解释的问题。
How do nVIDIA CC 2.1 GPU warp schedulers issue 2 instructions at a time for a warp?

还可以查看 Vasily Volkov 在 GTC 2010 上的演讲。他通过实验发现了 ILP 如何提高 CUDA 代码性能。 http://www.cs.berkeley.edu/~volkov/volkov10-GTC.pdf

在 GPU 上的乱序执行方面,我不这么认为。正如您所知,硬件指令重新排序、推测执行所有这些东西对于每个 SM 来说都太昂贵了。而线程级并行可以填补缺乏乱序执行的空白。当遇到真正的依赖时,其他一些扭曲可以启动并填充管道。

关于cuda - NVIDIA GPU 上的指令级并行 (ILP) 和乱序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17881280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com