multiProcessorCount是否提供流多处理器的数量? [英] Does multiProcessorCount gives the number of streaming multiprocessors?

查看:981
本文介绍了multiProcessorCount是否提供流多处理器的数量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于我在掌握CUDA架构方面遇到困难,我很难理解multiProcessorCount属性所代表的值。

I hardly understand what the value given by the multiProcessorCount property represent, due to the fact that I experience difficulties in grasping the CUDA architecture.

很抱歉,以下一些语句似乎是天真的。根据我到目前为止的理解,这里是硬件层:

I'm sorry if some of the following statements appear to be naive. From what I understood so far, here are the hardware "layers":


  • CUDA处理器是 / strong>。

  • 一个构造块由两个或多个流多处理器组成。


  • 流处理器是大规模线程化的,这意味着它实现了许多硬件管理线程。一个流处理器,一个核心,一次只能计算一个线程,但它有许多硬件线程,可以加载数据,而等待他们轮到由SP计算。

  • A CUDA processor is a grid of building blocks.
  • A building block is composed of two or more streaming multiprocessors.
  • A streaming multiprocessor is composed of many streaming processors, also called core.
  • A streaming processor is "massively" threaded, meaning that it implements many hardware managed threads. One streaming processor, one core, can really compute only one thread at a time, but it has many "hardware threads" that can load data while waiting for their turn to be computed by the SP.

在软件端:



  • 如果一个启动的块数多于卡上的流多处理器数量,我猜测块会等待

  • 软件线程被分发到流处理器,它们将它们分发到他们的硬件线程。与前一种情况类似,如果一个线程启动了更多线程,流处理器可以用其硬件线程处理,则软件线程会等待队列。

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

In both cases, the max number of threads, and blocks, that it is allowed to launch, is independent from the number of streaming multiprocessors, streaming processors, and hardware threads of each streaming processor, that actually exist on the card. Those notions are software!

我至少接近现实吗?

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

With that being said, what does the multiProcessorCount property gives? On my 610M, it says I only have one multiprocessor... Does that mean that I only have one streaming multiprocessor? I would have a building block composed of only one streaming multiprocessor? That seems impossible to me. And that would mean that I can only execute one block at a time! Besides, when the specifications of my card says that I have 48 cuda cores, are they talking about streaming processors?

推荐答案

p>也许这个答案会有所帮助。

Perhaps this answer will help. It's a little out of date now since it refers to old architectures, but the principles are the same.

这是一个完全可能的GPU由一个单一的SM组成流多处理器),特别是如果它是移动GPU。单个SM由多个CUDA核心组成,可以容纳多个线程块(在最新的Kepler-generation GPU上最多16个)。

It is entirely possible for a GPU to consist of a single SM (streaming multiprocessor), especially if it is a mobile GPU. That single SM, which is composed of multiple CUDA cores, can accommodate multiple thread blocks (up to 16 on the latest Kepler-generation GPUs).

610M GPU具有一个由48个CUDA核心(也称为流处理器,SP)组成的流式多处理器(SM)。

In your case, your 610M GPU has one Streaming Multiprocessor (SM), composed of 48 CUDA cores (aka Streaming Processors, SPs).

这篇关于multiProcessorCount是否提供流多处理器的数量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆