CUDA中有最大数量的流吗?

时间:2010-08-25 12:31:23

标签: cuda

是否可以在CUDA中创建最大数量的流?

澄清我的意思是流中允许您执行内核和内存操作的CUDA流。

3 个答案:

答案 0 :(得分:20)

您可以创建的流数量(至少1000)没有实际限制。但是,有效实现并发的流数量是有限的。

在Fermi中,该架构支持16路并发内核启动,但从主机到GPU只有一个连接。因此,即使您有16个CUDA流,它们最终也会进入一个硬件队列。这可能会创建错误的数据依赖关系,并限制可以轻松获得的并发数量。

使用Kepler,主机和GPU之间的连接数现在是32(而不是Fermi的连接数)。使用新的Hyper-Q技术,现在更容易让GPU忙于并发工作。

答案 1 :(得分:12)

我没有在任何文档中看到限制,但这并不意味着所有流将同时执行,因为这是一个硬硬件限制(多处理器,寄存器等)。

答案 2 :(得分:10)

根据NVIDIA的演示文稿,max是16个流(在Fermi上)。 http://developer.download.nvidia.com/CUDA/training/StreamsAndConcurrencyWebinar.pdf

为了澄清,我已成功创建了超过16个流,但我认为硬件只能支持16个并发内核,因此多余的内核在并发方面浪费了。

开普勒可能与众不同。