Cho*_* Ri 5 parallel-processing cuda gpu nvidia
GPU中可以有多少个CUDA网格?
GPU中可以同时存在两个网格吗?或者一个GPU设备只有一个网格?
Kernel1<<gridDim, blockDim>>(dst1, param1);
Kernel1<<gridDim, blockDim>>(dst2, param2);
Run Code Online (Sandbox Code Playgroud)
以上两个内核是同时还是顺序运行的?
如果如上所述发布了两个内核,它们将被序列化(它们将按顺序运行).这是因为没有任何其他代码(即切换流),两个内核将被发布到相同的cuda流.发出到同一个流的所有cuda调用都是按顺序执行的,即使你认为你应该看到其他因为你正在使用cudaMemcpyAsync或类似的东西.
当然可能有多个内核彼此异步运行(因此可能同时运行)但是必须使用cuda流API来实现这一点.
您可能需要查看" CUDA C程序员指南 "中的第3.2.5节"异步并发执行",以了解有关流和并发内核执行的更多信息.此外,nvidia CUDA SDK中有许多示例,例如简单的流,这些示例将说明这些概念.该并行内核示例展示了如何同时运行多个内核(使用流).请注意,并发运行内核需要计算能力2.0或"更高"的硬件.
另外,要回答您的第一个问题,请参阅CUDA C编程指南的第3.2.5.2节,"设备可以同时执行的最大内核启动次数因设备而异,但某些设备可能高达128"
作为参考,"网格"是与单个内核启动相关联的整个线程数组.