【问题标题】:GPU Architecture (Nvidia)GPU 架构 (英伟达)
【发布时间】:2012-05-22 15:06:23
【问题描述】:

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

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

【问题讨论】:

    标签: cuda gpu nvidia


    【解决方案1】:

    来自CUDA Programming Guide 4.2

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

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

    GeForce 580 具有 2.1 架构:

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

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

    warp 准备好执行所需的时钟周期数 它的下一条指令称为延迟,充分利用是 当所有 warp 调度程序总是有一些指令时实现 在该延迟期内,每个时钟周期都会出现一些扭曲问题, 或者换句话说,当延迟完全“隐藏”时。

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

    【讨论】:

    • GTX680 理论上可以执行 8 SM * 4 调度器/SM * 2 指令/调度器 * 32 线程/指令 = 2048 线程/周期。使用 CUDA 内核,您可以导出每秒的浮点运算,这与每个周期的线程指令不同。一个 GF100 每个周期可以执行 16 * 2 * 1 * 32 = 1024 个线程
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      相关资源
      最近更新 更多