启动多个CUDA内核是否需要为每个内核返回主机?

启动多个CUDA内核是否需要为每个内核返回主机?,c,cuda,C,Cuda,如果我在同一上下文中启动多个CUDA内核,并且内核之间存在依赖关系(第一个内核的输出在第二个内核的输入中,等等),那么在每个内核完成其执行后,控件是否返回到主机?如果没有,请简要说明“内核排队”机制如何在CUDA卡上工作? 请看幻灯片9和10 带音频: 查找cuda并发和流。是的,确实如此。除非您异步调用内核(使用CUDA流),否则它将启动第一个内核,在完成之前等待,然后启动第二个内核,等等。我不确定“控制返回到主机”是什么意思,只要主机始终具有控制权(据我所知,我不是一个好的专家)。

如果我在同一上下文中启动多个CUDA内核,并且内核之间存在依赖关系(第一个内核的输出在第二个内核的输入中,等等),那么在每个内核完成其执行后,控件是否返回到主机?如果没有,请简要说明“内核排队”机制如何在CUDA卡上工作?

请看幻灯片9和10

带音频:


查找cuda并发和流。

是的,确实如此。除非您异步调用内核(使用CUDA流),否则它将启动第一个内核,在完成之前等待,然后启动第二个内核,等等。我不确定“控制返回到主机”是什么意思,只要主机始终具有控制权(据我所知,我不是一个好的专家)。