首页 文章

CUDA流和事件:澄清

提问于
浏览
1

我正在阅读有关CUDA流和事件的内容 . 主持人在下面给出链接的帖子中说(我引用):

在CUDA中,保证按顺序完成提交给流的命令 . 如果应用程序向流提交网格启动和事件记录,则驱动程序将把网格启动,同步命令和事件记录推送到连接 . 在内核启动完成并清除同步令牌之前,前端不会处理事件记录命令 . The connection is blocked. 在计算能力3.5设备上,前端可以继续处理其他连接 . 在计算能力<3.5设备上,前端被简单地阻止 .

我努力了,但我无法理解为什么主持人说连接被阻止了 . 请问有什么解释吗?谢谢 .

主题网址:https://devtalk.nvidia.com/default/topic/599056/concurrent-kernel-and-events-on-kepler/?offset=4

1 回答

  • 3

    此上下文中的连接类似于命令队列 . 计算能力<3.5的设备只有一个连接/命令队列 . 虽然逻辑上可以存在多个流,但是当命令被发送到设备时,它们都会在同一队列中结束并且不再相互超越 .

    因此,阻止设备端的一个命令(如记录事件)会阻止所有其他命令 . Later devices support multiple connections,所以(达到某个限制)每个流获得它自己的命令队列 .

相关问题