我对cuda编程是个新手。我正在研究开普勒GPU,它有
3.2 compute_capability
1024 max_threads_per_block
1 Multiprocessor
2048 max._threads per_Multiprocessor
2147483647 grid size这是否意味着我只能为内核分配2048?那么如何处理这么大的网格呢?
我的应用程序包含了大量的矩阵计算。
发布于 2015-04-30 22:32:34
你需要学习更多关于CUDA编程的知识。
一个内核(即一个网格)中可以有超过1024或2048个线程。
1024的限制是每个块的限制。如果你是初学者,你不需要过多关注2048这个数字。
在内核启动过程中:
mykernel<<<A,B>>>(...);B参数是每个块的线程数。限制为1024个。
A参数是每栅格的块数。它被限制为2^31-1 (对于开普勒GPU上的x维度)。因此,理论上您可以在cc3.x设备上以一维网格的形式启动(2^31-1)*1024个线程。
https://stackoverflow.com/questions/29970262
复制相似问题