cuda - 我们可以在内核运行期间获得准时打印输出吗?

标签 cuda

我意识到“cuPrintf”可以在内核中使用,但“cudaPrintfDisplay”只能在CPU代码中使用。在我看来,“cuPrintf”只能在从内核返回后刷新到标准输出。我的问题是:我们能否在内核运行期间获得准时打印输出?

最佳答案

正如您所注意到的,cuPrintf()(以及计算能力中的 printf() >= 2.0),只需在内核运行时将字符串添加到缓冲区,并在内核结束后打印出缓冲区。

我认为没有办法从内核中获取实时 printf。但是,为了减少延迟,您可以每次使用更少的线程来运行内核。由于 __device__ printf() 只是一个诊断或调试工具,因此任何性能损失都无关紧要。

也许最好的办法是在 CUDA 调试器中运行您的代码并通过这种方式获得即时反馈。

关于cuda - 我们可以在内核运行期间获得准时打印输出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12589380/

相关文章:

谁能解释一下这个 CUDA 内核是如何执行的?

python - 在 virtualenv 中使用 CUDA 为 Theano 服务

c - CUDA 内联汇编从 GAS 到 Intel 的翻译

c++ - 就地 Cholesky 逆

c++ - CUDA SHA-计算失败

parallel-processing - CUDA/OpenCL 中的深度优先搜索

c++ - Cuda 全局 __device__ 变量自动初始化

c++ - 从命令行编译 CUDA 代码

memory - 合并访问模式对 CUDA 中的纹理和表面内存很重要吗?

cuda - 一个小小的 CUDA 难题