3

在我正在阅读的所有论文中,我看到 GPU 由多处理器组成,每个多处理器有 8 个处理器,它们能够并行执行单个扭曲。
我使用的 GPU 是 Nvidia 560,它只有 7 个多处理器,但每个多处理器中有 48 个处理器。这是否意味着 Nvidia 560 中的每个多处理器都能够并行执行 6 个扭曲?
我可以说在 Nvidia 560 上并行执行的最大线程数是 32*6*7=1344 个并行线程吗?(32=warp,7=multipricessors,6=warp 并行执行)

最快的 Nvidia GPU 中有多少个多处理器?这是什么GPU?最大的 GPU 拥有的最大全局内存量是多少?

4

2 回答 2

3

CUDA 编程指南 4.2

[...] 在每个指令发出时间,warp 调度程序选择一个线程准备好执行其下一条指令的线程(warp 的活动线程)并将指令发布给这些线程。

因此,每个 SM 的最大并发运行 wapr 数等于 warp 调度程序 (WS) 的数量。

GeForce 580 具有 2.1 架构:

对于计算能力为 2.x 的设备,多处理器包括:[...] 2 个 warp 调度程序

这意味着,GPU 的每个 SM 可以同时运行 2 个 warp = 64 个线程,总共 448 个线程。但是请注意,强烈建议使用比这更多的线程:

一个warp准备好执行其下一条指令所需的时钟周期数称为延迟,并且当所有warp调度程序在该延迟期间的每个时钟周期总是有一些指令要为某个warp发出一些指令时,就可以实现充分利用,或者换句话说,当延迟完全“隐藏”时。

关于您的其他问题:GeForce GTX690有 3072 个 CUDA 核心。然而,对于 CUDA 来说,它看起来像是两个独立的 GPU,每个都有 1536 个内核,所以它并不比两个 GeForce 680 好,而且从众多在线评论来看,后者很容易超频。GPU 中最大的内存安装在nVidia Tesla M2090中:6GiB 的 GDDR5(512 个 CUDA 核心)。我猜,不久之后,基于 GeForce 6xx 等 Kepler 架构的全新 Teslas 家族将发布,但我还没有听说任何官方宣布。

于 2012-05-15T06:42:58.730 回答
2

您正在阅读的论文很旧。前两代 CUDA GPU 每个 MP 有 8 个内核,并从单个 warp 发出指令(如果要简化,每条指令在 8 个内核上执行四次以服务单个 warp)。

您拥有的费米卡更新且不同。它从每个多处理器的两个不同的 warp 中“双重发布”指令(因此每个 warp 指令在 16 个内核上执行两次)。当代码流允许时,可以将来自这两个 warp 之一的附加指令发布到剩余的 16 个内核上,即。一种有限形式的无序执行。后一个功能仅在计算能力 2.1 设备上可用。在计算能力 2.0 设备上,每个多处理器只有 32 个内核。但是,在任何给定的着色器时钟周期上,每个多处理器的每个 MP 退休指令的扭曲数都是两个,这两种情况都是如此。请注意,有一个相当深的指令流水线,因此在发出和退出之间存在相当大的延迟,最多有 48 个处于活动状态每个多处理器在任何时刻。

因此,您的答案是 GTX 560 中的 7 个多处理器上的 14 个 warp 或 336 个 warp,具体取决于您希望采用的“并行执行”的定义。我用来回答这个问题的信息主要来自当前编程指南的附录 F。

于 2012-05-15T06:43:20.150 回答