1

CUDA 编程指南指出:

CUDA 架构围绕可扩展的多线程流式多处理器 (SM) 阵列构建。当主机 CPU 上的 CUDA 程序调用内核网格时,网格的块被枚举并分发到具有可用执行能力的多处理器。一个线程块的线程在一个多处理器上并发执行,多个线程块可以在一个多处理器上并发执行。当线程块终止时,新块在空出的多处理器上启动。

这是否意味着如果我有 2 个多处理器 x n-cuda 内核的视频卡,并且如果启动像

MyKernel<<<1,N>>>(sth);

一个多处理器将处于空闲状态,因为我正在启动单个 N 线程块?

4

1 回答 1

3

你是对的。

在所有当前的 CUDA 架构中,一个块只能在单个多处理器上调度和运行。如果您在具有多个多处理器的设备上运行一个块,则除了其中一个多处理器之外的所有多处理器都将处于空闲状态。

于 2014-05-04T07:13:35.627 回答