CUDA C 编程指南提供以下语句:
对于支持并发内核执行且计算能力为 3.0 或更低的设备,任何需要依赖项检查以查看流内核启动是否完成的操作:
‣ 只有当所有先前内核的所有线程块从 CUDA 上下文中的任何流启动时,才能开始执行;
‣ 阻止所有以后从 CUDA 上下文中的任何流启动内核,直到检查内核启动完成。
我在这里很迷茫。什么是依赖检查?我可以说在某些设备内存上执行内核需要对所有先前的内核或涉及相同设备内存的内存传输进行依赖性检查吗?如果这是真的(也许不是真的),这个依赖检查会根据上面的语句从任何其他流中阻塞所有以后的内核,因此之后不会发生异步或并发执行,这似乎不正确。
任何解释或阐述将不胜感激!