我是cuda编程的新手。我正在开发具有
的Kepler GPU3.2 compute_capability
1024 max_threads_per_block
1 Multiprocessor
2048 max._threads per_Multiprocessor
2147483647 grid size
这是否意味着我只能为内核分配2048?然后如何处理这个大网格尺寸?
我的应用包括一些大量的矩阵计算。
谢谢
答案 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个线程。