并发内核执行

时间:2011-02-23 22:11:42

标签: concurrency cuda

是否可以从(主机)应用程序的不同线程启动内核并使它们在同一GPGPU设备上并发运行?如果没有,你知道(Nvidia)有什么计划在未来提供这种能力吗?

1 个答案:

答案 0 :(得分:3)

编程指南http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/NVIDIA_CUDA_C_ProgrammingGuide_3.1.pdf说:

3.2.7.3并发内核执行 某些计算能力2.0的设备可以同时执行多个内核。应用程序可以通过调用cudaGetDeviceProperties()并检查concurrentKernels属性来查询此功能。 设备可以同时执行的最大内核启动次数是16次。

所以答案是:这取决于。它实际上只取决于设备。主机线程不会以任何方式产生影响。如果设备不支持并发内核执行,则并发内核启动会被序列化,如果设备启动,则会同时执行不同流上的串行内核启动。