第 5.5 页的 CUDA 编程指南117 提到传递给内核中使用的 printf 的字符串输出到主机上的流。我的疑问是为什么需要将其传递给主机? Graphics Card直接连接显示设备,直接将输出发送到显示设备不是更好吗?何必非要到主机上,再送回显卡显示器上显示呢?
最佳答案
如果显卡不支持显示器怎么办?
如果系统中有 4 个 GPU 怎么办?
无论如何,根据操作系统的控制台输出规则,设备 printf
与操作系统协调将输出发送到与主机 printf
相同的队列中。这允许您执行诸如将标准输出重定向到文件之类的操作。
您无法通过简单地将一些数据塞到 GPU 上的某处来解决这个问题。
大概您的问题是出于对性能的关注,而设备 printf
并非旨在成为高性能输出路径。
关于c - 为什么 cuda 中的 in-kernel-printf 在显示在显示器上之前将字符串输出到主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19193297/