1

我是 cuda 编程的新手。我正在研究具有

3.2 compute_capability 
1024  max_threads_per_block 
1 Multiprocessor 
2048 max._threads per_Multiprocessor 
2147483647 grid size

这是否意味着我只能为内核分配 2048 ?那么如何处理这么大的网格尺寸呢?

我的应用程序包括一些大量的矩阵计算。

4

1 回答 1

3

您需要了解有关 CUDA 编程的更多信息。

一个内核(即一个网格)中可以有超过 1024 或 2048 个线程。

1024 的限制是每个块的限制。如果您是初学者,则无需过多关注 2048 数字。

在内核启动中:

mykernel<<<A,B>>>(...);

B参数是每个块的线程数。限制为 1024。

A参数是每个网格的块。它被限制为 2^31-1(对于 Kepler GPU 上的 x 维度)。因此,理论上您可以在 cc3.x 设备上在一维网格中启动 (2^31-1)*1024 个线程。

于 2015-04-30T14:32:34.147 回答