wor*_*tor 5 concurrency cuda cuda-streams
从K20开始,不同的流变为完全并发(用于在边缘上并发).
但是我的程序需要旧的方式.或者我需要做很多同步来解决依赖问题.
是否可以将流管理切换为旧方式?
CUDA C编程指南部分关于异步电流执行
流是按顺序执行的一系列命令(可能由不同的主机线程发出).另一方面,不同的流可以相对于彼此无序地或同时地执行它们的命令; 这种行为无法保证,因此不应依赖于正确性(例如,内核间通信未定义).
如果应用程序依赖Compute Capability 2.*和3.0实现流,则程序违反了流的定义,并且对CUDA驱动程序的任何更改(例如,每个流请求的排队)或新硬件都将破坏程序.
如果您需要临时解决方法,那么我建议将所有工作转移到单个用户定义的流.这可能会影响性能,但它可能是唯一的临时解决方法.