我意识到"cuPrintf"可以在内核中使用,但"cudaPrintfDisplay"只能用在CPU代码中.在我看来,"cuPrintf"只能在从内核返回后刷新到stdout.我的问题是:我们可以在内核运行期间获得准时打印输出吗?
正如您所注意到的那样cuPrintf()(并且printf()在计算能力> = 2.0中),只需在内核运行时将字符串添加到缓冲区,并在内核结束后打印出缓冲区.
我认为没有办法从内核获取实时printf.但是,为了减少延迟,您可以每次使用更少的线程运行内核.由于__device__ printf()只是一种诊断或调试工具,因此性能的任何损失都无关紧要.
也许最好的办法是在CUDA调试器中运行代码并以这种方式获得即时反馈.
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |