内核的最大线程数

时间:2015-04-30 14:20:05

标签: cuda nvidia gpu-programming kepler

我是cuda编程的新手。我正在开发具有

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

这是否意味着我只能为内核分配2048?然后如何处理这个大网格尺寸?

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

谢谢

1 个答案:

答案 0 :(得分:3)

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

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

1024的限制是每个块的限制。如果您是初学者,那么2048号码就不需要过多关注。

在内核启动中:

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

B参数是每个块的线程数。它仅限于1024。

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