让nvidia K20c使用旧流管理方式?

wor*_*tor 5 concurrency cuda cuda-streams

从K20开始,不同的流变为完全并发(用于在边缘上并发).

但是我的程序需要旧的方式.或者我需要做很多同步来解决依赖问题.

是否可以将流管理切换为旧方式?

Gre*_*ith 6

CUDA C编程指南部分关于异步电流执行

流是按顺序执行的一系列命令(可能由不同的主机线程发出).另一方面,不同的流可以相对于彼此无序地或同时地执行它们的命令; 这种行为无法保证,因此不应依赖于正确性(例如,内核间通信未定义).

如果应用程序依赖Compute Capability 2.*和3.0实现流,则程序违反了流的定义,并且对CUDA驱动程序的任何更改(例如,每个流请求的排队)或新硬件都将破坏程序.

如果您需要临时解决方法,那么我建议将所有工作转移到单个用户定义的流.这可能会影响性能,但它可能是唯一的临时解决方法.

  • 硬件和驱动程序不支持在CC 3.5上模拟CC 3.0和早期执行模式.您的程序违反了编程模型.强烈建议您修复程序,因为无法保证符合编程模型定义的未来CUDA驱动程序更新不会破坏CC 3.0和早期设备上的程序. (6认同)