- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一台 NVIDIA GT650M,具有以下属性:
( 2) Multiprocessors, (192) CUDA Cores/MP: 384 CUDA Cores
Maximum number of threads per multiprocessor: 2048
我刚从流式多处理器 (SM) 和实际多处理器之间的混淆中解脱出来。 SM 和多处理器是不同的东西,对吧?例如,使用可视化分析器,我有一个虚拟内核,它在以 1 个线程的 1 个 block 启动时只等待并持续 370 毫秒。我可以用一个 SM 用 4 个 1024 线程 block 启动它,它仍然持续 370 毫秒。这是正常的,因为该任务使用芯片的 2 个多处理器,每个处理器使用 2048 个并发线程(只要我使用 5 个 block x 1024,就需要 740 毫秒,正常)。同样,我可以使用 4 个 SM 在 1024 个线程的 block 中同时启动 4 次,它仍然需要 370 毫秒,好的。
问题的第一部分只是为了确保我们不应该混淆 SM 和多处理器?就像我有时甚至在这里的答案中看到的那样:CUDA - Multiprocessors, Warp size and Maximum Threads Per Block: What is the exact relationship?结果,无法通过多处理器显式控制任务的调度方式,因为(据我所知)没有运行时函数允许这样做,对吗?那么,如果我有一张卡有 2 个多处理器和每个多处理器 2048 个线程,或者另一张卡有 4 个多处理器,每个多处理器有 1024 个线程,给定的程序将以相同的方式执行吗?
其次,我想知道哪种用途更好,拥有更多的多处理器和更少的内核,还是相反?到目前为止,我的理解让我说更多的多处理器(对于每个多处理器给定的最大线程)和很少的内核将更适合更大规模的并行性,很少/简单的操作,而每个多处理器有更多的内核(现在我正在谈论我几乎不知道的东西)将会有更多专用的 ALU 用于加载/存储操作和复杂的数学函数,因此它将更适合每个线程需要更多操作的内核?
最佳答案
这似乎是对术语的混淆。
“SM”(SM = Streaming Multiprocessor)和“多处理器”指的是同一事物,是 GPU 上主要执行单元的硬件单元。这些术语指的是特定的硬件资源。不同的 GPU 可能有不同数量的 SM。可以使用 CUDA deviceQuery
找到特定 GPU 的 SM 数量 sample code :
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, 0); // 0-th device
std::cout << deviceProp.multiProcessorCount;
“启动”中的 CUDA 程序元素是线程 block 。 网格 是与内核启动 关联的所有线程 block 的集合。单独的线程 block 在单独的 SM 上执行。您可以在内核中启动大量线程 block ,或多或少与您运行的 GPU 无关。然后,线程 block 将以特定 GPU 及其 SM 提供的任何速率进行处理。
没有 API 函数可以直接控制线程 block 到 SM 的调度。可以通过使用 CUDA stream priorities 获得对同时运行的不同内核的线程 block 调度的某种程度的间接控制。 .
关于c++ - 库达 |对多处理器数量的兴趣 - 与 SM 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19083905/
我需要澄清一下 AT 命令 AT+CPMS="SM","SM","MT" 尽管此 AT 命令适用于大多数 UE,但它会为诺基亚 N72 提供错误消息... 我试过 AT 命令 AT+CPMS=? &
我使用 hidden-sm 在平板电脑模式下隐藏我的 col-sm-5。 如何让 col-sm-4 在隐藏时重新获得 col-sm-5
我有一个问题来自 IBM's Nested Relational Database White Paper 的第 16 页,我很困惑为什么在下面的 CREATE 命令中他们使用 MV/MS/MS 而不
这个问题源于在内核中观察到的理论占用率和实现占用率之间的差异。我知道 different occupancy between calculator and nvprof以及 A question ab
我想将 col-sm-4 中的元素移动到显示它的窗口的左侧,基本上我的元素是一个圆环图,它在移动 View 中显示了一半——但是我想如果我可以在 col-xs-6 元素内进行调整,它将正确显示。 这是
是否可以在 bootstrap 中实现? 我实现了两行标签和输入。 LABEL* 但是当显示宽度超过 sm 大小时,我想将它们放在一行中。因此,我按如下方式编辑我的代码。
我注意到我的网站在桌面上看起来很好,但在我的手机上却有些问题。简而言之,我的网站是这样的 我注意到:第二行左侧没有空白。 第一种方法:改变
这个问题在这里已经有了答案: Nested rows with bootstrap grid system? (2 个答案) bootstrap 3 to bootstrap 4 cols no
我想从两个表中获取数据。 表一 deviceadd 具有以下列 DeviceID (primary key), DeviceName, SerialNumber, ModelNumber, Make
我正在使用 bootstrap,在某些 div 中,我使用了宽度为 16.6667% 的 col-sm-2 类。在这个宽度下,我看到我的元素相当大。 我也尝试过使用 col-sm-1,但这次元素太小了
如果类中没有指定col-lg和col-md,那么col-sm是否适用于所有大屏? 最佳答案 是的。 来自 bootstrap , Grid classes apply to devices with
作为this question的回答显示,当一个 SM 包含 8 个 CUDA 核心(计算能力 1.3)时,32 个线程的单个 warp 需要 4 个时钟周期来执行整个 warp 的单个指令。 即在
我正在运行一个 ols 模型,我需要知道所有系数,以便在我的分析中使用它们。如何以不同于科学记数法的格式显示/保存系数? model = sm.ols(formula="sales ~ product
我是一个刚刚接触CUDA编程的人。 好像有SP SM和CUDA架构的概念。 我曾尝试运行示例源的 deviceQuery.cpp 我认为有效的是他们环境的 SP SM 开发, 不知SP是不是SM中的任
有什么方法可以明确限制在我的程序运行期间使用的 GPU 多处理器的数量?我想计算我的算法如何随着多处理器数量的增加而扩展。 如果有帮助:我正在使用 CUDA 4.0 和计算能力为 2.0 的设备。 最
我有以下 div,它在导航栏上显示了一个登录按钮,但如果屏幕很小,我想隐藏这个按钮。出于某种原因,当我添加 fxHide.gt-sm=true 时,当我缩小屏幕时它不会隐藏。我该如何解决这个问题?
我正在尝试在我的新 Android 设备上制作我的 SD 卡内部存储。 我已经成功地安装了 ADB 和 Fastboot,虽然它不像我希望的那么简单,并且必须将它们安装在 usr/local/bin
我试图了解 GPU 的基本架构。我已经浏览了很多 Material ,包括这个very good SO answer .但我仍然很困惑,无法得到一张好的照片。 我的理解: 一个 GPU 包含两个或多个
我有两个 block 使用 Bootstrap 3: A B 当我处于移动模式时, block 被放置在彼此之下。 如何将它们内联放置直到有可用空间? 最佳答案 仅供引用,
我正在尝试创建一个简单的侧边栏,它将隐藏在小型设备上.. 但不能让它工作.. #sidebar 要么被隐藏,要么 #main 上的 padding-left 设置为 0 sidebar test @m
我是一名优秀的程序员,十分优秀!