multiProcessorCount是否提供流式多处理器的数量?

时间:2013-05-19 21:44:14

标签: cuda

我很难理解multiProcessorCount属性给出的值是什么,因为我在掌握CUDA架构时遇到了困难。

如果以下某些陈述看起来很幼稚,我很抱歉。从我到目前为止的理解,这里是硬件“层”:

  • CUDA处理器是构建块的网格。
  • 构建基块由两个或多个流式多处理器组成。
  • 流媒体多处理器由许多流媒体处理器组成,也称为核心
  • 流处理器是“大规模”线程化的,这意味着它实现了许多硬件管理线程。一个流处理器,一个核心,一次只能计算一个线程,但它有许多“硬件线程”,可以在等待轮到SP计算时加载数据。

在软件方面:

  • 由线程组成,由流式多处理器
  • 执行
  • 如果有人推出了比卡上流式多处理器数量更多的块,我想块会在某种队列中等待执行。
  • 软件线程被分发到流处理器,流处理器将它们分发到它们的硬件线程。与前一种情况类似,如果有人发布了流处理器可以使用其硬件线程处理的更多线程,则软件线程会在队列中等待。

在这两种情况下,允许启动的最大线程数和块数与卡上实际存在的每个流处理器的流式多处理器,流式处理器和硬件线程的数量无关。这些概念是软件!

我至少接近现实吗?

话虽如此,multiProcessorCount属性给出了什么?在我的610M上,它说我只有一个多处理器...这是否意味着我只有一个流多处理器?我会有一个仅由一个流式多处理器组成的构建块吗?这对我来说似乎不可能。这意味着我一次只能执行一个块! 此外,当我的卡的规格说我有48个cuda核心时,他们是在谈论流媒体处理器吗?

1 个答案:

答案 0 :(得分:1)

也许this answer会有所帮助。它现在有点过时,因为它指的是旧架构,但原理是相同的。

GPU完全可以由单个SM(流式多处理器)组成,特别是如果它是移动GPU。该单个SM由多个CUDA内核组成,可以容纳多个线程块(最新的Kepler代GPU上最多16个)。

在您的情况下,您的610M GPU有一个流式多处理器(SM),由48个CUDA核心(又称流式处理器,SP)组成。