Fermi supports concurrent kernel execution, where different kernels of the same application
context can execute on the GPU at the same time. Concurrent kernel execution allows
programs that execute a number of small kernels to utilize the whole GPU. For example, a
PhysX program may invoke a fluids solver and a rigid body solver which, if executed
sequentially, would use only half of the available thread processors. On the Fermi architecture,
different kernels of the same CUDA context can execute concurrently, allowing maximum
utilization of GPU resources. Kernels from different application contexts can still run
sequentially with great efficiency thanks to the improved context switching performance.
。费米架构(计算能力 2.x)及以上 支持 kernel 在同一 GPU上 并发执行,意思就是说,只要 GPU资源(SMs ,Mem)足够,并且kernel 在不同 流 发射(stream launch),我理解是没有什么依赖关系,那么,不同kernel即可并发执行。
下图是个很好的例子。来自fermi架构白皮书