2013-08-27 63 views
-1

我想知道如果使用多个cuda流,提供内核的并发执行吗?还是只提供了副本和内核执行的并发性? 顺便说一句,我正在寻找一个解决方案来执行多个并发内核。 任何人都可以帮助我吗?并行内核执行

回答

1

CUDA流是required for most types of asynchronous concurrent execution,除了主机/设备并发性。 Memcpy/compute重叠和并发内核需要流。

许多人有错误的想法,他们可以使用并发内核执行并行运行任意内核。但是并发内核执行通常只有在内核被执行的资源使用量(块,寄存器,共享内存)方面很小时才可见。使用大量线程块,大量寄存器或大量共享内存的内核可能无法与其他内核同时运行 - 因为它本身利用整个机器。

通过研究并运行CUDA sample codes中的concurrent kernels sample,可以开始执行并发内核。

+0

非常感谢你的回答,我真的帮助我:) –

+0

有没有一种方法来验证内核是否真的同时执行? –

+0

您可以使用[visual profiler](http://docs.nvidia.com/cuda/profiler-users-guide/index.html)。它将以图形方式显示内核在时间线描述中的执行情况。另一种方法是使用基于时间的方法,就像cuda样本一样。 –